调用微信公众号扫一扫接口
随着微信公众号的越来越火,微信公众平台新推出公众号扫一扫接口如同爱情故事里的主题歌一样让人措手不及,可以让用户先关注公众号,然后在公众号里调用扫一扫。那么下面就让小编给大家介绍一下调用微信公众号扫一扫接口。
开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。..
微信扫一扫,由JS去发起
在需要调用JS接口的页面引入如下JS文件,(支持s):res.wx.qq/open/js/jweixin-1.0.0.js
请注意,如果你的页面启用了s,务必引入 res.wx.qq/open/js/jweixin-1.0.0.js ,否则将无法在iOS9.0以上系统中成功使用JSSDK
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
通过ready接口处理成功验证
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,
config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
通过error接口处理失败验证
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
获取上述签名signature的方式:
1.先获取access_token
请求方式: GET
api.weixin.qq/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
请求参数说明:
grant_type:获取access_token填写client_credential
appid:第三方用户唯一凭证
secret:第三方用户唯一凭证密钥返回参数:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
2.获取到access_token之后获取,采用 GET方式请求获得jsapi_ticket:
api.weixin.qq/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
成功返回:
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
3.进行扫一扫签名:
需要的参数:
示例:
noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=1414587457
url=mp.weixin.qq?params=value
注意:URL如果是mp.weixin.qq,后面必须跟上“/”. url=mp,weixin.qq/
对这些上述参数进行签名:
签名算法:签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=mp.weixin.qq?params=value
步骤2. 对string1进行sha1签名:signature=sha1(string1),得到signature:
0f9de62fce790f9a083d5c99e95740ceb90c27ed
在后台程序生成一个数组,js可以通过异步请求,得到该数组,这样js就能获取到相应的值发送扫一扫请求啦!
$signPackage = array(
"appId" => $appId,
"nonceStr" => $nonceStr,
"timestamp" => $timestamp,
"url" => $url,
"signature" => $signature,
"rawString" => $string
);
通过以上的描述你是否了解调用微信公众号扫一扫接口呢?这样如此全面、有效、简单的恢复方法,你学会了吗?如果你还想了解更多的话。更多更详细微信公众号素材内容,请持续关注微素达。
相关阅读:
微信公众号爆文怎么发?
微信公众号文章有哪些套路?
微信公众号文章怎么写
上一篇:微信公众平台怎么做地图定位导航