4

GooglePlayのアプリ購入に実装しました。DungeonsReduxサンプルがあります。ここ

restoreTransactions();

トランザクションを復元する方法があることを私は知っています。しかし、アプリをアンインストールしてから再インストールすると、「すでにアイテムを購入したかどうかをどうやって知ることができますか?」アマゾンのアプリ内購入と復元を実装しましたが、アマゾンでテストアカウントの購入トランザクションの記録を保存するアマゾンSDKを入手しました。Google Playでこれを達成するにはどうすればよいですか(復元機能)

復元応答を取得するには、Google Playでアカウントを作成する必要がありますか?もしそうなら、私はグーグルプレイでテストアカウントを作成しようとしました。彼らはお金を求めます。いいえの場合、応答を提供するSDKはあります。助けてください。

4

2 に答える 2

0

最初にサンプルアプリでテストすることをお勧めします。これをテストする方法は次のとおりです。これにより、以下のサンプルアプリを適切に確認すると、復元の問題が解決されます

ステップ 1.サンプル アプリ - TrivialDriveをインストールする

ステップ 2.静的応答でテストします。Mainactivity には 4 つのボタンがあり、ボタンのアイテム コードをこれらの予約済みの製品 ID に置き換えます。

  • android.test.購入済み
  • android.test.canceled
  • android.test.refunded
  • android.test.item_unavailable

これらの予約済み製品 ID を使用するために、開発者コンソール アプリケーションに項目を追加する必要はありません。アプリをテストするためのリンクは次のとおりです。

上記の方法でテストしたら、独自の製品でテストする準備が整いました。 これを行うための詳細なチュートリアル リンクは、独自の製品 ID を使用したアプリ内購入のテストです。

于 2013-03-18T06:24:26.667 に答える
0

私は専門家ではありませんが、ここで助けようとします。購入したアイテムを復元するには、購入したアイテムの SKU が必要になると思います。そして、それをテストするには、アプリの実際の SKU を作成する必要があります。これを行うには、署名済み apk をベータ テストに追加し、ストアの一覧に詳細を追加します。その後、アプリ内製品セクションで購入可能なアイテムに関する詳細を追加できます。これにより、アプリ内のすべての購入可能なアイテムにタイトル、説明、コスト、および SKU (製品 ID) を割り当てます。アイテムを復元するには、購入したアイテムの SKU が必要です。それだけです。

次の手順でそれを行うことができます。

  1. 次の手順に従って作業を完了しますが、機能をテストするには署名済みの apk が必要です (開発者コンソールにアップロードするものと同じです)。
  2. IabHelper クラスで独自のメソッドを作成し、それを getPurchasesDetail() と呼びましょう。このメソッドでは、次のコード行を使用します。

Bundle ownedItems=mService.getPurchases(3, mContext.getPackageName(), "inapp", null);
ArrayList<String> ownedSkus=new ArrayList<String>();
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0) 
{
     ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
}

上記の行により、購入した SKU のリストが arraylist に表示され、メソッドの戻り値の型が配置され、購入を復元する必要があるクラスで取得されます。

  1. 購入を復元したいクラスで、次の操作を行います。

iabHelper=new IabHelper(this, "you public here");
iabHelper.startSetup(new OnIabSetupFinishedListener() 
{
    @Override
    public void onIabSetupFinished(IabResult result) 
    {
    if(result.isSuccess())
    {
        try 
        {
             ownedSkus=iabHelper.getPurchasesDetail();//get purchase list
             //Now you have the purchased SKU list in an arraylist, you can use SharedPreferences or something else for the further process.
        }
        catch (RemoteException e) {
        e.printStackTrace();
        }
       }
      }
    });

4. 次に、このコードと公開鍵を使用して署名済みの apk を開発者コンソールにアップロードし (ベータ テスト段階)、同じ apk を使用して、これまでに行われた実装を確認します。ただし、復元する前にアイテムを購入することを忘れないでください。

これが役立つことを願っています。ありがとう。

于 2013-12-25T11:47:07.323 に答える