微信JS接口大全

正文为我们大快朵颐了js微信接口详细版,供大家仿照效法,具体内容如下

微信js拿到具名signature,js签字signature

服务器端:

1 获取微信js accessToken

备注:access_token是大伙儿号的大局独一票据,大伙儿号调用各接口时都需选拔access_token。
开垦者供给进行妥当保存。access_token的贮存至少要保存5十三个字符空间。
access_token的保藏期近些日子为2个时辰,需定期刷新,
重复获取将招致上次获得的access_token失效。

目前access_token的保藏期通过再次来到的expire_in来传达,这段时间是7200秒之内的值。
中央控战胜务器必要基于那一个有效时间提前去刷新新access_token。

赢得格局:
1) . 大伙儿号能够使用AppID和AppSecret调用本接口来获得access_token。
AppID和AppSecret可在微信徒人平台官方网址-开荒者中央页中拿走
(须要已经变为开拓者,且帐号未有非常情况)

2) .http哀告方式:
GET :

3) .重返表达:符合规律情状下,微信会再次回到下述JSON数据包给公众号:
{“access_token”:”ACCESS_TOKEN”,”expires_in”:7200}

4) 将取获得的accessToken值放入缓存中,寄存时间低于7200秒

2 获取 jsapi_ticket

备注: jsapi_ticket是大众号用于调用微信JS接口的一时票据。
平日意况下,jsapi_ticket的保藏期为7200秒,通过access_token来获取。

获取格局:
1) 采取http
GET格局呼吁得到jsapi_ticket(保质期7200秒,开垦者必须在投机的服务全局缓存jsapi_ticket:
2) http央浼格局:
GET:

3)重回表达:成功重临如下JSON:
{
“errcode”:0,
“errmsg”:”ok”,
“ticket”:”bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA”,
“expires_in”:7200
}
4)将得到到的jsapi_ticket值纳入缓存中,寄放时间低于7200秒

3 生成签字

备考:签字生成准则如下:
涉足签署的字段包含noncestr(随机字符串),
有效的jsapi_ticket,
timestamp(时间戳),
url(当前网页的U本田UR-VL,不包罗#随同后面部分) 。
对全部待具名参数根据字段名的ASCII 码从小到大排序(字典序)后,
应用U猎豹CS6L键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。
此间须要留意的是装有参数名均为小写字符。
对string1作sha1加密,字段名和字段值都应用原始值,不开始展览U卡宴L 转义。
赢得格局:
1). 对全数待具名参数依照字段名的ASCII
码从小到大排序(字典序)后,使用U昂科拉L键值对的格式
(即key1=value1&key2=value2…)拼接成字符串string1:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=

2).
对string1进行sha1签名,得到signature:f4d90daf4b3bca3078ab155816175ba34c443a7b
用Apache的commons-codec工具包,其中的DigestUtils类有SHA加密方法能够一向调用..

3).
将wx.config接口需求的参数值都放入缓存中(即signature,noncestr,timestamp),时间为小于7200秒。

注意事项:

1)
签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp同样。
2) 签字用的url必须是调用JS接口页面的全部UENVISIONL。
3) 出于安全着想,开拓者必须在服务器端完毕签订契约的逻辑。

服务器端: 1 获取微信js accessToken
备注:access_token是民众号的大局独一票据,大伙儿号调用各接口时都需使…

支付在此之前

主干注明 接纳表达
1.引入JS文件 
在急需调用JS接口的页面引进如下JS文件,(协助https): 
备注:协理选择 英特尔/CMD 标准模块加载方法加载 
2.注入配置config接口 
装有须要利用JSSDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用壹遍,对于变化url的SPA的web
app可在每回url变化时开展调用)。

1.获取 access_token

https伏乞格局: GET
https://api.weixin.qq.com/cgi-bin/token?grant\_type=client\_credential&appid=APPID&secret=APPSECRET

 wx.config({
 debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
 appId: '', // 必填,公众号的唯一标识
 timestamp: , // 必填,生成签名的时间戳
 nonceStr: '', // 必填,生成签名的随机串
 signature: '',// 必填,签名,见附录1
 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

参数表明

参数 是否必须 说明
grant_type 获取access_token填写client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

3.证实通过ready接口

回去表达

正规情状下,微信会重回下述JSON数据包给大伙儿号:

{“access_token”:”ACCESS_TOKEN”,”expires_in”:7200}

 wx.ready(function(){

 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

2. 获取jsapi_ticket

jsapi_ticket是群众号用于调用微信JS接口的偶然票据。寻常情况下,jsapi_ticket的有效期为7200秒,通过access_token来赢得。由于获得jsapi_ticket的api调用次数特别有限,频仍刷新jsapi_ticket会导致api调用受限,影响本身业务,开垦者必须在温馨的劳务全局缓存jsapi_ticket

应用http
GET情势呼吁获得jsapi_ticket(保质期7200秒,开采者必须在投机的劳动大局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access\_token=ACCESS\_TOKEN&type=jsapi

成功重回如下JSON:

{
“errcode”:0,
“errmsg”:”ok”,
“ticket”:”bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA”,
“expires_in”:7200
}

4.验证退步error接口

获得jsapi_ticket之后,就能够生成JS-SDK权限验证的签署了。

 wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

3. 签字算法

签署生成准绳如下:加入签署的字段蕴含noncestr(随机字符串),
有效的jsapi_ticket, timestamp(时间戳),
url(当前网页的U君越L,不分包#随同尾部)
。对全部待具名参数依照字段名的ASCII
码从小到大排序(字典序)后,使用UKoleosL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里要求专注的是持有参数名均为小写字符。对string1作sha1加密,字段名和字段值都应用原始值,不开展USportageL
转义。

即signature=sha1(string1)。 示例:

noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=1414587457
url=http://mp.weixin.qq.com?params=value

接口调用表明 负有接口通过wx对象(也可应用jWeixin对象)来调用,参数是一个对象,除了每一种接口本人须求传的参数之外,还会有以下通用参数:

手续1. 对全数待签字参数遵照字段名的ASCII 码从小到大排序(字典序)后,使用U奥迪Q3L键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
  1. success:接口调用成功时施行的回调函数。
  2. fail:接口调用战败时进行的回调函数。
  3. complete:接口调用达成时实行的回调函数,无论成功或战败都会实行。
    4.
    cancel:用户点击撤消时的回调函数,仅局地有用户打消操作的api才会用到。
  4. trigger:
    监听Menu中的按键点击时触发的艺术,该方法仅扶助Menu中的相关接口。 
步骤2. 对string1进行sha1签名,得到signature:
0f9de62fce790f9a083d5c99e95740ceb90c27ed

注意事项

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

2.具名用的url必须是调用JS接口页面包车型地铁完整U路虎极光L。

3.由于安全思量,开垦者必须在服务器端达成签订契约的逻辑。如出现invalid
signature 等悖谬详见附录5常见错误及化解办法。



以上多少个函数都蕴含多个参数,类型为目的,在那之中除了每一种接口本人重回的多少之外,还有一个通用属性errMsg,其值格式如下:

开首使用JS-SDK

  1. 调用成功时:”xxx:ok” ,个中xxx为调用的接口名
  2. 用户撤除时:”xxx:cancel”,个中xxx为调用的接口名
  3. 调用失利时:其值为现实错误消息 

手续一:绑定域名

基本功接口 看清当前客户端版本是还是不是援助钦点JS接口

步骤二:引入JS文件

 wx.checkJsApi({
jsApiList: ['chooseImage'] // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}

});

步骤三:通过config接口注入权限验证配置

不无需求运用JS-SDK的页面非得先注入配置信息,否则将不可能调用(同贰个url仅需调用叁遍,对于变化url的SPA的web
app可在每一回url变化时开始展览调用,前段时间Android微信客户端不扶助pushState的H5新性子,所以采纳pushState来贯彻web
app的页面会产生具名失败,此主题材料会在Android6.第22中学修复)

wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识   ---已有!
    timestamp: , // 必填,生成签名的时间戳   ---已有!
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名              ---见生成规则   
    jsApiList: [] // 必填,需要使用的JS接口列表   如:分享好友及朋友圈/微信定位等
});

签字算法见 3. 签署算法

享用接口 
获取“分享到对象圈”开关点击状态及自定义共享内容接口

手续四:通过ready接口处理成功验证

wx.ready(function(){
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
 wx.onMenuShareTimeline({
 title: '', // 分享标题
 link: '', // 分享链接
imgUrl: '', // 分享图标
success: function () { 
// 用户确认分享后执行的回调函数
},
cancel: function () { 
// 用户取消分享后执行的回调函数
}
});

步骤五:通过error接口管理失利验证

wx.error(function(res){
    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

详细官方文书档案
https://mp.weixin.qq.com/wiki?t=resource/res\_main&id=mp1421140183

获得“共享给心上人”开关点击状态及自定义分享内容接口

 wx.onMenuShareAppMessage({
 title: '', // 分享标题
 desc: '', // 分享描述
 link: '', // 分享链接
 imgUrl: '', // 分享图标
 type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () { 
// 用户确认分享后执行的回调函数
},
cancel: function () { 
// 用户取消分享后执行的回调函数
}
});

取得“分享到QQ”开关点击状态及自定义分享内容接口

 wx.onMenuShareQQ({
 title: '', // 分享标题
 desc: '', // 分享描述
 link: '', // 分享链接
 imgUrl: '' // 分享图标
success: function () { 
// 用户确认分享后执行的回调函数
},
cancel: function () { 
// 用户取消分享后执行的回调函数
}
});

赢得“共享到Tencent网易”开关点击状态及自定义分享内容接口

 wx.onMenuShareWeibo({
 title: '', // 分享标题
 desc: '', // 分享描述
 link: '', // 分享链接
 imgUrl: '' // 分享图标
success: function () { 
// 用户确认分享后执行的回调函数
},
cancel: function () { 
// 用户取消分享后执行的回调函数
}
});

图像接口 
拍照或从手提式有线电话机相册中选图接口

 wx.chooseImage({
 success: function (res) {
  var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
 }
});

预览图片接口

 wx.previewImage({
 current: '', // 当前显示的图片链接
 urls: [] // 需要预览的图片链接列表
});

上传图片接口

 wx.uploadImage({
localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
 success: function (res) {
  var serverId = res.serverId; // 返回图片的服务器端ID
 }
});

备注:可用微信下载多媒体文件接口下载上传的图样,此处得到的 serverId
即 media_id,仿效文档../12/58bfcfabbd501c7cd77c19bd9cfa8354.html 

下载图片接口

 wx.downloadImage({
serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
 success: function (res) {
  var localId = res.localId; // 返回图片下载后的本地ID
 }
});

音频接口
起首录音接口
 wx.startRecord(); 
悬停录音接口

发表评论

电子邮件地址不会被公开。 必填项已用*标注