正在显示
2 个修改的文件
包含
55 行增加
和
17 行删除
@@ -210,10 +210,7 @@ class SalesmangoodsController extends WeChatBaseController{ | @@ -210,10 +210,7 @@ class SalesmangoodsController extends WeChatBaseController{ | ||
210 | $ticketList = $this->getJsApiTicket($token['accessToken']); | 210 | $ticketList = $this->getJsApiTicket($token['accessToken']); |
211 | $ticket = $ticketList['ticket']; | 211 | $ticket = $ticketList['ticket']; |
212 | // 该URL为使用JSSDK接口的URL | 212 | // 该URL为使用JSSDK接口的URL |
213 | - $url = $_GET['url']; | ||
214 | - if (!$url) { | ||
215 | - $url = 'http://xxx.xxx.com/index/index.html'; | ||
216 | - } | 213 | + $url = 'http://xkeasy.w.bronet.cn/'; |
217 | // 时间戳 | 214 | // 时间戳 |
218 | $timestamp = time(); | 215 | $timestamp = time(); |
219 | // 随机字符串 | 216 | // 随机字符串 |
@@ -222,7 +219,7 @@ class SalesmangoodsController extends WeChatBaseController{ | @@ -222,7 +219,7 @@ class SalesmangoodsController extends WeChatBaseController{ | ||
222 | $string = "jsapi_ticket=$ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; | 219 | $string = "jsapi_ticket=$ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; |
223 | $signature = sha1($string); | 220 | $signature = sha1($string); |
224 | $signPackage = array ( | 221 | $signPackage = array ( |
225 | - "appId" => C('WxPayConf_pub.APPID'), | 222 | + "appId" => "wxdf34ec2179e19b9a", |
226 | "nonceStr" => $nonceStr, | 223 | "nonceStr" => $nonceStr, |
227 | "timestamp" => $timestamp, | 224 | "timestamp" => $timestamp, |
228 | "url" => $url, | 225 | "url" => $url, |
@@ -238,23 +235,18 @@ class SalesmangoodsController extends WeChatBaseController{ | @@ -238,23 +235,18 @@ class SalesmangoodsController extends WeChatBaseController{ | ||
238 | public function getAccessToken() { | 235 | public function getAccessToken() { |
239 | // access_token 应该全局存储与更新 | 236 | // access_token 应该全局存储与更新 |
240 | // 获取数据库中的access_token | 237 | // 获取数据库中的access_token |
241 | - $token = M('accesstoken')->limit(1)->find(); | ||
242 | - // 如果数据库存在token | ||
243 | - if ($token) { | ||
244 | - // 格式化数据库的timestamp | ||
245 | - $time = strtotime($token['time']); | ||
246 | - } | 238 | + $token = Db::name('token') -> where('id',1) -> find(); |
247 | // accessToken过期或不存在时 | 239 | // accessToken过期或不存在时 |
248 | - if($time + $token['expiresIn'] < time() || $token['accessToken'] == NULL){ | ||
249 | - $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".C('WxPayConf_pub.APPID')."&secret=".C('WxPayConf_pub.APPSECRET'); | 240 | + if($token['time'] + $token['expiresIn'] < time() || $token['accessToken'] == NULL){ |
241 | + $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="."wxdf34ec2179e19b9a"."&secret="."133ced06db2a45843ab52abc691ee82d"; | ||
250 | // 微信返回的信息 | 242 | // 微信返回的信息 |
251 | $returnData = json_decode($this->httpGet($url)); | 243 | $returnData = json_decode($this->httpGet($url)); |
252 | // 组装数据 | 244 | // 组装数据 |
253 | $resData['accessToken'] = $returnData->access_token; | 245 | $resData['accessToken'] = $returnData->access_token; |
254 | $resData['expiresIn'] = $returnData->expires_in; | 246 | $resData['expiresIn'] = $returnData->expires_in; |
255 | - $resData['time'] = date("Y-m-d H:i",time()); | 247 | + $resData['time'] = time(); |
256 | // 把数据存进数据库 | 248 | // 把数据存进数据库 |
257 | - M('accesstoken')->where(array('id' => $token['id']))->save($resData); | 249 | + Db::name('token') -> where('id',1) -> update($resData); |
258 | $res = $resData; | 250 | $res = $resData; |
259 | }else{ | 251 | }else{ |
260 | $res = $token; | 252 | $res = $token; |
@@ -262,6 +254,52 @@ class SalesmangoodsController extends WeChatBaseController{ | @@ -262,6 +254,52 @@ class SalesmangoodsController extends WeChatBaseController{ | ||
262 | return $res; | 254 | return $res; |
263 | } | 255 | } |
264 | 256 | ||
257 | + public function getJsApiTicket($accessToken) { | ||
258 | + // jsapi_ticket 应该全局存储与更新 | ||
259 | + // 获取数据库中的jsapi_ticket | ||
260 | + $ticket = Db::name('token') -> where('id',2) -> find(); | ||
261 | + // 如果ticket失效 | ||
262 | + if($ticket['time'] + $ticket['expiresIn'] < time() || $ticket['ticket'] == NULL){ | ||
263 | + $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$accessToken&&type=jsapi"; | ||
264 | + // 微信返回的信息 | ||
265 | + $returnData = json_decode($this->httpGet($url)); | ||
266 | + // 组装数据 | ||
267 | + $resData['ticket'] = $returnData->ticket; | ||
268 | + $resData['expiresIn'] = $returnData ->expires_in; | ||
269 | + $resData['time'] = time(); | ||
270 | + $resData['errcode'] = $returnData->errcode; | ||
271 | + // 把数据存进数据库 | ||
272 | + Db::name('token') -> where('id',2) -> update($resData); | ||
273 | + $res = $resData; | ||
274 | + }else{ | ||
275 | + $res = $ticket; | ||
276 | + } | ||
277 | + return $res; | ||
278 | + } | ||
279 | + | ||
280 | + // 创建随机字符串 | ||
281 | + private function createNoncestr($length = 16) { | ||
282 | + $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; | ||
283 | + $str = ""; | ||
284 | + for($i = 0; $i < $length; $i ++) { | ||
285 | + $str .= substr ( $chars, mt_rand ( 0, strlen ( $chars ) - 1 ), 1 ); | ||
286 | + } | ||
287 | + return $str; | ||
288 | + } | ||
289 | + | ||
290 | + | ||
291 | + private function httpGet($url) { | ||
292 | + $curl = curl_init(); | ||
293 | + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true ); | ||
294 | + curl_setopt($curl, CURLOPT_TIMEOUT, 500 ); | ||
295 | + curl_setopt($curl, CURLOPT_URL, $url ); | ||
296 | + $res = curl_exec($curl); | ||
297 | + curl_close($curl); | ||
298 | + return $res; | ||
299 | + } | ||
300 | + | ||
301 | + | ||
302 | + | ||
265 | 303 | ||
266 | 304 | ||
267 | 305 |
@@ -305,8 +305,8 @@ | @@ -305,8 +305,8 @@ | ||
305 | 305 | ||
306 | function openCamera(){ | 306 | function openCamera(){ |
307 | 307 | ||
308 | - $.post("{:url('/')}",{},function (data) { | ||
309 | - | 308 | + $.post("{:url('Salesmangoods/getSignPackage')}",{},function (data) { |
309 | + console.log(data); | ||
310 | }); | 310 | }); |
311 | 311 | ||
312 | wx.chooseImage({ | 312 | wx.chooseImage({ |
-
请 注册 或 登录 后发表评论