Android In-App-Purchase,如何检查用户是否购买了一件商品

vir*_*sir 10 android paypal in-app-purchase paypal-sandbox in-app-billing

是否可以安全地在SharedPreference中设置一个值来标记用户已购买此项目?如果用户在SharedPreference中破解此值,该怎么办?或者我需要每次都连接IAP服务以检查用户是否可以使用它?

(1)使用Google Android IAP V3时的最佳做法是什么?

(2)如果用户的设备没有安装Google Play,我可能想使用paypal进行付款,但如果我要求用户使用简单的PayPal付款获取许可证,如何跟踪购买并解锁用户的功能键?我不想使用任何其他计费SDK,如果用Paypal网页购买许可证,如何实现呢?

Mau*_*lik 7

(1)使用Google Android IAP V3时的最佳做法是什么?

- >官方文件说,只有支付交易将由谷歌播放本身处理,但在应用程序中你必须设置你的业务逻辑如何处理产品购买后的UI集成和其他东西.您也可以使用应用内购买v3.

(2)如果用户的设备没有安装Google Play,我可能想使用paypal进行付款,但如果我要求用户使用简单的PayPal付款获取许可证,如何跟踪购买并解锁用户的功能键?我不想使用任何其他计费SDK,如果用Paypal网页购买许可证,如何实现呢?

- >您可以要求用户动态更新Google Play版本.谷歌开发人员说,超过90%的设备使用安装了谷歌游戏商店的2.2操作系统.我不能说任何关于paypal交易的事情,因为我之前没有使用它,但是使用v3购买应用程序是非常简单的实现和理解支付过程.

如何在您的应用程序中使用

管理应用程序产品数据的三种方法.

1)SharedPrefrence: 您可以使用share prefrence值并检查它是否已购买.如果用户卸载了应用程序,然后重新安装应用程序,那么您可以检查用户是否已购买,此时您已经购买了该项目.您必须管理用户才能访问您的应用程序数据.

2)本地数据库: 您还可以使用本地sqlite数据库来存储购买详细信息和购买状态.如果用户清除数据或卸载应用程序然后再次请求购买项目并检查用户是否购买了项目,则与上述相同.

要么

2)服务器数据库: 如果您使用Web服务器存储用户数据,则与上述方法相比是更好的方法.在这种类型中,如果用户卸载应用程序或清除应用程序数据,您甚至不需要第二次管理该案例.

3)混淆:(最有效的方式与共享的prefrence相比)

编辑:

是否可以安全地在SharedPreference中设置一个值来标记用户已购买此项目?如果用户在SharedPreference中破解此值,该怎么办?或者我需要每次都连接IAP服务以检查用户是否可以使用它?

当我在网上搜索时,我找到了Nikolay Elenkov's如下答案:

如果您只是在共享首选项中保存一个标志,那么任何拥有root设备的用户都可以随意翻转该标志并在不付费的情况下"订阅".所以你至少应该做一些混淆.这是一个样本方法.此外,还有一个用于检查订阅状态的API,因此您应定期检查以确保订阅有效.

更多信息请查看Nikolay Elenkov的回答

什么是最好的结算在应用程序购买或Paypal?

这取决于产品类型,

- > 在应用结算中: 最适合谷歌应用结算,

对于数字产品,包括可下载内容(如媒体文件或照片),虚拟内容(如游戏关卡或药水),高级服务和功能等.

http://developer.android.com/google/play/billing/index.html

- > Paypal:最适合Paypal结算,

对于物理内容或产品,您想要分享吗?您不得使用"应用内购买"销售实体商品或服务,因为通过此方法购买的商品必须与使用它们的应用直接相关.

在购买应用程序时,不使用Apple购买iPhone应用程序中的实体

希望它会对你有所帮助.


Kuf*_*ffs 4

从文档中:

由于 Google Play 客户端现在在设备本地缓存应用内结算信息,因此您可以使用版本 3 API 更频繁地查询此信息,例如通过 getPurchases 调用。与以前版本的 API 不同,许多版本 3 API 调用将通过缓存查找而不是通过与 Google Play 的网络连接来提供服务,这显着加快了 API 的响应时间。

这基本上意味着您每次都可以查找购买情况,并且 Play 商店应用程序几乎会立即做出响应。