用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 实战教程 查看内容

微信小程序卡包wx.addcard文档缺失-ext参数说明

Rolan 2021-1-13 09:41

微信小程序卡包打通文档缺失,特别是wx.addcard文档,没有对ext参数有详细的说明,可能会导致跳转卡包领取界面时,提示参数错误等问题。

前言

微信小程序卡包打通文档缺失,特别是wx.addcard文档,没有对ext参数有详细的说明,可能会导致跳转卡包领取界面时,提示参数错误等问题。因为小程序卡包文档缺失的问题,我在开发过程中遇到各种问题,但是最终成功实现了小程序打通微信卡包功能,以下分享下我的经验。

正文

添加微信卡包,需要小程序wx.addCard组件,addCard微信文档并介绍清楚小程序卡包的ext参数,这个就是最坑的地方,完全不知道调起微信卡包的错误原因,以下具体介绍微信会员卡ext参数。

ext参数说明
nonce_str随机参数,目的用于signature签名加密使用,项目中是使用10位随机字符串
code自定义卡号,由于建卡api时use_custom_code为true,在添加卡包时必须要有卡号
timestamp时间戳,单位为秒。和nonce_str一样,用于签名加密使用。
openid

用户的微信公众号openid,这个是最最最坑的地方,必须是微信公众号的openid,不然addcard会提示参数错误。

上文提到在自建服务器维护了小程序openid和微信公众号的openid关系,通过这种方式获取到微信公众号openid

apiTicket

签名凭证,这个就是腾讯文档最骚的地方,压根没有提这个参数,加密时需要使用apiTicket。

获取ticket_api,可以从通过这个接口查询到api_ticket,使用公众号的accessToken请求。

card_id卡券id,api创建卡券时,会返回新建卡券的card_id
signature

加密签名,这个是重头戏,我是用试了N了遍,才摸清楚这个签名组成,是使用nonce_str、code、timestamp、openid、apiTicket、card_id的6个参数,多一个参数少一个参数都不行,顺序SHA加密得到的。
 

由于本文的项目使用了自定义卡号和指定用户领取,所以参数里必须指定code、openid,在我的项目里是以上7个参数,缺一不可。同时多增加一个参数,领取卡包也是提示参数错误,既不能多一个参数或者少一个参数。

由于每个人的情况,那大家会有疑问,ext都需要添加哪些参数,可以使用微信开发者调试工具。

如何判断signature加密对不对,可以使用工具调试平台测试,有这么好用的工具也不在微信文档提到,实属坑爹。

微信卡券签名校验工具

作者:四袋粉
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏