商城系統(tǒng) 注冊

小程序卡卷簽名錯誤的分析

2018-01-31|HiShop
導讀:在開發(fā)小程序卡券時,會經(jīng)常出現(xiàn)錯誤,這大多是因為小程序卡券簽名出現(xiàn)錯誤導致的。...

在開發(fā)小程序卡券時,會經(jīng)常出現(xiàn)錯誤,這大多是因為小程序卡券簽名出現(xiàn)錯誤導致的。
 

卡卷簽名主要用到以下幾個參數(shù):

api_ticket (調(diào)用卡券相關接口的臨時票據(jù))timestamp (時間戳,單位為:秒)card_id (卡卷創(chuàng)建后獲得的卡卷ID)code (卡券code碼,相當于用戶領取的那張卡卷的卡卷號)openid (指定領取用戶的opeind)nonce_str (32位隨機字符串)

因為我是在微信公眾平臺創(chuàng)建卡卷的,所以code和openid并不需要用到,所以實際參與簽名的是api_ticket、timestamp、card_id、nonce_str這4個,card_id在公眾平臺創(chuàng)建卡卷的時候就能看到,timestamp和nonce_str這兩個時間戳和隨機數(shù)生成就不用說了很簡單,這里重點說一下api_ticket 。

api_ticket的獲取比較麻煩,我們首先需要獲取到access_token,然后再用access_token換取api_ticket

另外就是獲取access_token的服務器地址還必須先加入公眾號的白名單,不然會提示獲取不了的,在微信公眾平臺里面點【安全中心】就能看到IP白名單的選項,在里面添加你服務器的ip地址,哦對了,ip白名單在啟用前要先啟用開發(fā)者密碼,這個在【基本配置】那里,將開發(fā)者密碼啟用后,Ip白名單才能添加地址。

好了,正常下來應該能獲取到access_token了,然后我們需要用它去換取api_ticket

 

這里值得注意的是,兩個接口在短時間內(nèi)頻繁調(diào)用可能會受限,所以api_ticket獲取到后要進行緩存,避免重復調(diào)用接口,api_ticket的有效期為2個小時。

好了,到這里簽名所用到的參數(shù)都齊了,之后就是生成簽名

貼一下自己的代碼,PHP端:

 

最后返回的3個參數(shù)將返回給小程序,作為wx.addCard()--cardList--cardExt的值,當然,在賦值前我們還必須把這三個參數(shù)json序列化字符串,cardExt接收的是一個字符串而不是對象,那么到這里,卡卷的流程基本就是這樣了。

總結一下幾個要注意的地方:

獲取access_token時,使用的appid是公眾號的而非小程序的服務器ip地址需要在微信公眾平臺加入ip白名單api_ticket在獲取到后要進行緩存,因為頻繁調(diào)用接口有可能會受限。小程序wx.addCard()中,cardExt參數(shù)是一個字符串而不是對象,所以要將簽名連同其他參數(shù)轉為字符串后再賦值。cardExt字符串里的字段參數(shù)必須和參與簽名的參數(shù)一致(card_id除外,這個是寫在wx.addCard()--cardList--cardId)

基本上就是這些。
 

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。

更多小程序資訊,盡在:m.descansotropical.com/xiaocx/


 

電話咨詢 預約演示 0元開店