如何在应用内结算(Android)中恢复交易?

Tru*_*ung 3 android billing transactions restore in-app

我试图搜索这个问题,但没有得到很多信息.我只知道:
- 首次用户安装应用程序时还原或用户在卸载/擦除数据时重新安装.
- 恢复交易仅适用于托管产品.
我尝试阅读Dungeon示例,有几行关于恢复事务的代码如下:何时调用恢复请求,何时恢复请求...但我不知道:
- 如何获取返回信息?(比如您购买的商品ID)

有人请再次解释应用内结算中的还原交易流程.

非常感谢!!!

编辑:很抱歉,我很久没有在Android上工作了,现在我不知道这个问题的答案是什么,所以我不能回答:P

Fra*_*igh 6

典型流程如下:

  1. 用户安装您的应用程序.

  2. 首次加载您的应用时,您会检查是否需要恢复购买.

  3. 如果您这样做,请向Google发送RESTORE_TRANSACTION同步请求.

  4. Google将针对您的RESTORE_TRANSACTION请求作出回复回复.(这只是他们收到您的请求的确认.)

  5. 此时,您应该标记您已经向Google发送了还原请求,并且无需从应用程序发送进一步的还原.

  6. 现在异步 Google将开始向您的应用发送"PURCHASE_STATE_CHANGED"事件,以便用户先前购买的每次应用内购买.如果用户第一次进行购买,此通话 Google发送的通话相同.

  7. 由于它是同一个呼叫,您的应用程序将接收事件并正常处理,就好像用户刚刚购买了应用内商品(从而"恢复"购买的功能).

关于步骤2和5,我为我的应用程序做的是保持名为"APP_INITIALISED"的SharedPreference值默认为false.每次我的应用程序启动时,如果'APP_INITIALISED'为false,我告诉Google RESTORE_TRANSACTION(步骤2)然后我将APP_INITIALISED设置为true(步骤5).