Authored by whb

修改微信

@@ -192,6 +192,7 @@ EOT; @@ -192,6 +192,7 @@ EOT;
192 public function detailAction() 192 public function detailAction()
193 { 193 {
194 $id = intval($this->_request->id); 194 $id = intval($this->_request->id);
  195 + $link = SITE_MAIN.url('news/detail', array('id' => $id));
195 $news = array(); 196 $news = array();
196 if (empty($id)) 197 if (empty($id))
197 { 198 {
@@ -214,7 +215,7 @@ EOT; @@ -214,7 +215,7 @@ EOT;
214 $news = array($temp['id'] => $temp); 215 $news = array($temp['id'] => $temp);
215 } 216 }
216 $news = array_slice(array_filter($news + $temp2), 0, 3); 217 $news = array_slice(array_filter($news + $temp2), 0, 3);
217 - $this->_view['wechat'] = Lib_Wechat_JSSDK::getSignPackage(); 218 + $this->_view['wechat'] = Lib_Wechat_JSSDK::getSignPackage($link);
218 } 219 }
219 $info['title'] = strip_tags($info['title']); 220 $info['title'] = strip_tags($info['title']);
220 $info['pics'] = array_filter(explode('|', $info['pics'])); 221 $info['pics'] = array_filter(explode('|', $info['pics']));
@@ -3,7 +3,7 @@ class Lib_Wechat_JSSDK { @@ -3,7 +3,7 @@ class Lib_Wechat_JSSDK {
3 public static $appId = YOHO_WECHAT_APPID; 3 public static $appId = YOHO_WECHAT_APPID;
4 public static $appSecret = YOHO_WECHAT_APPSECRET; 4 public static $appSecret = YOHO_WECHAT_APPSECRET;
5 5
6 - public static function getSignPackage() 6 + public static function getSignPackage($url = '')
7 { 7 {
8 $jsapiTicket = self::getJsApiTicket(); 8 $jsapiTicket = self::getJsApiTicket();
9 9
@@ -11,7 +11,6 @@ class Lib_Wechat_JSSDK { @@ -11,7 +11,6 @@ class Lib_Wechat_JSSDK {
11 /* $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 11 /* $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
12 $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; */ 12 $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; */
13 // 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。 13 // 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
14 - $url = '';  
15 $timestamp = time(); 14 $timestamp = time();
16 $nonceStr = self::createNonceStr(); 15 $nonceStr = self::createNonceStr();
17 16