微信小程序可以使用公众号的卡券功能了,老板要加上这个功能,只好硬着头皮研究了。
阅读开发者文档可以了解到,在微信小程序开发里提供了两个主要的关于卡券包的api:
wx.addCard(OBJECT) ----- 批量添加卡券
wx.openCard(OBJECT) ----- 查看微信卡包中的卡券
那么我觉得这里就应该是卡券功能的切入点,从这里入手小程序卡券功能。
wx.addCard(OBJECT)函数的参数 请求对象说明 cardExt 说明1cardExt 说明2
关于卡券的扩展参数 必填的只有两个 一个是时间戳,一个是签名。
给人的感觉是很简单的,时间戳,很好获取,签名肯定是把很多数据组成字符串然后加密生成的密文。
点开卡券签名文档进入的是微信公众平台技术文档
这里一个坑就是他并没有跳到关于卡券签名的位置,想来可能微信这边是出于想让你看完这篇文档的考虑才这样坑我们的
这里是微信卡券(PS:这个目录做的挺有意思的,不知道是不完善还是故意设计的,反正我不会,没事了可以研究研究)
人家说了 想要签名,必须要有api_ticket,想要api_ticket,必须要有access_token
获取api_ticket 调用的接口截图上方的“2.由于获取api_ticket 的api 调用次数非常有限,频繁刷新api_ticket 会导致api调用受限,影响自身业务,开发者需在自己的服务存储与更新api_ticket。
”让我突然意识到,这些操作应该在后台服务器实现,应该是几乎所有的东西都应该在服务器操作,小程序只要拿到了签名就好了。
那么access_token是什么呢,线索断了。。。
其实并没有断,微信这边就是希望开发者可以从头开始看。
获取access_token在文档的开始开发栏下就有关于获取access_token的介绍。
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
这个access_token也是不要重复调用的,有效期也是2个小时,7200秒。
接口调用请求说明这里的AppID和Appsecret都是在公众号的设置里可以查看或重置的,AppID不可修改可以查看,是公众号的唯一标识,Appsecret是开发者密码,可以重置,但是重置会导致原来的用到Appsecret的功能失效,所以谨慎重置。
通过接口可以获取到access_token,通过access_token可以获取到api_ticket,通过api_ticket就可以签名了。有了签名,wx.addCard(OBJECT)接口就可以用了。
现在,就是签名这一步骤了
签名说明分析:这些参与签名的参数似乎都不用从小程序获取,所以,这些操作最好还是都在服务器操作,通过一个接口返给签名和时间戳,小程序端直接用就好。
应该就这样了,捋顺了逻辑,就改写代码了,服务器端,我也是刚开始研究,写的很慢,很low,就不上代码了,希望我的这一番研究对遇到同样问题的你有所帮助~~
关于wx.openCard(OBJECT)这个接口,大家自行研究吧~
网友评论