安卓应用内购买,如何检查用户是否购买了一个项目



共享首选项中设置一个值以标记用户已购买此项目是否可行且安全?如果用户在共享首选项中破解此值怎么办。或者我需要每次连接IAP服务以检查,然后用户才能使用它?

(1( 使用谷歌安卓IAP V3的最佳实践是什么?

(2(而且,如果用户的设备没有安装Google Play,我可能想使用PayPal付款,但是如果我要求用户使用简单的PayPal付款来获取许可证密钥,如何跟踪购买并为用户解锁功能?我不想使用任何其他计费SDK,如果用PayPal网页购买许可证,如何实现?

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

-

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

(2(而且,如果用户的设备没有安装Google Play,我可能想使用PayPal付款,但是如果我要求用户使用简单的PayPal付款来获取许可证密钥,如何跟踪购买并为用户解锁功能?我不想使用任何其他计费SDK,如果用PayPal网页购买许可证,如何实现?

-

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

如何在应用程序中使用

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

1( 共享优先权:您可以使用共享优先级值并检查它是否已购买。 如果用户卸载了应用程序,然后重新安装应用程序,那么您可以检查用户是否已购买,此时您将获得该项目已经购买。而且您必须管理用户才能访问您的应用程序数据。

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

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

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

编辑:

在"共享首选项"中设置一个值以标记用户已购买此项目是否正常且安全?如果用户在共享首选项中破解此值怎么办。或者我需要每次连接IAP服务以检查,然后用户才能使用它?

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

如果您只是在共享首选项中保存一个标志,则任何具有root的用户 设备可以随意翻转旗帜并"订阅"而无需付费。 所以你至少应该做一些混淆。这是一个示例方法 它。此外,还有一个 API 可以检查订阅状态,因此 您应该定期检查以确保订阅有效。

更多信息请查看尼古拉·埃连科夫的答案

什么是最适合计费的应用内购买或PayPal?

这取决于产品类型,

-

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

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

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

-

->PayPal:最适合PayPal计费,

对于物理内容或产品,您要共享。你不是 允许使用"应用内购买"销售实物商品或服务 由于通过此方法购买的商品必须与 使用它们的应用程序。

从iPhone应用程序购买实体产品,而无需在应用程序内购买Apple。

希望对您有所帮助。

来自

文档:

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

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

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

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

  • 我所做的是混淆共享代码
  • 在我创建了一些奇怪的字符串或数字之后,如果用户是高级用户,则仅通过应用程序内的代码进行识别。
  • 除此之外,数据库中标识购买类型的数字代码除外。因此,通过检查两者,我可以确保用户是高级用户。

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

**这并不能转化为高安全性,但至少安全级别更高,根将无法轻易获得奖励。还因为他们应该了解在共享数据库中插入的确切代码是什么,并通过删除混淆来查找它们。老实说,我认为这对他们来说不值得。**

正如 Kuffs 所提到的,最好查询应用内结算库的应用端实现,而应用内结算库又会查询设备的 Google Play 客户端。这将确保最近从Google Play服务器获得的购买历史记录将是可靠且相对最新的信息。

另外,请记住,如果您要在Google Play上分发应用,则必须通过应用内结算使用Google Play付款机制。就目前而言,Google Play和钱包尚不支持PayPal或电汇/银行转账方法,因此如果您要在Play上发布该选项,则不应集成该选项。

http://play.google.com/about/developer-content-policy.html#payments

相关内容

  • 没有找到相关文章

最新更新