2013-05-29 58 views
6

我正在使用Google Play應用內結算V3銷售一段有效期限的應用。在用戶購買後,如果成功,我會將購買數據發送到我們的服務器並立即使用。服務器然後授予對該特定用戶的額外服務的訪問權,直到期限結束。注意:我沒有使用應用內訂閱。在Google Play應用內結算中消費已取消的購買

我正在測試用戶在沙箱模式下購買測試用戶時未付款。他們大多數都是成功的,這個流程正常工作。但是,有時候,我的購買會立即被Google取消。在我的谷歌Checkout帳戶的訂單歷史記錄,我看行「出於安全考慮,谷歌取消了此訂單。本次交易 認爲欺詐」

即使發生這種情況,我看到我在購買數據中收到"purchaseState": 0,表示成功。此外,嘗試使用此產品也會導致成功(呼叫IInAppBillingService.consumePurchase(version, package, token)返回0)。稍後查詢我的庫存表明我沒有購買物品(因此不退款/取消),我可以再次自由購買相同的物品。這與正常的,未被取消的狀態相同。

  1. Google是否經常以相同的方式取消測試沙箱以外的訂單?
  2. 成功購買和消費的物品是否因開發者控制之外的原因而被取消(即退款)?
  3. 是否可以知道已經消費的產品的取消?

回答

1

谷歌是否經常取消訂單以同樣的方式,測試 沙箱之外?

谷歌有一個欺詐檢測系統,它有助於識別不可靠的支付。例如,如果有人使用被盜的信用卡或者多個帳戶使用相同的信用卡等。在這種情況下,支付交易甚至在開始之前(在與支付提供商聯繫之前)停止與您的問題中的消息。 5月份,這種欺詐檢測系統無法可靠地檢測測試賬戶,這就是爲什麼你可以看到這個消息。現在它稍好一些。在現實生活中,這種情況非常罕見。

它能否成功地購買和消費仍然是 取消(即錢退還)爲 開發者無法控制的原因,項目?

這是一個棘手的問題,因爲取消的不是物品,而是與此物品相關的付款交易。從理論上講,交易也可以在以後取消,但必須有一個很好的理由。在這裏,信用卡被盜的例子也是有效的。在現實生活中,我從未見過它。

是否有可能知道 已被消費的產品取消?

儘管我自己從來沒有嘗試過,但我不相信所消費的產品可以被取消。正如我所說,相關的付款交易可能會被取消,但不是消費的產品。這是因爲消費的產品可以再次出售,而且還沒有與付款相關聯。如果產品沒有被消費,如果將被取消,如果分配給它的支付交易被取消。

希望這會有所幫助。

+0

如果您跟蹤購買的服務器上的物品,購買的orderId也是支付交易的ID。即使該項目已被使用,也需要實施某種驗證。 – tomrozb

0

我正在設置相同類型的應用程序。
用戶可以購買一件物品,它將在我的服務器上進行跟蹤並最終消費,因此用戶可以再次購買相同的物品。

我跟蹤所有關於購買的信息,並試圖取消已經消費的訂單。我可以向您確認訂單的狀態會發生變化(大約10分鐘後,您將收到有關取消訂單的電子郵件)。

呼喚你的productId和purchaseToken的PurchaseAPI,此網址將返回購買信息:

https://www.googleapis.com/androidpublisher/v2/applications/<app.package.name>/purchases/products/<productId>/tokens/<purchaseToken>?access_token=<myToken> 

第一次,你會得到一個類似的迴應:

{ 
    "kind": "androidpublisher#productPurchase", 
    "purchaseTimeMillis": "1458047931024", 
    "purchaseState": 0, 
    "consumptionState": 1, 
    "developerPayload": "mypurchasetoken" 
} 

和註銷purchaseState後將要改變:

{ 
    "kind": "androidpublisher#productPurchase", 
    "purchaseTimeMillis": "1458047931024", 
    "purchaseState": 1, 
    "consumptionState": 1, 
    "developerPayload": "mypurchasetoken" 
} 

這是一樣的GET,我第一次做產品驗證。
建立一個定期檢查購買物品的狀態可能是明智的,並且在取消的情況下更新服務器上的購買。

相關問題