苹果支付:如何解决沙盒环境下获取可恢复购买项为空
在傳統(tǒng)手游開發(fā)中免不了和蘋果支付打交道,而且蘋果也會有各種奇奇怪怪的問題和BUG 。
曾經(jīng)有一次某一個游戲出現(xiàn)了調(diào)單問題,現(xiàn)象如下(我有點懶,不想畫泳道圖或者時序圖):
客戶端拉起支付付款成功,OC底層收到支付成功回調(diào)->發(fā)送支付成功的收據(jù)到服務(wù)器驗證->服務(wù)器去蘋果服務(wù)器驗證收據(jù)超時了->返回給客戶端驗證失敗了->客戶端重啟走恢復(fù)購買流程->從蘋果拿到的可恢復(fù)購買項是空的->無法恢復(fù)購買。
某一個合作過的客戶端大佬很認真的說,你們服務(wù)器有問題,蘋果那么NB的服務(wù)器,怎么會驗證超時呢?人家某某某游戲都沒有這種情況,我笑而答道:“只要涉及到網(wǎng)絡(luò)連接和傳輸,你能百分之百確定是可靠的嗎?那你知道http在傳輸之前和傳輸過程中發(fā)生了什么事情嗎?”,客戶端大佬一時間支支吾吾,還是有點懷疑,后來我讓他知道貿(mào)然懷疑別人而且出口就不負責(zé)任的把鍋甩給別人不是那么好甩的。
首先,很明顯客戶端的處理流程上是有問題的,那么為什么第二次拿到的可恢復(fù)購買項是空的,最直接的還是去蘋果官方文檔和論壇里找方法和結(jié)論,
他們的收據(jù)也有可能會出現(xiàn)無效的或者丟失,
你可以查看蘋果官網(wǎng)開發(fā)者文檔說明:
總結(jié)
以上是生活随笔為你收集整理的苹果支付:如何解决沙盒环境下获取可恢复购买项为空的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode252. 会议室
- 下一篇: 聊一下CPU占用高的解决方案