微信卡券領用中的問題


客戶對系統中的微信卡券很不滿意,說是一次不能領取多張,而且不能控制領取的次數。

看到微信官方的demo

http://203.195.235.76/jssdk/

最后是長這樣

領取到卡包。你會發現,成功的領到了 2 張券。

然后你按它的文檔,勇敢的寫了一個demo,最后你會發現,成功的領到了1張券。各種原因的查找,網上也沒有這些說明。

在試驗了N次之后,重復發布了N次之后。終於發現原因了。

wx.addCard({
cardList: [
{
cardId: 'pDF3iY9tv9zCGCj4jTXFOo1DxHdo',
cardExt: '{"code": "", "openid": "", "timestamp": "1418301401", "signature":"f6628bf94d8e56d56bfa6598e798d5bad54892e5","outer_str":"123"}'
},
{
cardId: 'pDF3iY9tv9zCGCj4jTXFOo1DxHdo',
cardExt: '{"code": "", "openid": "", "timestamp": "1418301401", "signature":"f6628bf94d8e56d56bfa6598e798d5bad54892e5","outer_str":"123"}'
}
],
success: function (res) {
alert('已添加卡券:' + JSON.stringify(res.cardList));
},
cancel: function (res) {
alert(JSON.stringify(res))
}
});

注意看,它沒有 nonce_str,它沒有 nonce_str,它沒有 nonce_str ,重點說三遍。

是不是很吃驚。

再看這個文檔

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

nonce_str 隨機字符串,由開發者設置傳入, 加強安全性(若不填寫可能被重放請求) 。隨機字符串,不長於32位。推薦使用大小寫字母和數字,不同添加請求的nonce須動態生成,若重復將會導致領取失敗。

 

理解了下設計者的想法。nonce_str有值,證明,是不同的請求,"同一個值將會導致領取失敗"。如果不填說明沒值,將會成功。

最后一個問題,outer_str居然不起作用。看文檔

outer_str 領取渠道參數,用於標識本次領取的渠道值。

經過我多次測試,我表示這個的確是不會起作用。最后,查看到以下文檔

https://www.w3cschool.cn/weixinkaifawendang/9pfz1qey.html

outer_id int 12 領取場景值,用於領取渠道的數據統計,默認值為0,字段類型為整型,長度限制為60位數字。用戶領取卡券后觸發的事件推送中會帶上此自定義場景值。

 

 

死馬當活馬醫,使用了outer_id,終於從事件User_Get_Card中將此值推送給我了。

此值放到了outerstr屬性中,大寫的服字。

最后看了下代碼。是我錯誤了取的outer_id值。

 


免責聲明!

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



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