卡券簽名錯誤排查方法

2022-01-26 01:14:24 字數 1741 閱讀 2640

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是否正確/有效

-檢查獲取當前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)

簽名演算法錯誤

使用/cgi-bin/sandbox?t=cardsign工具校驗簽名演算法

ticket錯誤

確認使用的ticket是卡券api_ticket而不是jsapi_ticket

且在有效期內

cardext內引數與參與簽名引數不對齊

cardext內若填入了需要參與簽名的引數,須在籤

名演算法中也將字段計入簽名

cardext引數格式錯誤

cardext本身是乙個字串不是object物件,若格式

錯誤ios系統會提示簽名錯誤

拉取卡券列表為空

(choosecard)

簽名錯誤

拉起卡券列表傳入的signature欄位有誤,或者參與簽名的

引數與介面傳入的引數不對齊

篩選條件錯誤

篩選條件中傳入了shopid或者card_type,但是實際沒有對應

門店或者卡型別的卡券

請仔細閱讀

官方文件:

微信卡券開發 查詢卡券

調取卡券使用的access token是普通access token 獲取普通access token方法 下面 需要的類 urlconutil 秒轉換為指定格式的日期 param second param patten return private string secondtodate long...

促銷 卡券系統整理

最近密集調查和學習了卡券系統的業務規則和技術分析,這篇文章的記下了個人對卡券系統各方面的思考 總結和資料整理。一 為什麼會存在卡券系統,卡券系統的價值?卡券系統是運營 的必備工具,無論是在電商類企業還是在其它各行各業都會看到卡券系統的影子。我是從以下幾個角度去理解卡券的 從不同的角度去理解卡券就會得...

css繪製卡券優惠券 CSS 實現優惠券樣式

本文將介紹如何使用 css 中的 radial gradient 實現如下圖所示的優惠券樣式效果 繪製基本樣式 首先,我們繪製出優惠券的基本樣式,這很簡單,就不多說了。滿 100 減 30 scss voucher width 600px height 200px display flex left...