
iOS_IAP_UML.png
序言:蘋果終于給出了退單的通知(是復(fù)用了訂閱回調(diào)通知),終于!本文重新補(bǔ)全一下iOS iap處理邏輯。
蘋果退單wiki:https://developer.apple.com/documentation/storekit/in-app_purchase/handling_refund_notifications
一、上圖主要處理了以下業(yè)務(wù):
- 普通購買
- 自動續(xù)訂訂閱
- 補(bǔ)單處理
- 預(yù)防黑產(chǎn)
- 退單處理
二、除了上述業(yè)務(wù)邏輯,需要實現(xiàn):
- 業(yè)務(wù)自身的訂單邏輯
- log
- 預(yù)防黑產(chǎn)規(guī)則庫
1. 業(yè)務(wù)自身的訂單邏輯
即業(yè)務(wù)自身的訂單,當(dāng)用戶點擊某個商品時候產(chǎn)生,而不是在喚起蘋果應(yīng)用內(nèi)支付時候才創(chuàng)建,好處是可以管理自己的訂單系統(tǒng),與web、android統(tǒng)一。其次,便于采集支付過程中的log,便于處理補(bǔ)單、退單、黑產(chǎn)等。
2.log
重要的事情說一萬遍,log很重要,尤其是iOS iap 各個步驟的log,一定要詳細(xì),便于查看各種奇葩的問題,查漏補(bǔ)缺。
3.預(yù)防黑產(chǎn)規(guī)則,時序圖中【黑產(chǎn)代充校驗】處都需要進(jìn)行以下校驗,若不符合以下要求,攔截支付行為。若攔截失敗,那肯定還是被突破限制,可以標(biāo)記黑產(chǎn),不發(fā)道具。
- 是否越獄,限制越獄設(shè)備購買
- 一臺設(shè)備只能登錄xx個賬號
- 一個賬號最多在xx臺設(shè)備上進(jìn)行購買
- 一個賬號每天最多進(jìn)行xx筆小額支付
- 一個賬號每月最多進(jìn)行xx筆小額支付
- 當(dāng)前購買只支持cny,usd等穩(wěn)定匯率的貨幣
- 創(chuàng)建訂單設(shè)備和發(fā)貨時的設(shè)備需要是同一個
- 更多規(guī)則