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