券系統設計及券和訂單號使用重複下單問題彙總
1.根據訂單號+券號來唯一標識一次請求,但是請求端每次請求都會重新生成一個新的訂單號,導致每次都是一次新的請求。造成重複下單。 >> 需要調整服務端邏輯:只認券號,而不是券號和訂單號的組合。
2.服務端在免登陸的介面,不能直接返回整個頁面出現報錯資訊。這樣使用者不能進入到“我的個人中心檢視訂單列表”。
如果報錯資訊是彈框,客戶可以關閉彈框,這樣他仍然可以繼續下單,這樣下單的介面仍然需要攔截。
問題點在:第一道免登陸攔截,還是在第二道下單攔截。
方案:
1.增加回撥通知節點,下單,取消,結算。這樣客戶端在下單成功之後,就知道該訂單號是否下單成功。可以控制下次進來券號和訂單號是同一個。這樣判斷券號已下單,直接進入訂單詳情頁面。
2.服務端在免登陸介面攔截,一個券號只允許一個訂單號,存在訂單號則跳轉到“訂單詳情”,否則允許下單。
3.服務端在訂單提交介面攔截。 只認券號來關聯訂單號返回提交訂單的報錯資訊,阻止重複下單。
券系統設計
1.發券介面
發券流水號 唯一
發券數量
發券型別
發券的有效起止時間
券的其他屬性欄位
發券表:重要欄位:券ID 唯一,券請求id,券庫存數量,券關聯的訂單號(重要)。
2.券查詢介面
重要欄位:發券流水號 唯一
3.券撤銷介面
重要欄位:券ID 唯一(支援列表批次撤銷)
4.免登入介面
請求方引數:重要欄位:手機號,下單訂單號,券ID,券型別,組成JSON字串,AES加密,url編碼請求(可以考慮POST方式請求到後端,先url解碼,然後AES解密操作)。
返回:登入使用者的TOKEN,券型別,跳轉頁面型別等,跳過登入頁面,直接到下單頁面 OR 訂單詳情頁面。
5.提交訂單介面
重要欄位:外部訂單號,服務端訂單號,渠道source
6.訂單列表介面
重要欄位:渠道source
7.訂單詳情介面
重要欄位:外部訂單號,服務端訂單號
8.訂單取消介面
重要欄位:外部訂單號,服務端訂單號