13

私は自分のアプリで In App Store に取り組んでいます。robotmedia の AndroidBillingLibrary を使用しました。ライブラリを使用してandroid.test.purchasedを購入すると、応答は OK で、必要なデータはすべてそこにあります。

問題は、 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に正確に従いましたが、署名はありません。与えられたサンプル アプリを Google で実行することもできますが、うまくいきません。

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");

開発者のWebサイトにある実装ガイドを参照することをお勧めします: https ://developer.android.com/google/play/billing/billing_integrate.html

そこにはサンプルコードもあります。

于 2013-01-11T05:52:17.687 に答える