香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

建站专题

微信开发之获取JSAPI TICKET

一佰互联网站开发设计(www.yinxi.net) 发布日期 2019-04-26 09:01:53 浏览数: 27

一、获取流程

1、获取 access_token

2、通过access_token换取 jsapi_ticket

3、签名算法

签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

二、具体实现方式

1、获取access_token

/** * [getAccessToken description] 获取access_token * @return [type] [description] */private function getAccessToken() {  $data = $this->getFile($this->accessTokenFile);  if(time() - $data["time"] > 0){    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appID}&secret={$this->appsecret}";    $re = $this->httpGet($url);    $access_token = $re["access_token"];        if(isset($access_token)){      $data["access_token"] = $access_token;      $data["time"] = time() + 7200;      $this->setFile($this->accessTokenFile,json_encode($data));    }  }else{    $access_token = $data["access_token"];  }  return $access_token;}

access_token 的有效时间是7200s,故可以采用文件存储的方法进行保存,避免多次请求;

2、获取jsapi_ticket

/** * [getJsapiTicket description] 获取jsapi_ticket * @return [type] [description] */private function getJsapiTicket() {  $access_token = $this->getAccessToken();  $jsapi_ticket = $this->getFile($this->jsapiTicketFile);  if(time() - $jsapi_ticket["time"] > 0) {    $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$access_token}&type=jsapi";    $re = $this->httpGet($url);    $this->preArr($re);    $jsapi_ticket = $re["ticket"];        if(isset($jsapi_ticket)){      $data["jsapi_ticket"] = $jsapi_ticket;      $data["time"] = time() + 7200;      $this->setFile($this->jsapiTicketFile, json_encode($data));    }  }else{    $jsapi_ticket = $jsapi_ticket["jsapi_ticket"];  }  return $jsapi_ticket;}

通过access_token进行交换,得到jsapi_ticket,有效期也是7200s;

3、生成签名

/** * [getSignpackage description] 获取签名 * @return [type] [description] */public function getSignpackage(){  $jsapi_ticket = $this->getJsapiTicket();  // 注意 URL 一定要动态获取,不能 hardcode.  $protocol = (!empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] !== "off" || $_SERVER["SERVER_PORT"] == 443) ? "https://" : "http://";  $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";  $noncestr = $this->createNonceStr();  $timestamp = time();  $string1 = "jsapi_ticket={$jsapi_ticket}&noncestr={$noncestr}×tamp={$timestamp}&url={$url}";  $signature = sha1($string1);    $signPackage = array(        "appId"   => $this->appID,        "nonceStr" => $noncestr,        "timestamp" => $timestamp,        "signature" => $signature,  );    return $signPackage;}

签名算法

使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:

对string1进行sha1签名,得到signature:

注意事项:

1.签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。

2.签名用的url必须是调用JS接口页面的完整URL。

3.出于安全考虑,开发者必须在服务器端实现签名的逻辑。

 详情参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网页设计。

TAG标签: 微信开发之获取JSAPI   TICKET  
一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

28
03月
手机必备的3款追剧小程序!看完记得收藏

简介:日常休闲时间怎么度过?当然是追剧了,贴心的速报君贴心的速报君今天为大家推荐几款追剧小程序,让你轻轻松松解决看剧难的问题~1. 小里追剧... >>详情

17
04月
北京东城区老字号组团网上开店 顺应电商发展

8月底,市民可在京东商城定制北京珐琅厂的工艺品,并在网上参观珐琅博物馆。记者了解到,东城区商委为老字号搭建平台,珐琅厂、信远斋、吴裕泰等将首... >>详情

04
05月
网站流量异常变动的8种常见原因及建议

网站分析中,最常见的一项工作就是对流量的异常变化进行分析和解释。今天网站的流量变高了,为什么? 后天网站的流量降低了,又是为什么? 这些变化... >>详情

30
03月
经营网站为什么要办理文网文?

简介:经营网站为什么要办理文网文?不同类型的经营网站,则需要不同的许可证明,而互联网文化活动可以分为两类,第一类则是经营类,第二类则是非经营... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号