TP5 微信JS-SDKphp签名
来源:互联网 发布:淘宝户外运动店铺 编辑:程序博客网 时间:2024/06/05 16:33
因为自己写的图片上传存在兼容性问题,所以使用微信JS-SDK中的图像上传功能,在使用微信JS-SDK以前需要再后台生成相应的签名才能正常使用微信的JS-SDK,在使用JS-SDK以前需要前台AJXS传过来网页地址 现保存一份以备后续使用 直接上代码: public function getdataOp(){ $datas = input('param.'); if($datas){//判断前台是否传输地址过来 $appid = config('weixin.appID'); $appsecret = config('weixin.appsecret'); $model=model('access_token'); $data=$model->where('status',2)->select(); $access_token=$this->getAccessTokenOp(); $Length=count($data); $ticketurl="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$access_token&type=jsapi"; if($Length<1){//因为我把jsapi存入数据库而不是放入缓存 所以我判断了数据长度,没有jsapi就获取 $ticket=json_decode($this->https_request($ticketurl)); $ticketdata= array( 'access_token'=>$ticket->ticket, 'status'=>'2', 'addtime'=>time()+7000//有效期为7200秒 每7000秒刷新一次 ); $status=$model->allowField(true)->save($ticketdata); $jsapiTicket=$ticket->ticket; }else{ if($data[$Length-1]['addtime']>time()){ $jsapiTicket=$data[$Length-1]['access_token']; }else{ $ticket=json_decode($this->https_request($ticketurl)); $ticketdata= array( 'access_token'=>$ticket->ticket, 'status'=>'2', 'addtime'=>time()+7000 ); $status=$model->allowField(true)->save($ticketdata); $jsapiTicket=$ticket->ticket; } } $timestamp = time(); $url = $datas['url']; $nonceStr =$this->createNonceStr(); $tmpArr = array( 'noncestr' => $nonceStr, 'timestamp' => $timestamp, 'jsapi_ticket' => $jsapiTicket, 'url' => $url ); ksort($tmpArr, SORT_STRING); $string1 = http_build_query( $tmpArr ); $string1 = urldecode( $string1 ); $signature = sha1( $string1 ); $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; $signPackage = array( "appId" =>$appid, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "signature" => $signature, 'string'=>$string ); return $signPackage; }else{ return 2; } }/* +-------------------------------------------------------------- |生成16位随机字符串 +-------------------------------------------------------------- */public 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;}
阅读全文
0 0
- TP5 微信JS-SDKphp签名
- tp5 微信授权登录
- 微信js-sdk签名算法
- java微信js SDK页面签名
- 微信js-sdk config JavaScript签名
- 微信js sdk invalid signature签名错误 问题解决。
- 微信JS SDK使用权限签名算法 jsapi_ticket
- 微信JS SDK使用权限签名算法 jsapi_ticket
- 微信JS SDK使用权限签名算法
- 微信JS-SDK 权限签名算法 C#版
- 微信js sdk invalid signature签名错误
- 微信&java 开发7 js sdk 获取签名 signature
- 微信js sdk invalid signature签名错误 问题解决
- 微信公众号网页开发js配置服务端签名
- 微信js sdk invalid signature签名错误
- jsessionid 对微信JS SDK 签名的影响
- 微信js sdk invalid signature签名错误
- 微信JS-SDK使用权限签名算法example
- inline和define的特点和区别
- awk 用法
- 运维集群cluster篇------1.集群及LVS简介 、 LVS-NAT集群 、 LVS-DR集群
- TypeScript学习(3)-新类型Symbols的使用
- javascript中的原型
- TP5 微信JS-SDKphp签名
- Elasticsearch(新建索引和文档)
- Django系列——第一个Template
- GreenDao的封装和使用
- 底部导航栏 BottomTabBar
- 20171116
- linux下安装eclipse的C++
- IntelliJ IDEA使用教程(很全)
- 面向对象得程序设计思想