web-dev-qa-db-ja.com

サーバーから情報を取得する際のアプリ内購入エラー[DF-AA-20]

アプリの課金で有効にしようとしています。 Google Playコンソールでアプリ内製品を作成し、ライセンスキーを取得しました。製品を購入しようとすると。この画像エラーが表示されます。

enter image description here

BillingProcessorの作成に使用するコードは次のとおりです。

bp = new BillingProcessor(this, LICENSE_KEY, MERCHANT_ID, new BillingProcessor.IBillingHandler() {
        @Override
        public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
            showToast("onProductPurchased: " + productId);
            updateTextViews();
        }
        @Override
        public void onBillingError(int errorCode, @Nullable Throwable error) {
            showToast("onBillingError: " + Integer.toString(errorCode));
        }
        @Override
        public void onBillingInitialized() {
            showToast("onBillingInitialized");
            readyToPurchase = true;
            updateTextViews();
        }
        @Override
        public void onPurchaseHistoryRestored() {
            showToast("onPurchaseHistoryRestored");
            for(String sku : bp.listOwnedProducts())
                Log.d(LOG_TAG, "Owned Managed Product: " + sku);
            for(String sku : bp.listOwnedSubscriptions())
                Log.d(LOG_TAG, "Owned Subscription: " + sku);
            updateTextViews();
        }
    });

LICENSE_KEYはGoogle Playコンソールのライセンスキーであり、MERCHANT_IDはnullです。

これは私がアイテムを購入する方法です。

bp.purchase(this,PRODUCT_ID);

PRODUCT_IDがGoogle Playコンソールで使用するproduct1である場合、アプリ内製品の例を次に示します。

enter image description here

これを修正する方法はありますか? DF-AA-20の問題には、答えのないstackoverflowの質問が1つしかありません。そして、それに関する情報はインターネット上にありません。私はエミュレータと私のAndroid電話を使用しようとしました。

9
Miljan Rakita

DF-AA-20は、アプリがPlayストアで公開されないことを意味します。これは通常、次のいずれかの理由です。

  • まだ公開していません。アプリ内課金をテストするには、少なくともアルファ版にプッシュする必要があります。詳細については、 テストIABドキュメント を参照してください
  • アプリまたはデベロッパーアカウントが不正使用のために禁止/停止されました
  • パッケージ名/ applicationIdに変更を加えて、apkでPlayのものと一致しないようにします。開発者は時々ビルドフレーバーでこれを行います
14
Nick Fortescue

ああ、私のSKUが異なる製品で購入をテストしたときにこの例外がありました。
SKUを確認してください。
SkuはCAPSであってはなりません! [a-z] [0-9]のみ!

7
xoxol_89

ちょっと待ってください。 25分待ってから、製品がGoogle Playに登録されました

2
Dyno Cris

Google Playコンソールで製品をまだアクティブにしていない場合でも、この正確なエラーコードメッセージを取得できることを指摘しておくと便利です。 (デバッグでも、アクティブにする必要があります。)

1
Saffron Streams

Playstoreにアプリを公開する必要があります(アルファ版またはベータ版の公開でも役に立ちません)。

0
Asim