簡體   English   中英

如何處理來自 Google Play 的待處理購買

[英]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 年推出的。這是可能的流程......

  • 在您的應用中,用戶點擊“立即購買”
  • 他們看到了 Google 結帳覆蓋
  • 他們選擇“在阿克拉的 Freddina's Grocery 付款”(一家已簽約處理 Google 待處理購買的本地商店)
  • 谷歌結帳顯示一個代碼以顯示給 Freddina
  • 用戶以現金支付 Freddina,Freddina 使用該代碼處理付款
  • 10 分鍾左右后,購買更新將登陸您的應用程序

至於處理不可預知的定時更新事件,我們有一個帶有handlePurchaseUpdated方法的應用程序從應用程序啟動的那一刻開始監聽,並根據它附帶的Purchase object 進行更改。 這是一個示例流程:

  • 我們會在應用程序啟動后立即收聽購買更新
  • 用戶購買緩慢
  • 我們收到購買更新
  • 已通過Purchase object 已購買 state PENDING
  • 我們告訴用戶我們會在購買完成時通知他們
  • 在未來的某個時間點(例如,應用程序重啟后的第二天)購買更新會出現
  • 如果購買 state 現在是 PURCHASED 我們完成購買並告訴用戶

注意:我們的是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM