0

play_billingAndroid SDK の Google エクストラのサンプルを、独自のアプリ パッケージ名と公開キーを使用するように調整しました。管理アイテムの購入とアプリからの定期購入ができました。

ただし、サブスクリプションなどInventory.getAllPurchases()のメソッドを呼び出すと、アプリを再起動して再インストールした後でも、ユーザーのインベントリに返されません。

@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
    if(result.isFailure())
    {
        log.error("In-app billing inventory query failed: " + result);
        return;
    }

    for(Purchase purchase : inventory.getAllPurchases())
    {
        log.info("Purchase: " + purchase.getSku());
    }
}

出力:

Purchase: premium

通常の 1 回限りの購入 ( premium) はご覧のように出力されますが、定期購入 ( ) は出力されpaid_appません。サブスクリプションを再度購入しようとすると、既に購入済みと表示されます。

サブスクリプションを購入しようとしたときのエラー

知っていることはすべて試しましたが、これがわかりません。通常のアイテムは意図したとおりに機能しているため、サブスクリプションがどのように機能するかを完全に理解していない限り、サブスクリプションが返されない理由はわかりません.

APK を下書きとしてアップロードしました。テスター リストに電話のメール アドレスがあります。電子メールは私の開発者の電子メールではありません。サブスクリプション アイテムはアクティブです。私がテストしている電話には、最新バージョンの Google Play が搭載されています。

編集:まだ運がありません。ただし、関連する場合に備えて、別の更新があります。Google ウォレットにアクセスしても、トランザクションが表示されません (表向きはテスト トランザクションであるため)。また、サブスクリプションの下で Google Play にアクセスしたときのテスト ユーザー アカウントの場合、リストには表示されません。それでも二度と購入させてくれません。そのため、購入したサブスクリプションがクエリを実行しても表示されないだけでなく、キャンセルして再度テストすることもできません。

ここでのアイデアは大歓迎です。

4

1 に答える 1

0

この答えに出くわしたときに偶然それを理解し、そこにリンクされている更新されたコードを試すことにしました。

play_billingSDK マネージャーにリストされているサンプルは明らかに古くなっているため、パッケージ内のすべてのクラスをこの最新のプロジェクトのパッケージutilに置き換える必要があります。util

古いパッケージを新しいパッケージに置き換えた後util、サブスクリプションは通常のアイテムと一緒にリストされpremiumます!!!

Purchase: paid_app
Purchase: premium
于 2013-06-11T04:21:26.777 に答える