Android应用内计费还原事务

Android应用内计费还原事务,android,in-app-purchase,Android,In App Purchase,我的应用内计费实施方案: 1.主屏幕显示我计划销售的产品列表。 2.详细信息屏幕(在主屏幕中选择列表项时显示的屏幕)将具有购买该产品的选项 我的理解是,必须在主屏幕活动中执行恢复事务请求和检查是否支持InAppBilling的请求。其余请求(启动采购等)应在详细信息屏幕活动中完成。这种理解正确吗 如果是,我应该如何修改地下城示例以分离并实现主屏幕上的活动,这两组请求不是每次导航到详细屏幕活动时都需要执行的。我是否必须在这两个活动中分别创建purchase observer和相关类的实例?还原事务

我的应用内计费实施方案: 1.主屏幕显示我计划销售的产品列表。 2.详细信息屏幕(在主屏幕中选择列表项时显示的屏幕)将具有购买该产品的选项

我的理解是,必须在主屏幕活动中执行恢复事务请求和检查是否支持InAppBilling的请求。其余请求(启动采购等)应在详细信息屏幕活动中完成。这种理解正确吗


如果是,我应该如何修改地下城示例以分离并实现主屏幕上的活动,这两组请求不是每次导航到详细屏幕活动时都需要执行的。我是否必须在这两个活动中分别创建purchase observer和相关类的实例?

还原事务不应频繁执行,可能仅在应用程序第一次运行时执行(因此,如果用户重新安装了应用程序等,您可以还原购买)。您不需要它来购买产品


BillingService
为请求购买和恢复交易提供了单独的方法。只需从相关活动中调用适当的一个。您只需要一个购买观察员,无论UI/活动的结构如何。

不应频繁执行恢复事务,可能仅在应用程序第一次运行时执行(因此,如果用户重新安装了应用程序等,您可以恢复购买)。您不需要它来购买产品


BillingService
为请求购买和恢复交易提供了单独的方法。只需从相关活动中调用适当的一个。您只需要一个购买观察员,用户界面/活动的结构并不重要。

在地下城示例中,如果您发出恢复交易请求,服务器的响应将首先调用此函数:

onPurchaseStateChange(PurchaseState PurchaseState、字符串itemId、整数数量、长购买时间、字符串developerPayload)

然后:
onRestoreTransactionsResponse(RestoreTransactions request,ResponseCode ResponseCode)

在地下城示例中,如果您发出还原\u事务请求,服务器的响应将首先调用此函数:

onPurchaseStateChange(PurchaseState PurchaseState、字符串itemId、整数数量、长购买时间、字符串developerPayload)

然后:
onRestoreTransactionsResponse(RestoreTransactions请求,ResponseCode ResponseCode)

我得到了恢复购买的方法。但在该方法中,有一个类似“Long nonce”的参数。那么这是什么,我给出的nonce值是多少?这是一个随机数。查看文档和示例项目。@NikolayElenkov我同意你的观点,但你是否在重新安装应用程序后恢复过托管产品。如果是,请分享。到目前为止,我发现它返回一个json数据,其中包含这个购买信息。但无法找到如何获取json。在onRestoreTransactionsResponse方法中的何处可以找到此数据。谢谢,当然,它很好用。这与购买
onStatusChanged()
的流程完全相同,或者通过广播接收器接收数据时会调用类似的方法(异步,因此可能需要一些时间)。我获得了恢复购买的方法。但在该方法中,有一个类似“Long nonce”的参数。那么这是什么,我给出的nonce值是多少?这是一个随机数。查看文档和示例项目。@NikolayElenkov我同意你的观点,但你是否在重新安装应用程序后恢复过托管产品。如果是,请分享。到目前为止,我发现它返回一个json数据,其中包含这个购买信息。但无法找到如何获取json。在onRestoreTransactionsResponse方法中的何处可以找到此数据。谢谢,当然,它很好用。这与购买
onStatusChanged()
的流程完全相同,或者在通过广播接收器接收数据时(异步,因此可能需要一些时间)将调用类似的方法。