微信的 JS SDK注意事项

来源:互联网 发布:说淘宝店铺认证 编辑:程序博客网 时间:2024/05/18 09:24
signature 的值是用多个参数 sha1 加密的结果,详细流程即:

1, 通过 appid + appsecert 获取公众号的 access_token(不是用户的 access_token)
2, 根据 1 的access_token 来获取 jsapi_ticket
3, 生成一个随机字符串 nonceStr(16)位
4, 生成一当前时间缀 timestamp
5, 获取当前网页 URL(#号后不要)

获取到以上 5 步之后,将 jsapi_ticket,nonceStr, timestamp,URL 组成 Query String(GET 参数),即:

$queryString = "jsapi_ticket=XXX&noncestr=XXX&timestamp=XXX&url=XXX";

生成 Query String 要注意:
1,Query String 的顺序不能变(按我给的示例)
2,Query String 中的 key 要全小写
3,Query String 中的 value 区分大小写
4,URL 要确保只获取 # 号之前部分(有 # 号的话)
5,Query String 要确保没有被 urlencode(如果使用 http_build_query 的话需要 urldecode 一次)

signature 的值就是 sha1 加密后的结果,即:

$signature = sha1($queryString);

详见微信官方文档 - JS-SDK使用权限签名算法:
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#....

原创粉丝点击