微信学习笔记之二(微信jssdk获取配置权限流程)
来源:互联网 发布:15度倒角怎么编程 编辑:程序博客网 时间:2024/06/14 08:45
a. 自己的电脑绑定独立的域名
b. 成功申请微信管理测试账号c. 本引导采用的是php的CI框架
1.绑定域名
这一步 在笔记一 中已经解决,正式公众号的绑定很简单请访问官方文档
这里不再赘述。
2.获取 config相关的配置信息
(1) 获取token(失效时间 7200秒)
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取结果示例:
{"access_token":"ACCESS_TOKEN","expires_in":7200};
请求:
注意如果是本地映射外网的服务器,需要绕过https的证书认证
正式服务器环境可以省略这一步
$this->curl->options(array(CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false));//绕过证书认证 正式服务器可省略 $res = $this->curl->simple_get($url); //发送get 请求 并返回请求结果 $token = json_decode($res); $token = $token->access_token; //到这里就完成了第一步的请求
第一种方式缓存:memcache
<?php $mmc=memcache_init();//初始化缓存 $token=memcache_get($mmc,"token");//获取Token if(empty($token))//判断是否为空,如为空则重新获取Token { $appid="wx7ced2a8593275753"; $secret="71f475563d00103a356943875e96d43a"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";/* $ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$a = curl_exec($ch);*/ //将上面的CI的获取代码段放在这里 $strjson=json_decode($a);$access_token = $strjson->access_token;memcache_set($mmc,"token",$access_token,0,7200);//过期时间为7200秒$token=memcache_get($mmc,"token");//获取Token } ?>
第二种方式缓存:文件缓存
<?php //这种方式要平凡操作文件IO 也有它的弊端 只写操作思路伪代码 //我们以 "时间戳 ## access_token" 格式进行存储 $current_time = time(); $info = file_get_contents("文件路径"); $access_token = ''; if(trim($info) == ''){ //重新获取token代码 将CI获取的代码段放在这里 //获取到后将新的时间戳 和 对应的 access_token 存入 $access_token = 赋值; }else{ $access_info = explode('##',$info); $time = $access_info[0]; if($current_time > $time + 7200 || trim($access_info[1]) == ''){ //重新获取token代码 将CI获取的代码段放在这里 //获取到后将新的时间戳 和 对应的 access_token 存入 $access_token = 赋值; }else{ $access_token = 赋值; } } ?>
第三种方式缓存:数据库缓存
(2) 获取完成后 提取 ticket
(获取及缓存方式 同上)
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
{
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-
41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
}
(3) 生成 signature
参数如下:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-
HhTdfl2fzFy1AOcHKP7qg
noncestr=Wm3WZYTPz0wzccnW //自己生成的16位随机字符串
timestamp=1414587457 //第一次请求时的时间戳
url=http:sjgf.nat123.net //当前url 主域名必须与你绑定的安全js域名一致
$string1 ="jsapi_ticket={$ticket}&noncestr={$noncestr}×tamp={$timestamp}&url={$current_url}"; //signature的获取 $signature=sha1($string1)。
(4) 验证config 微信
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
详情请见:官方jssdk 说明文档
- 微信学习笔记之二(微信jssdk获取配置权限流程)
- 微信开发之——JSSDK,通过config接口注入权限验证配置
- 微信网页JSSDK开发流程
- 微信jsSDK本地调试流程攻略(nodeJs实现获取access_token等信息)
- 微信JSSDK获取当前地理位置信息
- # 微信AccessToken、JSSDK关键属性获取
- 公众号JSSDK配置文件config详解,微信jssdk配置
- 微信 JSSDK
- 微信JSSDK-demo
- 微信JSSDK使用指南
- 微信:JSSDK开发
- 微信jssdk总结
- 微信jssdk开发
- 微信 JSSDK 调用
- 微信JSSDK生成
- 微信jssdk使用
- 微信jssdk封装
- 微信jssdk接口
- 链表实现两个数字相加
- Python程序执行原理1
- 那些你不知道的linux命令
- 利用bat批处理来批量提取文件名_生成样本描述文件
- 堆 和 栈的 区别(经典)
- 微信学习笔记之二(微信jssdk获取配置权限流程)
- ubuntu 下android studio 开发环境的搭建
- JSP开发过程遇到的中文乱码问题及解决方案
- Xcode的警告、错误的解决办法
- 浏览器兼容性:Firefox和IE中的textContent和text
- Android开发编码规范
- SQL Server 2008 R2英文版安装图文教程(中文版安装同理)
- Java 反射由实体类生产hive或mysql表对应字段
- Spring MVC 教程,快速入门,深入分析