我已經在我的應用程序中使用計費服務實現了應用程序購買(託管),當用戶想要購買物品時,他將做出購買請求,即使用戶已經購買了該物品也需要互聯網。所以爲了方便用戶,我正在這樣做,如果用戶已經購買了該項目,那麼值將被保存在共享的前綴中。並且當用戶點擊該特定項目時,首先它將檢查共享前綴。價值,無論用戶是否已經購買物品,如果不是,則去購買請求,否則顯示他/她的物品。 我的問題是,這是安全的方式?或者我還要做別的事情?Android應用程序內購買檢查買家離線
6
A
回答
8
這並不安全。我會阻止你以這種方式實施這樣的檢查。你應該採用標準方法並使用getPurchases()方法。您可以隨時(甚至離線)調用此方法,並且如果用戶已購買,它們將從該方法返回。以下是一個示例代碼:
IInAppBillingService service; // initialize it first
Bundle response = service.getPurchases(3, "you app package", "inapp", null);
int responseCode = response.getInt(KEY_RESPONSE_CODE);
if (responseCode == RESPONSE_OK) {
ArrayList<String> purchases = response.getStringArrayList(KEY_INAPP_PURCHASE_ITEM_LIST);
...
}
您需要驗證購買是否簽署了正確的證書並且購買狀態未被取消。但是這比在共享屬性中存儲數據更安全。這種方法的另一個優點是,用戶重新安裝應用程序後,所有購買也將在那裏自動提供。
1
該技術的完整示例在TrivialDrive示例應用程序中,它適用於我,但是我在考慮離線情況。 Google Play應用緩存了購買內容,並對getPurchases(3,「pkg」,「inapp」,null)進行了脫機響應,但這種方式無限期地運行或者存在類似於此緩存的超時時間...
+0
我試過使用ionic2 inapp插件。它脫機工作,但是當我重新啓動設備時,它會發生連接錯誤!這意味着緩存有一些限制! –
相關問題
- 1. 檢查應用程序內購買
- 2. 應用程序內購買購買
- 3. 在應用程序內購買檢索購買的信息
- 4. 檢查是否已購買已購買的應用程序iphone
- 5. 應用程序內購買
- 6. Android應用程序內購買費用
- 7. Android應用程序內購買
- 8. iphone - 應用程序內購買查詢
- 9. 用iPad購買應用內購買
- 10. 應用程序內購買 - 知道用戶點擊「購買」時
- 11. Android應用內購買
- 12. Android應用內購買 - RESULT_ITEM_UNAVAILABLE
- 13. 恢復購買 - 在應用內購買
- 14. 應用內購買 - 恢復購買
- 15. iPhone - 應用程序內購買:記錄購買
- 16. Catch「應用程序內購買已被購買」事件
- 17. 應用程序內購買存儲購買狀態
- 18. iOS應用程序內購買跟蹤購買的物品
- 19. 購買iOS應用程序內購買時的折扣
- 20. 應用內購買iPhone應用程序?
- 21. 沒有從應用程序商店購買應用程序內購買彈出
- 22. 應用內購買購買請求不顯示購買窗口
- 23. 使用if語句檢查多個應用程序內購買
- 24. 蘋果應用程序內購買 - 買定製內容
- 25. Android應用內購買流程中斷
- 26. iOS應用購買。如何檢查購買是否已經購買?
- 27. 應用內購買
- 28. 應用內購買
- 29. 應用內購買?
- 30. Android應用程序突然停止 - 應用程序內購買
「您可以致電這種方法在任何時候(甚至是離線)「---它怎麼會起作用? – Zotyi