首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》14.1.3 卡券Ticket

关灯直达底部

卡券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