現在、新しいPlay BillingLibraryを使用しています
基本的に、私はドキュメントに従って、購入可能なアイテムを照会しました
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(itemType);
mBillingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode,
List<SkuDetails> skuDetailsList) {
listener.onSkuDetailsResponse(responseCode, skuDetailsList);
}
ただし、responseCodeは0であり、リストも空です。しかし、onBillingSetupFinishedが成功したことを確認しました。 SkuDetailsParams.Builderに提供されたskuListは空ではなく、skuList内の値(sku_id)もGooglePlayコンソールで指定された製品IDと同じです。
誰かが理由を知っていますか?ありがとう!
GooglePlayコンソールの設定に問題があるようです。
次のことを確認してください。
そして、セットアップが完了した後、しばらく待ちます。
APKをアップロードする必要はありません。
Skusを取得する必要があります。 BillingClientは、デバッグモードでテストしても機能するはずです。
製品またはサブスクリプションがアクティブであることを確認してください。
しばらくお待ちください。請求プロセスで商品が更新されるまで、数時間かかる場合があります。
私も同じ問題を抱えていましたが、次のようにしてSkuDetailsを取得しました。
私はこの問題に数時間を費やしましたが、問題はデバッグビルド/ CIビルドにapplicationIdSuffix
があったことでした。したがって、適切なapplicationIdを使用した本番ビルドのみが製品を取得できました。
これは、アプリ内購入が利用できない国(キューバ、中国など)のユーザーにも発生する可能性があります。
PlayコンソールのPricing & distribution
セクションで国のステータスを確認してください
以前の回答に加えて、インターネット接続なしで検索を実行すると、SkuDetailsListが空になる可能性があります。したがって、コードでもその状況を管理する必要があります。
アプリはGooglePlayストアで承認される必要があります。これには最大1週間かかる場合があります