[英]How to handle pending purchases from Google Play
我們的大部分購買在 3 天 30 分鍾后一直被取消,我認為這是掛起購買 state 的結果。但是,關於如何准確處理掛起購買的文檔很少。 而且,不知為什么,即使我自己是測試人員,我也無法測試它,因為購買方式上沒有“慢卡”選項。 此外,我們沒有后端服務器來支持我們。
這是我從官方文檔中找到的解釋:
void handlePurchase(Purchase purchase) {
if (purchase.getPurchaseState() == PurchaseState.PURCHASED) {
// Acknowledge purchase and grant the item to the user
} else if (purchase.getPurchaseState() == PurchaseState.PENDING) {
// Here you can confirm to the user that they've started the pending
// purchase, and to complete it, they should follow instructions that
// are given to them. You can also choose to remind the user in the
// future to complete the purchase if you detect that it is still
// pending.
}
}
看看PENDING state上的解釋。“To complete purchase, they should follow instructions that are given to them”是什么意思? 這些指令到底是什么? 我們需要將用戶重定向到 Google Play 還是什么? 它沒有具體說明要做什么,並且因為購買被無故取消或出於這個原因而困擾我。 如何完成待定購買? 什么都沒有,或者我找不到它,所以我就到了這里。
我希望你能幫我解決這個問題。 謝謝。
我同意文檔很差,特別是因為有一次你想確切地知道發生了什么是當你處理別人的錢時!
看起來“慢卡”交易實際上是“待購買”,這是谷歌在 2019 年推出的。這是可能的流程......
至於處理不可預知的定時更新事件,我們有一個帶有handlePurchaseUpdated
方法的應用程序從應用程序啟動的那一刻開始監聽,並根據它附帶的Purchase
object 進行更改。 這是一個示例流程:
Purchase
object 已購買 state PENDING注意:我們的是ReactNative app,不是原生的java,但是流程應該是一樣的。
實施起來很復雜,因為您必須選擇時間進行購買更改並在有意義的時間顯示購買結果,不一定是在啟動后 5 秒(或任何其他奇怪的時間)到達購買更新時。 如果在您的授權或確認步驟中出現錯誤,它會變得更加復雜,呃。
此外,您可能沒有看到“慢卡”測試儀選項,因為您不允許它?
2022 年更新:我個人覺得文檔仍然很差,而且復雜性如此之大,我建議使用IAPHUB 之類的服務來管理 iaps 和訂閱。
聽起來您不承認購買。 請參閱 Google Play 結算文檔中的以下內容:
如果您使用 Google Play 結算庫 2.0 版或更高版本,則必須在三天內確認所有購買。 未能正確確認購買會導致這些購買被退款。
根據 Google 的文檔 ( https://developer.android.com/google/play/billing/integrate#pending ),您需要調用enablePendingPurchases()
,然后當 state 從 PENDING 變為 PURCHASED 時,您的PurchasesUpdatedListener
將收到通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.