小程序显示优惠卷或者卡包的核心代码就是addCard这个函数,最近公司需要实现类似功能,一直是签名错误,折腾了一天才搞定,把过程和需要的坑都记录下。
详细的步骤可以参考https://blog.csdn.net/zhourenfei17/article/details/77714600,我自己遇到的坑如下
1、addCard的cardExt参数到底怎么填,给一个我最终的格式:
cardExt:'{"timestamp":' + res.data.timestamp + ',"signature":"' + res.data.signature + '", "nonce_str":"' + res.data.nonce_str + '"}'
timestamp:时间戳,必须和生成signature的时间戳保持一致,注意一点是秒级别的时间戳,另外就是:后的值不能有双引号,这个问题我困扰了很久;
signature:签名,具体的生成步骤可以参考详细步骤的连接里面;
nonce_str:我理解就是用来加密的字符串,随便给,怎么用也参考详细步骤里面;
2、关于获取签名需要注意的问题,参考详细步骤给出一些说明:
openID,这个一般不需要给,除非你的优惠卷创建时指定了需要,如果要的话在生成是传入的appid和secret需要是小程序的;
生成token时需要的是公众号的appid和secret;
timestamp,一点要是秒级别的
总结一下,在公众号后台手动创建的优惠卷在显示时,比较关键的参数就是签名,这个详细步骤中已经写得很清楚了,最后出现签名错误基本都是格式的问题,这个大家做的时候一定要细心核对。