Nek*_*Nek 4 android in-app-billing android-billing
我想为将通过Google Play出售的应用设置基于订阅的结算方式。是否可以在不同设备上向同一用户出售相同的订阅?这样,用户尝试在其上使用该应用程序的每个设备都需要有效的订阅吗?
我本以为可以将设备ID和用户ID存储在我自己的服务器上,并以此方式进行身份验证,但是用户不能多次购买相同的订阅是否正确?如果用户希望购买多个“许可证”,那么我是否需要一个基本相同的订阅池?Google Play帐单可以本地处理吗?
谢谢
最初来自Google的文档似乎无法做到这一点,但需要更深入地研究,我发现了以下内容...
在Google Play API版本2.0中,您可以创建所谓的“非托管”产品类型,该产品类型允许用户多次购买同一商品。尽管Gooogle开发者控制台明确支持此功能,但在API 3.0中似乎已经部分消失了。我认为它仍然受支持,因为使用2.0 API的应用程序仍然存在,而Google不能放弃对此的支持。
但是,在3.0中,API文档中未列出“非托管”产品类型,但文档说明了以下有关同一产品类型的多次购买(一次性购买或订阅)的信息:
如果使用版本3 API,则还可以使用应用程序中的托管项目。通常,您会为可以多次购买的物品(例如游戏中的货币,燃料或魔术)实施消费。购买后,通过向Google Play发送消费请求,直到您消费了该托管商品,您才能再次购买该商品。要了解有关应用内商品消费的更多信息,请参见消耗物品
http://developer.android.com/google/play/billing/api.html#consume
重要说明:无法使用订阅,这意味着,如果您希望客户定期更新其许可证,则必须与他们联系并告知他们必须再次购买许可证。如果您的服务需要定期更新,那将是不利的一面。
要获得所需的物品,您将需要一个后端服务器来处理设备的注册并存储应用在购买时从Google Play接收的令牌。当用户想要从另一台设备上购买您的许可,功能,服务(或其他任何东西)时,另一台设备必须首先通过称为“消费”的过程释放其对Google Play产品的“所有权”。它将或多或少像这样工作:
本质上,Google Play不会跟踪哪个设备装有该产品。它仅将Google帐户与所购买的产品相关联。由您的应用和服务器来管理许可证。
我看到您需要解决一个潜在的问题。如果由于某种原因应用程序无法将purchaseToken发送回您的服务器(您的服务器已关闭,用户掉下了设备并损坏了它,您的应用程序在将令牌保存到设备上之前崩溃了,等等),那么您可能不会知道用户是否为服务付费。Google确实提供了服务器API,可让您的后端服务器在Google的服务器上查询Google Play以获得有关购买的信息,但是我对此并不陌生,也不了解其局限性。
您需要像处理任何其他应用内项目一样实施应用内购买。
确保当您在开发控制台中创建项目时,它是非托管的,因为托管项目每个帐户只能购买一次。
当您收到购买非托管商品的确认信息时,请将唯一 ID 等详细信息发送到您的服务器并将其存储在那里。
现在,每当您的应用程序启动时,请检查您的服务器是否是授权设备。如果不是,则提示用户购买。如果是,请让他们继续使用该应用程序。
这只适用于您需要一次性付款的情况。如果您需要订阅,则必须通过多次一次性付款来弥补,因为订阅就像管理购买一样,任何帐户只能支付一次。
| 归档时间: |
|
| 查看次数: |
2126 次 |
| 最近记录: |