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

微信JS-SDK说明文档

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

虑,开发者必须在服务器端实现签名的逻辑。如出现invalid signature 等错误详见附录5常见错误及解决办法。附录2-所有JS接口列表版本1.0.0接口onMenuShareTimelineonMenuShareAppMessageonMenuShareQQonMenuShareWeiboonMenuShareQZonestartRecordstopRecordonVoiceRecordEndplayVoicepauseVoicestopVoiceonVoicePlayEnduploadVoicedownloadVoicechooseImagepreviewImageuploadImagedownloadImagetranslateVoicegetNetworkTypeopenLocationgetLocationhideOptionMenushowOptionMenuhideMenuItemsshowMenuItemshideAllNonBaseMenuItemshowAllNonBaseMenuItemcloseWindowscanQRCodechooseWXPayopenProductSpecificViewaddCardchooseCardopenCard附录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:share:weiboApp"收藏: "menuItem:favorite"分享到FB: "menuItem:share:facebook"分享到 QQ 空间/menuItem:share:QZone保护类编辑标签: "menuItem:editTag"删除: "menuItem:delete"复制链接: "menuItem:copyUrl"原网页: "menuItem:originPage"阅读模式: "menuItem:readMode"在QQ浏览器中打开: "menuItem:openWithQQBrowser"在Safari中打开: "menuItem:openWithSafari"邮件: "menuItem:share:email"一些特殊公众号: "menuItem:share:brand"附录4-卡券扩展字段及签名生成算法JSSDK使用者请读这里,JSAPI用户可以跳过卡券签名和JSSDK的签名完全独立,两者的算法和意义完全不同,请不要混淆。JSSDK的签名是使用所有JS接口都需要走的一层鉴权,用以标识调用者的身份,和卡券本身并无关系。其次,卡券的签名考虑到协议的扩展性和简单的防数据擅改,设计了一套独立的签名协议。另外由于历史原因,卡券的JS接口先于JSSDK出现,当时的JSAPI并没有鉴权体系,所以在卡券的签名里也加上了appsecret/api_ticket这些身份信息,希望开发者理解。卡券 api_ticket卡券 api_ticket 是用于调用卡券相关接口的临时票据,有效期为 7200 秒,通过 access_token 来获取。这里要注意与 jsapi_ticket 区分开来。由于获取卡券 api_ticket 的 api 调用次数非常有限,频繁刷新卡券 api_ticket 会导致 api 调用受限,影响自身业务,开发者必须在自己的服务全局缓存卡券 api_ticket 。1.参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html2.用第一步拿到的access_token 采用http GET方式请求获得卡券 api_ticket(有效期7200秒,开发者必须在自己的服务全局缓存卡券 api_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card卡券扩展字段cardExt说明cardExt本身是一个JSON字符串,是商户为该张卡券分配的唯一性信息,包含以下字段:字段是否必填是否参与签名说明code否是指定的卡券code码,只能被领一次。自定义code模式的卡券必须填写,非自定义code和预存code模式的卡券不必填写。详情见:是否自定义code码openid否是指定领取者的openid,只有该用户能领取。bind_openid字段为true的卡券必须填写,bind_openid字段为false不必填写。timestamp是是时间戳,商户生成从1970年1月1日00:00:00至今的秒数,即当前的时间,且最终需要转换为字符串形式;由商户生成后传入,不同添加请求的时间戳须动态生成,若重复将会导致领取失败!。nonce_str否是随机字符串,由开发者设置传入,加强安全性(若不填写可能被重放请求)。随机字符串,不长于32位。推荐使用大小写字母和数字,不同添加请求的nonce须动态生成,若重复将会导致领取失败。fixed_begintimestamp否否卡券的领取时间,为10位时间戳。当卡券的有效期类型为DATE_TYPE_FIX_TERM时专用,标识卡券的实际生效时间,用于解决商户系统内起始时间和领取时间不同步的问题。outer_id否否领取渠道参数,用于标识本次领取的渠道值。signature是-签名,商户将接口列表中的参数按照指定方式进行签名,签名方式使用SHA1,具体签名方案参见下文;由商户按照规范签名后传入。签名说明1.将 api_ticket(特别说明:api_ticket 相较 appsecret 安全性更高,同时兼容老版本文档中使用的 appsecret 作为签名凭证。)、timestamp、card_id、code、openid、nonce_str的value值进行字符串的字典序排序。2.将所有参数字符串拼接成一个字符串进行sha1加密,得到signature。3.signature中的timestamp,nonce字段和card_ext中的timestamp,nonce_str字段必须保持一致。4.code=jonyqin_1434008071,timestamp=1404896688,card_id=pjZ8Yt1XGILfi-FUsewpnnolGgZk, api_ticket=ojZ8YtyVyr30HheH3CM73y7h4jJE ,nonce_str=jonyqin 则signature=sha1(1404896688jonyqinjonyqin_1434008071ojZ8YtyVyr30HheH3CM73y7h4jJE pjZ8Yt1XGILfi-FUsewpnnolGgZk)=6b81fbf6af16e856334153b39737556063c82689。强烈建议开发者使用卡券资料包中的签名工具SDK进行签名或使用debug工具进行校验:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=cardsign卡券签名cardSign说明1.将 api_ticket(特别说明:api_ticket 相较 appsecret 安全性更高,同时兼容老版本文档中使用的 appsecret 作为签名凭证。)、app_id、location_id、times_tamp、nonce_str、card_id、card_type的value值进行字符串的字典序排序。2.将所有参数字符串拼接成一个字符串进行sha1加密,得到cardSign。附录5-常见错误及解决方法调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息。以下为常见错误及解决方法:1.invalid url domain当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,仅支持80(http)和443(https)两个端口,因此不需要填写端口号(一个appid可以绑定三个有效域名)。2.invalid signature签名错误。建议按如下顺序检查:   1

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


微信JS-SDK说明文档