1. ホーム
  2. android

[解決済み] アプリ内課金 サーバから情報を取得する際にエラーが発生する [DF-AA-20] 。

2022-02-08 02:04:36

質問

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

以下は、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です。

この問題を解決する方法はありますか?DF-AA-20の問題でstackoverflowの質問が1つだけあり、答えがありません。また、インターネット上にもそれに関する情報はありません。エミュレータとアンドロイド携帯を使用してみました。

解決方法は?

DF-AA-20 は、アプリがPlayストアで何らかの形で公開されていないことを意味します。これは通常、以下のいずれかの理由によるものです。

  • まだ公開されていない In-App Billing をテストするには、少なくともアルファ版にプッシュする必要があります。参照 IABのテストに関する文書 をご覧ください。
  • あなたのアプリまたは開発者アカウントが、不正使用により禁止または一時停止されています。
  • パッケージ名やアプリケーションIDに何らかの変更を加え、apkの内容がPlayのものと一致しなくなった場合。開発者はビルドフレーバーでこれを行うことがあります。