【问题标题】:re-install paid subscription on new Android device在新的 Android 设备上重新安装付费订阅
【发布时间】:2013-11-29 12:36:06
【问题描述】:

我有一个应用内订阅。我正在尝试确保在相同或新的应用程序上重新安装应用程序将识别用户具有有效的订阅。 “已拥有”响应的值应该为“7”,这对于可消耗的托管产品非常有效。但是,对于订阅,我没有得到“7”响应。消息也不同。对于托管的消耗性产品,消息是“项目已拥有”,响应为“7”。对于订阅,消息是“您已经拥有此项目”,没有“7”响应,IAB 结果是“-1005:用户取消”。订阅在 Google 电子钱包中有效,尚未取消。我相信,我从警报框解除中得到了响应。

问题是,我如何识别对 IABsetup 的响应?如果request.mResponse = 1,我已经尝试过,但这不起作用。我显然没有得到有用的订阅响应代码。在测试期间,我必须关闭调试才能上传 .apk,所以这更加难以遵循。

为什么来自服务器的订阅响应与已拥有项目的托管产品响应不同?

我需要能够根据已经拥有的响应激活应用程序。

谢谢。

【问题讨论】:

    标签: android in-app-billing subscription


    【解决方案1】:

    我发现 IabHelper.java 有这个:

    else if (resultCode == Activity.RESULT_CANCELED) {
            logDebug("Purchase canceled - Response: " + getResponseDesc(responseCode));        
            result = new IabResult(IABHELPER_USER_CANCELED, "User canceled.");
            if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
        }
    

    我改成这样了:

    else if (resultCode == Activity.RESULT_CANCELED) {
            logDebug("Purchase canceled - Response: " + getResponseDesc(responseCode));        
            result = new IabResult(responseCode, "User canceled.");
            if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
        }
    

    注意从 (IABHELPER_USER_CANCELED, "User cancelled.") 到 (responseCode, "User Canceled") 的变化

    现在 responseCode 正在传递给

    public void onIabPurchaseFinished(IabResult result, Purchase info)
    

    所以我可以确定响应是否是对话框取消,并允许重新安装活动订阅并联系我的服务器。那时我正在对 Google 进行 0Auth API 调用以验证安装和有效订阅。

    可能有其他方法可以做到这一点,但这很有效。

    希望这对世界上正在订阅 Android 应用内订阅的 3 人有所帮助。

    【讨论】:

    • 至少有 4 个,因为我也知道。如果对其他人很明显,我发现一些有用和抱歉的东西,但是一旦 IabSetup 完成,我会打电话给getPurchases,看看是否有任何现有的购买问题。这样,如果你得到一个 7,你可以尝试将数据恢复到你的服务器。应该帮助使用多种设备的人
    • 我同意,但我仍然没有得到 7 的付费订阅。至少,我无法察觉。该过程应该告诉您“您已经拥有此项目”并向 IABSetup 发送 7。它不发送 7,只发送 1 用于取消对话。当然,我可能错过了什么……
    • 我们于 2013 年 12 月 12 日发布了订阅模式。我们只有 50% 的时间从 Google Play 获得购买令牌。从那时起,我们一直试图从谷歌那里找出原因,但没有成功。因此,30 天后我们取消了服务,即使他们已通过订阅付款。我想知道如果我们没有得到它,是否有一些示例代码可以在销售后立即请求 PurchaseToken?
    猜你喜欢
    • 2018-09-19
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多