首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android In-App-Purchase,如何查看用户是否购买了一件商品

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

Stack Overflow用户
提问于 2013-10-08 16:40:03
回答 4查看 9K关注 0票数 16

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

(1)使用Google Android IAP V3的最佳实践是什么?

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

EN

回答 4

Stack Overflow用户

发布于 2013-10-12 18:29:07

(1)使用Google Android IAP V3的最佳实践是什么?

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

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

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

如何在应用程序中使用

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

1) SharedPrefrence:您可以使用股票优先级值检查是否已购买。如果用户卸载应用程序,然后重新安装应用程序,那么您可以检查用户是否已购买,在此您得到的项目已经购买。而且您必须管理用户才能访问您的应用程序数据。

2)本地数据库:您也可以使用本地sqlite数据库来存储购买明细和购买状态。和上面一样,如果用户清除数据或卸载应用程序,然后再次请求购买项目,并检查用户是否购买了项目。

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

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

编辑:

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

当我在互联网上搜索时,我发现Nikolay Elenkov's答案如下:

如果你只是在共享偏好设置中保存一个标志,任何有根设备的用户都可以随意翻转标志,并被“订阅”,而不需要付费。所以你至少应该做一些模糊处理。这里有一个sample way可以做到这一点。此外,还有一个用于检查订阅状态的API,因此您应该定期检查以确保订阅有效。

更多信息请查看Nikolay Elenkov's answer

在应用程序购买或中,最好的计费方式是什么?

这取决于产品类型,

--> 在应用程序计费方面:是谷歌在应用程序计费方面的最佳选择,适用于包括可下载内容(如媒体文件或照片)、虚拟内容(如游戏关卡或药水)、高级服务和功能等在内的数字产品。

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

--> Paypal :是Paypal计费的最佳选择,

对于您想要共享的物理内容或产品。你不允许使用“应用内购买”销售实物商品或服务,因为通过这种方法购买的商品必须与使用它们的应用直接相关。

Purchase physical product from iPhone app without Apple in app purchase

希望能对你有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2013-10-08 16:44:33

从文档中:

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

这基本上意味着你每次都可以查看购买的内容,Play Store应用程序会立即做出响应。

票数 4
EN

Stack Overflow用户

发布于 2020-08-11 16:55:54

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

**事实上,用布尔值来标明它是否溢价是不好的**。

  • 我所做的是在我创建了一些奇怪的字符串或数字后,将共享代码
  • 混淆,这些字符串或数字只有在用户是高级用户的情况下才能通过应用程序内部的代码进行识别。
  • 随之而来的是,除了数据库中用于识别购买类型的数字代码。因此,通过检查两者,我可以确保用户是高级用户。

在这一点上,如果他们想用手机的根来欺骗我,他们应该首先了解我的应用程序的代码是如何工作的,然后了解在哪里交互,因为如果只有共享的首选项改变,什么都不会改变,他们会被鞭打。

**这并不意味着高安全性,但至少安全级别更高,root不会那么容易获得奖励。还因为他们应该知道要在共享数据库中插入的确切代码是什么,并通过删除混淆来查找它们。老实说,我认为这对他们来说不值得。**

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19242939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档