微信分享
说明:微信分享给朋友、分享到朋友圈等主要是web前端的工作,这里我主要说明下调用微信JS-SDK所需要后台反悔的配置信息及签名信息
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用,如下图
图中所示appId,timestamp,nonceStr,signature这些参数需要后台返回,下面主要说明下签名的生成步骤
1.获取access_token
请求地址:https://api.weixin.qq.com/cgi-bin/token?grant\_type=client\_credential&appid=APPID&secret=APPSECRET
2.获取jsapi_ticket
用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket)
请求地址:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
3.生成签名
生成签名所需参数
noncestr :随机字符串
jsapi_ticket :第二步获取
timestamp:时间戳
url : 当前网页的URL,不包含#及其后面部分 建议使用:location.href.split('#')[0]获取,而且需要encodeURIComponent
生成步骤1:
对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1
示例:jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
生成步骤2.:
对string1进行sha1签名,得到signature
注意 :
1.这里签名用的随机字符串noncestr和时间戳timestamp 需原样返给页面
2.url建议使用location.href.split('#')[0]获取,而且需要encodeURIComponent
以上签名完成之后即可在页面进行分享
注意:分享链接的域名或路径必须与当前页面对应的公众号JS安全域名一致
js安全域名配置见下图