我在应用程式内结帐时遇到问题。我正在使用TrivialDrive示例中的帮助程序类。
这是我的实现方法。

  • 用户按下删除广告
  • 启动助手
  • 使用监听器检测何时设置了辅助程序。
  • 查询库存
  • 使用监听器检测
  • 何时完成
  • 检查是否已经购买。如果是这样,请删除广告并退出
  • 如果没有,则启动PurchaseFlow购买。

  • 这在一个设备上可以正常工作,但是,如果用户在一个设备上进行购买,然后在另一台设备上尝试该设备,则第二个设备的工作方式如下:

    helper 照常进行设置,然后在检查库存时发现没有购买任何物品(我知道此更新之前会有所延迟)。然后,它尝试购买,但显示在Google Play窗口上已经购买的商品。如果我可以在代码中检测到这一点,那会很好,但它会返回给监听器,表明用户取消了购买。

    有没有一种方法可以检测用户是否已经使用purchaseFinishedListener购买了商品?

    最佳答案

    handleActivityResult方法中的代码返回“用户已取消”
    else if (resultCode == Activity.RESULT_CANCELED) {
    logDebug("Purchase canceled - Response: " + getResponseDesc(responseCode));
    result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled.");
    if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
    }

    我添加了if (responseCode==BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED) result = new IabResult(BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED, "Success");

    10-08 18:38