13

我正在我的应用程序上的 In App Store 上工作,我使用了 robotsmedia 的 AndroidBillingLibrary,当我使用该库购买android.test.purchased时,响应正常,我需要的所有数据都在那里。

问题是,当我切换到Android In-App Billing v3时,这都是从响应中收到的,没有签名。

{"packageName":"com.my.sampleapp","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.my.sampleapp:android.test.purchased"}

我完全按照这个示例https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample但没有签名。我什至运行谷歌给定的示例应用程序,但没有运气。

我将 Base64 编码的 RSA 公钥正确放入 mHelper = new IabHelper(this, myPublicKey);

这是我的购买代码mHelper.launchPurchaseFlow(this, itempackage, 10001, mPurchaseFinishedListener);

OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            Log.i("Billing", "purchasing: " + result.getMessage());

            if (result.isFailure()) {
                Log.i("Billing", "Error purchasing: " + result);
                return;
            } else if (purchase.getSku().equals("android.test.purchased")) {
                Log.i("Billing - signature", purchase.getSignature());
                consumeItems();
            } else {
                Log.i("Billing", "Error purchasing: " + result);
            }
        }
    };

不知何故,我的mPurchaseFinishedListener在购买后没有收到任何东西,但protected void onActivityResult(int requestCode, int resultCode, Intent data)正在收到东西但没有签名。

有什么解决办法吗?奇怪的是 v2 正在接收签名而 v3 没有。

4

3 回答 3

12

您不会获得测试 ID、android.test.purchased 等的签名。

您将收到真实购买的签名。

于 2013-02-07T13:05:20.147 回答
1

正如 Rawkode 所说,您不再获得测试购买的签名 (android.test.*)。我潜入并使用我的真实产品将我的应用程序上传到市场(只是没有发布)。

低调的签名开始被退回!当数据包含 android.test.* 项目 ID 时,我建议修改您正在使用的任何服务器端验证以跳过签名检查。

于 2013-02-23T16:46:41.230 回答
0

你说的签名是什么意思?那是订阅吗?还是应用内物品(消耗品或非消耗品)?因为应用内结算 v3 目前不支持订阅,如果您想要该功能,您必须使用 v2 (https://developer.android.com/google/play/billing/billing_overview.html)。此外,请确保您的项目在您的开发者控制台上被标记为“受管理的项目”(对于 Billing v3)。

对不起,如果我误解了。此外,尝试在您的 IabHelper 实例上启用调试模式,这将为您提供更好的问题概览。

mHelper.enableDebugLogging(true, "YOURTAG");

我建议查看开发者网站上的实施指南: https ://developer.android.com/google/play/billing/billing_integrate.html

那里也有示例代码。

于 2013-01-11T05:52:17.687 回答