1. 程式人生 > >內購掉單問題處理

內購掉單問題處理

開發十年,就只剩下這套架構體系了! >>>   

內購的大致流程:

1.客戶端向Appstore請求購買產品(假設產品資訊已經取得),Appstore驗證產品成功後,從使用者的Apple賬戶餘額中扣費。

2.Appstore向客戶端返回一段receipt-data,裡面記錄了本次交易的證書和簽名信息。

3.客戶端向我們可以信任的遊戲伺服器提供receipt-data

4.遊戲伺服器對receipt-data進行一次base64編碼

5.把編碼後的receipt-data發往itunes.appstore進行驗證

6.itunes.appstore返回驗證結果給遊戲伺服器

7.遊戲伺服器對商品購買狀態以及商品型別,向客戶端發放相應的道具或者餘額。

掉單問題一般出在環節3,可能因為使用者手機訊號不好,或者誤操作返回了上個頁面。導致receipt-data沒有傳送給我們自己的伺服器,結果就是使用者錢扣了,但是道具或者餘額沒到賬。而且後臺沒收到receipt-data,根本就沒有記錄。

所以每次再發送receipt-data前,需要把它儲存在本地,確認傳送給後臺,走完了充值流程,再刪除。每次到內購頁面,都檢查下是否有未傳送給後