讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 14.1.3 卡券Ticket >

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 pjZ8Yt1XGIL
fi-FUsewpnnolGgZk)
=6b81fbf6af16e856334153b39737556063c82689