1

因此,如果收據驗證在服務器上失敗,我應該怎麼辦?有沒有辦法等待服務器驗證,然後接受將向用戶收費的交易,並告訴我應該給他消耗品。Google Play服務器上的inapp購買驗證

我使用使用IBAHelper的Marmalade擴展「s3eAndroidGooglePlayBilling」 - 我在那裏發現了驗證,但是我並不真正瞭解Java並且無法在Android Billing v3文檔中找到如何在驗證失敗時取消事務處理(例如ios inapp購買)。 但我也需要在服務器端進行驗證。

或者我只是在服務器上進行驗證,然後根據該信息爲用戶提供消耗品?但這似乎是一個壞主意,因爲如果服務器沒有迴應用戶已經花了錢,但客戶端並不知道購買是否有效。

注:這不僅僅是一個果醬問題,它更像是我應該在客戶端上做服務器驗證,如果服務器認爲收據是無效的(因爲我覺得我可以修改擴展名不收取用戶並像正常使用它)

注2:服務器端已經實現和客戶端收到消息,如果購買有效或沒有,但我不知道如何處理它在客戶端給用戶硬幣並在此之後才收費(如果購買有效)。

+0

消耗品意味着您可以購買同一件商品超過一次,除了一次性購買(非消耗品)以外,哪些記錄不會被Google Play處理。您必須在您的應用程序端或您的服務器端進行管理來處理此問題。確保您要購買單一產品或購買一次以上。 – Maulik

+0

@Maulik是的我明白了,如果購買成功,我給用戶硬幣,所以我需要消費,以便使用可以再次購買。我需要知道的是 - 如果購買是真正有效的,不給無效的購買硬幣(例如重複),但也不收取費用。 – Stals

+0

你可以簡單地通過使用onActivityResult()方法得到這個結果。如果成功則允許用戶收集硬幣。檢查此鏈接: 1)http://developer.android.com/google/play/billing/billing_integrate.html#billing-requests 2)http://stackoverflow.com/questions/19152065/in-app-billing -v3-error-in-activity-result/19158121#19158121 – Maulik

回答

0

在s3eAndroidMarketBilling擴展中有s3eAndroidMarketBillingConfirmNotifications功能。購買回撥時必須致電。這個調用將會使交易關閉。如果你不調用這個函數(你的服務器沒有響應),你將在s3eAndroidMarketBilling特性回調函數中得到所有未關閉的事務。如果您使用Google play controll的商品,則可以使用s3eAndroidMarketBillingRestoreTransactions恢復所有用戶交易。

+0

謝謝你的回答。但是如果服務器傷心收據無效,我該怎麼辦?我不能只是不打電話給s3eAndroidMarketBillingConfirmNotifications,因爲市場稍後會通知應用此購買是無效的。 – Stals