ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:200.21KB ,
资源ID:8917388      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8917388.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微信开发培训资料.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微信开发培训资料.docx

1、微信JS-SDK说明文档 目录 1 概述 1.1 JSSDK使用步骤 1.1.1 步骤一:绑定域名 1.1.2 步骤二:引入JS文件 1.1.3 步骤三:通过config接口注入权限验证配置 1.1.4 步骤四:通过ready接口处理成功验证 1.1.5 步骤五:通过error接口处理失败验证 1.2 接口调用说明 2 基础接口 2.1 判断当前客户端版本是否支持指定JS接口 3 分享接口 3.1 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 3.2 获取“分享给朋友”按钮点击状态及自定义分享内容接口 3.3 获取“分享到QQ”按

2、钮点击状态及自定义分享内容接口 3.4 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 3.5 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 4 图像接口 4.1 拍照或从手机相册中选图接口 4.2 预览图片接口 4.3 上传图片接口 4.4 下载图片接口 5 音频接口 5.1 开始录音接口 5.2 停止录音接口 5.3 监听录音自动停止接口 5.4 播放语音接口 5.5 暂停播放接口 5.6 停止播放接口 5.7 监听语音播放完毕接口 5.8 上传语音接口 5.9 下载语音接口 6 智能接口 6.1

3、 识别音频并返回识别结果接口 7 设备信息 7.1 获取网络状态接口 8 地理位置 8.1 使用微信内置地图查看位置接口 8.2 获取地理位置接口 9 摇一摇周边 9.1 开启查找周边ibeacon设备接口 9.2 关闭查找周边ibeacon设备接口 9.3 监听周边ibeacon设备接口 10 界面操作 10.1 隐藏右上角菜单接口 10.2 显示右上角菜单接口 10.3 关闭当前网页窗口接口 10.4 批量隐藏功能按钮接口 10.5 批量显示功能按钮接口 10.6 隐藏所有非基础按钮接口 10.7 显示所有功能按钮接口

4、 11 微信扫一扫 11.1 调起微信扫一扫接口 12 微信小店 12.1 跳转微信商品页接口 一三 微信卡券 一三.1 获取api_ticket 一三.2 拉取适用卡券列表并获取用户选择信息 一三.3 批量添加卡券接口 一三.4 查看微信卡包中的卡券接口 14 微信支付 14.1 发起一个微信支付请求 一五 附录1-JS-SDK使用权限签名算法 16 附录2-所有JS接口列表 17 附录3-所有菜单项列表 一八 附录4-卡券扩展字段及签名生成算法 19 附录5-常见错误及解决方法 20 附录6-DEMO页面和示例代码 21

5、附录7-问题反馈 概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项。 JSSDK使用步骤 步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者中心”查看对应的接口权限。 步骤二:

6、引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):xres.wx.qqx/open/js/jweixin-1.0.0.js 请注意,如果你的页面启用了https,务必引入 https://res.wx.qqx/open/js/jweixin-1.0.0.js ,否则将无法在iOS9.0以上系统中成功使用JSSDK 如需使用摇一摇周边功能,请引入 jweixin-1.1.0.js 备注:支持使用 AMD/CMD 标准模块加载方法加载 步骤三:通过config接口注入权限验证配置 所有需要使用JS-SDK的页面必须先注入配置信息,否则将

7、无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp:

8、 // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); 步骤四:通过ready接口处理成功验证 wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正

9、确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 }); 步骤五:通过error接口处理失败验证 wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); 接口调用说明 所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数: success:接口调用

10、成功时执行的回调函数。 fail:接口调用失败时执行的回调函数。 complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。 cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。 trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。 备注:不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回。 以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值

11、格式如下: 调用成功时:"xxx:ok" ,其中xxx为调用的接口名 用户取消时:"xxx:cancel",其中xxx为调用的接口名 调用失败时:其值为具体错误信息 基础接口 判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) { // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult"

12、{"chooseImage":true},"errMsg":"checkJsApi:ok"} } }); 备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。 分享接口 请注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,详细规则请查看:朋友圈管理常见问题 。 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: '', // 分享标题 link: '', // 分享链接

13、imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); 获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: '', // 分享标题 desc: '', // 分享描述 link: '', // 分享链接 imgUrl: '', // 分享图标

14、 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); 获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: '', /

15、/ 分享标题 desc: '', // 分享描述 link: '', // 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: '', // 分享标题 desc: '', //

16、 分享描述 link: '', // 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: '', // 分享标题 desc: '', // 分享描述 link: '', //

17、 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); 图像接口 拍照或从手机相册中选图接口 wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceT

18、ype: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 } }); 预览图片接口 wx.previewImage({ current: '', // 当前显示图片的http链接 urls: [] // 需要预览的图片http链接列表 }); 上传图片接口 wx.uploadImage({

19、 localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var serverId = res.serverId; // 返回图片的服务器端ID } }); 备注:上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 media_id,参考文档 ../12/58bfcfabbd501c7cd77c19bd9cfa8354.html

20、 目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请邮件weixin-openxqqx,邮件主题为【申请多媒体接口调用量】,请对你的项目进行简单描述,附上产品体验链接,并对用户量和使用量进行说明。 下载图片接口 wx.downloadImage({ serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var localId = res.local

21、Id; // 返回图片下载后的本地ID } }); 音频接口 开始录音接口 wx.startRecord(); 停止录音接口 wx.stopRecord({ success: function (res) { var localId = res.localId; } }); 监听录音自动停止接口 wx.onVoiceRecordEnd({ // 录音时间超过一分钟没有停止的时候会执行 complete 回调 complete: function (res) { var localId = r

22、es.localId; } }); 播放语音接口 wx.playVoice({ localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得 }); 暂停播放接口 wx.pauseVoice({ localId: '' // 需要暂停的音频的本地ID,由stopRecord接口获得 }); 停止播放接口 wx.stopVoice({ localId: '' // 需要停止的音频的本地ID,由stopRecord接口获得 }); 监听语音播放完毕接口 wx.onVoicePlayEnd({

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

24、 } }); 备注:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id,参考文档 ../12/58bfcfabbd501c7cd77c19bd9cfa8354.html 目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请邮件weixin-openxqqx,邮件主题为【申请多媒体接口调用量】,请对你的项目进行简单描述,附上产品体验链接,并对用户量和使用量进行说明。 下载语音接口 wx.downloadVoice({ serverId: '', // 需要下载的音频的服务器端ID,由upl

25、oadVoice接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var localId = res.localId; // 返回音频的本地ID } }); 智能接口 识别音频并返回识别结果接口 wx.translateVoice({ localId: '', // 需要识别的音频的本地Id,由录音相关接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: func

26、tion (res) { alert(res.translateResult); // 语音识别的结果 } }); 设备信息 获取网络状态接口 wx.getNetworkType({ success: function (res) { var networkType = workType; // 返回网络类型2g,3g,4g,wifi } }); 地理位置 使用微信内置地图查看位置接口 wx.openLocation({ latitude: 0, // 纬度,浮点数,范围为90 ~ -90

27、 longitude: 0, // 经度,浮点数,范围为一八0 ~ -一八0。 name: '', // 位置名 address: '', // 地址详情说明 scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大 infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转 }); 获取地理位置接口 wx.getLocation({ type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' success

28、 function (res) { var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var longitude = res.longitude; // 经度,浮点数,范围为一八0 ~ -一八0。 var speed = res.speed; // 速度,以米/每秒计 var accuracy = res.accuracy; // 位置精度 } }); 摇一摇周边 开启查找周边ibeacon设备接口 wx.startSearchBeacon

29、s({ ticket:"", //摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面 complete:function(argv){ //开启查找完成后的回调函数 } }); 备注:如需接入摇一摇周边功能,请参考:申请开通摇一摇周边 关闭查找周边ibeacon设备接口 wx.stopSearchBeacons({ complete:function(res){ //关闭查找完成后的回调函数 } }); 监听周边ibeacon设备接口 wx.onSearchBeacons({ complete:function(argv){

30、 //回调函数,可以数组形式取得该商家注册的在周边的相关设备列表 } }); 备注:上述摇一摇周边接口使用注意事项及更多返回结果说明,请参考:摇一摇周边获取设备信息 界面操作 隐藏右上角菜单接口 wx.hideOptionMenu(); 显示右上角菜单接口 wx.showOptionMenu(); 关闭当前网页窗口接口 wx.closeWindow(); 批量隐藏功能按钮接口 wx.hideMenuItems({ menuList: [] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 }); 批

31、量显示功能按钮接口 wx.showMenuItems({ menuList: [] // 要显示的菜单项,所有menu项见附录3 }); 隐藏所有非基础按钮接口 wx.hideAllNonBaseMenuItem(); // “基本类”按钮详见附录3 显示所有功能按钮接口 wx.showAllNonBaseMenuItem(); 微信扫一扫 调起微信扫一扫接口 wx.scanQRCode({ needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode","barCode"],

32、// 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 } }); 微信小店 跳转微信商品页接口 wx.openProductSpecificView({ productId: '', // 商品id viewType: '' // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页 }); 微信卡券 微信卡券接口中使用的签名凭证api_ticket,与步骤

33、三中config使用的签名凭证jsapi_ticket不同,开发者在调用微信卡券JS-SDK的过程中需依次完成两次不同的签名,并确保凭证的缓存。 获取api_ticket api_ticket 是用于调用微信卡券JS API的临时票据,有效期为7200 秒,通过access_token 来获取。 开发者注意事项: 1.此用于卡券接口签名的api_ticket与步骤三中通过config接口注入权限验证配置使用的jsapi_ticket不同。 2.由于获取api_ticket 的api 调用次数非常有限,频繁刷新api_ticket 会导致api调用受限,影响自身

34、业务,开发者需在自己的服务存储与更新api_ticket。 接口调用请求说明 http请求方式: GET https://api.weixin.qqx/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card 参数说明 参数 是否必须 说明 access_token 是 调用接口凭证 返回数据 数据示例: { "errcode":0, "errmsg":"ok", "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKdvsds

35、hFKA", "expires_in":7200 } 参数名 描述 errcode 错误码 errmsg 错误信息 ticket api_ticket,卡券接口中签名所需凭证 expires_in 有效时间 拉取适用卡券列表并获取用户选择信息 wx.chooseCard({ shopId: '', // 门店Id cardType: '', // 卡券类型 cardId: '', // 卡券Id timestamp: 0, // 卡券签名时间戳 nonceStr: '', // 卡券签名随机串

36、 signType: '', // 签名方式,默认'SHA1' cardSign: '', // 卡券签名 success: function (res) { var cardList= res.cardList; // 用户选中的卡券列表信息 } }); 参数名 必填 类型 示例值 描述 shopId 否 string(24) 1234 门店ID。shopID用于筛选出拉起带有指定location_list(shopID)的卡券列表,非必填。 cardType 否 string(24) GROUP

37、ON 卡券类型,用于拉起指定卡券类型的卡券列表。当cardType为空时,默认拉起所有卡券的列表,非必填。 cardId 否 string(32) p1Pj9jr90_SQRaVqYI239Ka1erk 卡券ID,用于拉起指定cardId的卡券列表,当cardId为空时,默认拉起所有卡券的列表,非必填。 timestamp 是 string(32) 14300000000 时间戳。 nonceStr 是 string(32) sduhi123 随机字符串。 signType 是 string(32) SHA1 签名方式,目前仅支持SHA

38、1 cardSign 是 string(64) abcsdijcous123 签名。 cardSign详见附录4。开发者特别注意:签名错误会导致拉取卡券列表异常为空,请仔细检查参与签名的参数有效性。 特别提醒 拉取列表仅与用户本地卡券有关,拉起列表异常为空的情况通常有三种:签名错误、时间戳无效、筛选机制有误。请开发者依次排查定位原因。 批量添加卡券接口 wx.addCard({ cardList: [{ cardId: '', cardExt: '' }], // 需要添加的卡券列表

39、 success: function (res) { var cardList = res.cardList; // 添加的卡券列表信息 } }); cardExt详见附录4,值得注意的是,这里的card_ext参数必须与参与签名的参数一致,格式为字符串而不是Object,否则会报签名错误。 查看微信卡包中的卡券接口 wx.openCard({ cardList: [{ cardId: '', code: '' }]// 需要打开的卡券列表 }); 微信支付 发起一个微信支付请求 wx

40、chooseWXPay({ timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: '', // 支付签名随机串,不长于 32 位 package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' paySign: '', // 支付签名

41、success: function (res) { // 支付成功后的回调函数 } }); 备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。 微信支付开发文档:https://pay.weixin.qqx/wiki/doc/api/index.html 附录1-JS-SDK使

42、用权限签名算法 jsapi_ticket 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。 参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../一五/54ce45d

43、8d30b6bf6758f68d2e95bc627.html 用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qqx/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi 成功返回如下JSON: { "errcode":0, "errmsg":"ok", "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41Z

44、O3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA", "expires_in":7200 } 获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。 签名算法 签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…

45、拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。 即signature=sha1(string1)。示例: noncestr=Wm3WZYTPz0wzccnW jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg timestamp=1414587457 url=xmp.weixin.qqx?params=value

46、 步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1: jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=xmp.weixin.qqx?params=value 步骤2. 对string1进行sha

47、1签名,得到signature: 0f9de62fce790f9a083d5c99e95740ceb90c27ed 注意事项 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。 签名用的url必须是调用JS接口页面的完整URL。 出于安全考虑,开发者必须在服务器端实现签名的逻辑。 如出现invalid signature 等错误详见附录5常见错误及解决办法。 附录2-所有JS接口列表 版本1.0.0接口 onMenuShareTimeline onMenuShareAppMe

48、ssage onMenuShareQQ onMenuShareWeibo onMenuShareQZone startRecord stopRecord onVoiceRecordEnd playVoice pauseVoice stopVoice onVoicePlayEnd uploadVoice downloadVoice chooseImage previewImage uploadImage downloadImage translateVoice getNetworkType openLocation

49、getLocation hideOptionMenu showOptionMenu hideMenuItems showMenuItems hideAllNonBaseMenuItem showAllNonBaseMenuItem closeWindow scanQRCode chooseWXPay openProductSpecificView addCard chooseCard openCard 附录3-所有菜单项列表 基本类 举报: "menuItem:exposeArticle" 调整字体: "menuItem:setFont" 日间模式: "menuItem:dayMode" 夜间模式: "menuItem:nightMode" 刷新: "menuItem:refresh" 查看公众号(已添加): "menuItem:profile" 查看公众号(未添加): "menuItem:addContact" 传播类 发送给朋友: "menuItem:share:appMessage" 分享到朋友圈: "menuItem:share:timeline" 分享到QQ: "menuItem:share:qq" 分享到Weibo: "menuItem:sha

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服