diff --git a/app/portal/controller/SalesmangoodsController.php b/app/portal/controller/SalesmangoodsController.php index 30b0038..946d950 100644 --- a/app/portal/controller/SalesmangoodsController.php +++ b/app/portal/controller/SalesmangoodsController.php @@ -210,10 +210,7 @@ class SalesmangoodsController extends WeChatBaseController{ $ticketList = $this->getJsApiTicket($token['accessToken']); $ticket = $ticketList['ticket']; // 该URL为使用JSSDK接口的URL - $url = $_GET['url']; - if (!$url) { - $url = 'http://xxx.xxx.com/index/index.html'; - } + $url = 'http://xkeasy.w.bronet.cn/'; // 时间戳 $timestamp = time(); // 随机字符串 @@ -222,7 +219,7 @@ class SalesmangoodsController extends WeChatBaseController{ $string = "jsapi_ticket=$ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; $signature = sha1($string); $signPackage = array ( - "appId" => C('WxPayConf_pub.APPID'), + "appId" => "wxdf34ec2179e19b9a", "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, @@ -238,23 +235,18 @@ class SalesmangoodsController extends WeChatBaseController{ public function getAccessToken() { // access_token 应该全局存储与更新 // 获取数据库中的access_token - $token = M('accesstoken')->limit(1)->find(); - // 如果数据库存在token - if ($token) { - // 格式化数据库的timestamp - $time = strtotime($token['time']); - } + $token = Db::name('token') -> where('id',1) -> find(); // accessToken过期或不存在时 - if($time + $token['expiresIn'] < time() || $token['accessToken'] == NULL){ - $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".C('WxPayConf_pub.APPID')."&secret=".C('WxPayConf_pub.APPSECRET'); + if($token['time'] + $token['expiresIn'] < time() || $token['accessToken'] == NULL){ + $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="."wxdf34ec2179e19b9a"."&secret="."133ced06db2a45843ab52abc691ee82d"; // 微信返回的信息 $returnData = json_decode($this->httpGet($url)); // 组装数据 $resData['accessToken'] = $returnData->access_token; $resData['expiresIn'] = $returnData->expires_in; - $resData['time'] = date("Y-m-d H:i",time()); + $resData['time'] = time(); // 把数据存进数据库 - M('accesstoken')->where(array('id' => $token['id']))->save($resData); + Db::name('token') -> where('id',1) -> update($resData); $res = $resData; }else{ $res = $token; @@ -262,6 +254,52 @@ class SalesmangoodsController extends WeChatBaseController{ return $res; } + public function getJsApiTicket($accessToken) { + // jsapi_ticket 应该全局存储与更新 + // 获取数据库中的jsapi_ticket + $ticket = Db::name('token') -> where('id',2) -> find(); + // 如果ticket失效 + if($ticket['time'] + $ticket['expiresIn'] < time() || $ticket['ticket'] == NULL){ + $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$accessToken&&type=jsapi"; + // 微信返回的信息 + $returnData = json_decode($this->httpGet($url)); + // 组装数据 + $resData['ticket'] = $returnData->ticket; + $resData['expiresIn'] = $returnData ->expires_in; + $resData['time'] = time(); + $resData['errcode'] = $returnData->errcode; + // 把数据存进数据库 + Db::name('token') -> where('id',2) -> update($resData); + $res = $resData; + }else{ + $res = $ticket; + } + return $res; + } + + // 创建随机字符串 + private function createNoncestr($length = 16) { + $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + $str = ""; + for($i = 0; $i < $length; $i ++) { + $str .= substr ( $chars, mt_rand ( 0, strlen ( $chars ) - 1 ), 1 ); + } + return $str; + } + + + private function httpGet($url) { + $curl = curl_init(); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true ); + curl_setopt($curl, CURLOPT_TIMEOUT, 500 ); + curl_setopt($curl, CURLOPT_URL, $url ); + $res = curl_exec($curl); + curl_close($curl); + return $res; + } + + + diff --git a/public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html b/public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html index bc6e109..d63b863 100644 --- a/public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html +++ b/public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html @@ -305,8 +305,8 @@ function openCamera(){ - $.post("{:url('/')}",{},function (data) { - + $.post("{:url('Salesmangoods/getSignPackage')}",{},function (data) { + console.log(data); }); wx.chooseImage({