卡券api_ticket是用于调用卡券相关接口的临时票据,有效期为7200s,通过access_token来获取。由于获取卡券api_ticket的API调用次数有限,频繁刷新卡券api_ticket会影响自身业务,因此开发者必须在自己的服务全局缓存卡券api_ticket。
获取卡券api_ticket的接口如下。
https:// api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
成功时,返回的数据示例如下。
{ "errcode":0, "errmsg":"ok", "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzW KVZvdVtaUgWvsdshFKA", "expires_in":7200}
添加卡券时,需要填写cardExt。cardExt本身是一个JSON字符串,是商户为该卡券分配的唯一性信息,包含的字段如表14-1所示。
表14-1 新增临时素材接口的参数说明
卡券的签名步骤说明如下。
步骤1:将api_ticket、timestamp、card_id、code、openid、nonce_str的value值进行字符串的字典序排序(特别说明:api_ticket相较AppSecret安全性更高,同时兼容老版本文档中使用的AppSecret作为签名凭证)。
步骤2:将所有参数字符串拼接成一个字符串进行sha1加密,得到signature。
假若
code=jonyqin_1434008071,timestamp=1404896688,card_id=pjZ8Yt1XGILfi-FUsewpnnolGgZk,api_ticket=ojZ8YtyVyr30HheH3CM73y7h4jJE,nonce_str=jonyqin
则签名计算如下。
signature=sha1(1404896688jonyqinjonyqin_1434008071ojZ8YtyVyr30HheH3CM73y7h4jJE pjZ8Yt1XGILfi-FUsewpnnolGgZk)=6b81fbf6af16e856334153b39737556063c82689