Android应用内购买,如何检查用户是否购买了一件物品

Android应用内购买,如何检查用户是否购买了一件物品,android,paypal,in-app-purchase,paypal-sandbox,in-app-billing,Android,Paypal,In App Purchase,Paypal Sandbox,In App Billing,在SharedReference中设置一个值以标记用户已购买此项目是否安全?如果用户在SharedReference中攻击此值会怎么样。或者我每次都需要连接IAP服务来检查用户是否可以使用它 (1) 当我使用Google Android IAP V3时,最佳实践是什么 (2) 另外,如果用户的设备没有安装Google Play,我可能想使用paypal进行支付,但是如果我要求用户使用简单的paypal支付获得许可证密钥,如何跟踪购买并为用户解锁功能?我不想使用任何其他计费SDK,如果使用Payp

在SharedReference中设置一个值以标记用户已购买此项目是否安全?如果用户在SharedReference中攻击此值会怎么样。或者我每次都需要连接IAP服务来检查用户是否可以使用它

(1) 当我使用Google Android IAP V3时,最佳实践是什么


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

来自文档:

因为Google Play客户端现在可以缓存应用程序内的计费信息 在本地设备上,您可以使用版本3 API查询此信息 更频繁地获取信息,例如通过getPurchases调用。 与以前版本的API不同,许多版本3 API调用 将通过缓存查找而不是通过网络提供服务 连接到Google Play,这大大加快了API的运行速度 响应时间

这基本上意味着你每次都可以查看购买情况,Play Store应用程序将立即响应。

(1)当我使用Google Android IAP V3时,最佳做法是什么

-->官方文件说,只有支付交易将由google play自己处理,但在应用程序中,您必须设置您的业务逻辑,在购买产品后如何处理UI集成和其他事情。您也可以使用应用内购买v3

(2) 另外,如果用户的设备没有安装Google Play,我可能想使用paypal进行支付,但是如果我要求用户使用简单的paypal支付获得许可证密钥,如何跟踪购买并为用户解锁功能?我不想使用任何其他计费SDK,如果用Paypal网页购买许可证,如何实现这一点

-->您可以要求用户动态更新google play版本。谷歌开发者doc表示,超过90%的设备使用2.2操作系统,并安装了谷歌play商店。我不能说任何关于paypal交易的事情,因为我以前没有使用过它,但是使用v3的应用内购买非常容易实现和理解支付过程

如何在应用程序中使用

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

1)共享体验: 您可以使用share prefrence值并检查它是否已购买。如果用户卸载了该应用程序,然后重新安装该应用程序,则您可以检查用户是否购买了该应用程序,此时您会看到该项目已购买。您必须管理用户以访问您的应用程序数据

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

2)服务器数据库: 如果您使用web服务器来存储用户数据,则这是比上述更好的方法。在这种情况下,如果用户卸载应用程序或清除应用程序数据,您甚至不需要第二次进行管理

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

编辑:

在SharedReference中设置一个值以标记用户已购买此项目是否安全?如果用户在SharedReference中攻击此值会怎么样。或者每次我都需要连接IAP服务,以检查用户是否可以使用它?

当我在互联网上搜索时,我发现尼古拉·埃连科夫的答案如下:

如果您只是在共享首选项中保存一个标志,则任何具有根目录的用户 该设备可以随意翻动旗帜,无需付费即可“订阅”。 所以你至少应该做些模糊处理。有件事要做 信息技术此外,还需要检查订阅状态,因此 您应该定期检查以确保订阅有效

更多信息查询

应用内购买或Paypal的最佳计费方式是什么?

这取决于产品类型

-->应用内计费:最适合谷歌应用内计费

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

-->贝宝:最适合贝宝计费

要共享的物理内容或产品。你不是 允许使用“应用内采购”销售实物商品或服务 因为通过这种方法购买的货物必须与 应用程序使用它们


希望它能帮助你

正如Kuffs所提到的,最好查询应用内计费库的应用端实现,该库反过来查询设备的Google Play客户端。这将确保最近从Google Play服务器获得的购买历史是可靠且相对新鲜的信息

此外,请记住,如果您在Google Play上分发应用程序,则必须通过应用内计费使用Google Play支付机制。目前,Google Play和Wallet还不支持Paypal或电汇/银行转账方式,因此如果您在游戏中发布该选项,则不应集成该选项


根据我的经验,我可以向你保证一件事

**事实上,在国旗上写上“是否优质”的字样是不好的

  • 我所做的是混淆共享代码
  • 在我创建了一些奇怪的字符串或数字之后,如果