当前位置:K88软件开发文章中心编程全书微信小程序 → 文章内容

微信JS-SDK说明文档

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:46:46

临时票据,有效期为7200 秒,通过access_token 来获取。开发者注意事项:1.此用于卡券接口签名的api_ticket与步骤三中通过config接口注入权限验证配置使用的jsapi_ticket不同。2.由于获取api_ticket 的api 调用次数非常有限,频繁刷新api_ticket 会导致api调用受限,影响自身业务,开发者需在自己的服务存储与更新api_ticket。接口调用请求说明http请求方式: GEThttps://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card参数说明参数是否必须说明access_token是接口调用凭证返回数据数据示例: {"errcode":0,"errmsg":"ok","ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKdvsdshFKA","expires_in":7200}参数名描述errcode错误码errmsg错误信息ticketapi_ticket,卡券接口中签名所需凭证expires_in有效时间拉取适用卡券列表并获取用户选择信息wx.chooseCard({    shopId: '', // 门店Id    cardType: '', // 卡券类型    cardId: '', // 卡券Id    timestamp: 0, // 卡券签名时间戳    nonceStr: '', // 卡券签名随机串    signType: '', // 签名方式,默认'SHA1'    cardSign: '', // 卡券签名    success: function (res) {        var cardList= res.cardList; // 用户选中的卡券列表信息    }});参数名必填类型示例值描述shopId否string(24)1234门店ID。shopID用于筛选出拉起带有指定location_list(shopID)的卡券列表,非必填。cardType否string(24)GROUPON卡券类型,用于拉起指定卡券类型的卡券列表。当cardType为空时,默认拉起所有卡券的列表,非必填。cardId否string(32)p1Pj9jr90_SQRaVqYI239Ka1erk卡券ID,用于拉起指定cardId的卡券列表,当cardId为空时,默认拉起所有卡券的列表,非必填。timestamp是string(32)14300000000时间戳。nonceStr是string(32)sduhi123随机字符串。signType是string(32)SHA1签名方式,目前仅支持SHA1cardSign是string(64)abcsdijcous123签名。开发者特别注意:签名错误会导致拉取卡券列表异常为空,请仔细检查参与签名的参数有效性。特别提醒拉取列表仅与用户本地卡券有关,拉起列表异常为空的情况通常有三种:签名错误、时间戳无效、筛选机制有误。请开发者依次排查定位原因。批量添加卡券接口wx.addCard({    cardList: [{        cardId: '',        cardExt: ''    }], // 需要添加的卡券列表    success: function (res) {        var cardList = res.cardList; // 添加的卡券列表信息    }});值得注意的是,这里的card_ext参数必须与参与签名的参数一致,格式为字符串而不是Object,否则会报签名错误。建议开发者一次添加的卡券不超过5张,否则会遇到超时报错。查看微信卡包中的卡券接口wx.openCard({    cardList: [{        cardId: '',        code: ''    }]// 需要打开的卡券列表});微信支付发起一个微信支付请求wx.chooseWXPay({    timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符    nonceStr: '', // 支付签名随机串,不长于 32 位    package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)    signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'    paySign: '', // 支付签名    success: function (res) {        // 支付成功后的回调函数    }});备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/api/index.html附录1-JS-SDK使用权限签名算法jsapi_ticket生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。1.参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html2.用第一步拿到的access_token 采用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}获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。签名算法签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。即signature=sha1(string1)。 示例:noncestr=Wm3WZYTPz0wzccnWjsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qgtimestamp=1414587457url=http://mp.weixin.qq.com?params=value步骤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:0f9de62fce790f9a083d5c99e95740ceb90c27ed注意事项1.签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。2.签名用的url必须是调用JS接口页面的完整URL。3.出于安全考

上一页  [1] [2] [3] [4] [5]  下一页


微信JS-SDK说明文档