卡券簽名錯誤排查方法


若開發者在調用addcard接口遇到簽名錯誤時,請按照以下步驟排查錯誤: 

Step1. 檢驗簽名算法是否正確,開發者可以使用Chrome打開卡券簽名調試工具,開發者也可以參考JS-SDK Demo中卡券的簽名寫法,

參見:示例代碼和JS-SDK Demo

 

Step2.檢查CardExt內的參數是否正確

   -檢查是否存在自定義code碼的card_id沒有在cardext內傳入code參數,或者非自定義code模式的卡券傳入了code參數,這兩種情況都可能導致參數錯誤或者簽名錯誤;

  -檢查是否存在bind_openid為true的card_id沒有在cardext內傳入openid參數,或者bind_openid為false的card_id的卡券傳入了openid參數,這兩種情況都可能導致參數錯誤或者簽名錯誤;

  -檢查是否在cardext內傳入了A、B、C、D四個參數,但是簽名時卻使用了A、B、C三個參數或者使用了A、B、C、D、E五個參數,這種情況一定會出現簽名錯誤;

 

Step3.檢查ticket是否正確/有效  

   -檢查獲取當前ticekt的appid是否為創建card_id的appid;

   -檢查獲取當前ticket的接口是否正確,確認獲取的ticket的type類型是type=wx_card;

   -檢查ticket是否過期/無效;

 

Addcard接口常見錯誤以及原因: 

領取頁面提示 錯誤原因 修改方法

已領完(addcard)

當前卡券無庫存 調用增加庫存接口增加庫存
addcard接口內cardext參數
內nonce_Str和timestamp值重復
保證不同的請求中cardext參數內
nonce_Str和timestamp值重復
自定義code不能實時下發 js拉起領取頁面時code無法實時下發

參數錯誤(addcard)

cardext參數與card_id屬性不對其 開發者須先查詢card_id詳情,重點關注是否使用
自定義code、是否綁定openid、是否是導入code模式
自定義code的卡券在cardext須填入code字段,參與簽名;
綁定openid的卡券須傳入openid字段
code超長或格式錯誤 檢查code參數是否超過20位或含特殊字符

簽名錯誤(addcard)

簽名算法錯誤 使用http://mp.weixin.qq.com/debug
/cgi-bin/sandbox?t=cardsign工具校驗簽名算法
ticket錯誤 確認使用的ticket是卡券api_ticket而不是jsapi_ticket
且在有效期內
cardext內參數與參與簽名參數不對齊 cardext內若填入了需要參與簽名的參數,須在簽
名算法中也將字段計入簽名
cardext參數格式錯誤 cardext本身是一個字符串不是object對象,若格式
錯誤iOS系統會提示簽名錯誤

拉取卡券列表為空
(choosecard)

簽名錯誤 拉起卡券列表傳入的signature字段有誤,或者參與簽名的
參數與接口傳入的參數不對齊
篩選條件錯誤 篩選條件中傳入了shopid或者card_type,但是實際沒有對應
門店或者卡類型的卡券

請仔細閱讀

官方文檔:https://mp.weixin.qq.com/s/WhYpWmfuhUBw2wseTXdt2A


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM