0

Androidアプリにアプリ内課金を実装しました。私が使用するコードは次のとおりです:

oncreateメソッド:

startService(new Intent(this, BillingService.class));
    System.out.println(" - - - - CHECK FOR THE PURCHASE PRODUCT - - - - ");
    BillingHelper.setCompletedHandler(mTransactionHandler);

ハンドラーは次のとおりです。

 public Handler mTransactionHandler = new Handler(){
    public void handleMessage(android.os.Message msg) {
        System.out.println("SEE FOR THE PRODUCTS PURCHASE OR NOT");

        Log.i(TAG, "Transaction complete");
        Log.i(TAG, "Transaction status: "+BillingHelper.latestPurchase.purchaseState);
        Log.i(TAG, "Item purchased is: "+BillingHelper.latestPurchase.productId);

        // For Premium Pro Purchase
        if(BillingHelper.latestPurchase.productId == "premium_pro"){
            if(BillingHelper.latestPurchase.isPurchased()){
                System.out.println("START OPENING PREMIUM_PRO_BUY CONTENT");
                myPrefs = getApplicationContext().getSharedPreferences("myPrefs",MODE_WORLD_WRITEABLE);
                prefsEditor = myPrefs.edit();                 
                prefsEditor.putBoolean("PREMIUM_PRO_BUY", true); // value to store                 
                prefsEditor.commit(); 
                PREMIUM_PRO_BUY = true;
                System.out.println("NOW.. . .  PREMIUM_PRO_BUY is as PURCHASED. :-)");
                System.out.println("FINISH TO OPENING BLOCK CONTENT");
                //  showItem();
            }
        }

        // For Feature Upgrade Purchase
        if(BillingHelper.latestPurchase.productId == "feature_upgrade"){
            if(BillingHelper.latestPurchase.isPurchased()){
                System.out.println("START OPENING FEATURE_UPGRADE_BUY CONTENT");
                myPrefs = getApplicationContext().getSharedPreferences("myPrefs",MODE_WORLD_WRITEABLE);
                prefsEditor = myPrefs.edit();                 
                prefsEditor.putBoolean("FEATURE_UPGRADE_BUY", true); // value to store                 
                prefsEditor.commit(); 
                FEATURE_UPGRADE_BUY = true;
                System.out.println("NOW.. . .  FEATURE_UPGRADE_BUY is as PURCHASED. :-)");
                System.out.println("FINISH TO OPENING BLOCK CONTENT");
                //  showItem();
            }
        }






    };
};

そして、ボタンをクリックして私のコードは次のとおりです。

//      CODE TO GET PURCHASED
        if(BillingHelper.isBillingSupported()){

            BillingHelper.requestPurchase(getApplicationContext(), "feature_upgrade"); // MY OWN

        } else {
            Log.i(TAG,"Can't purchase on this device");
            Toast.makeText(getApplicationContext(), "Please check internet and make sure that you have latest GooglePlay App in your Device.", Toast.LENGTH_LONG).show();
        }

[購入を復元]ボタンをクリックすると、どの製品が購入であるかを確認したいと思います。だから私は何をしなければならないのですか?

私はこのSOの質問を見ました:これ、そしてこれ。しかし、どの製品がそのユーザーのために購入され、どの製品が購入されていないかがわかりません。

前もって感謝します。

4

1 に答える 1

1

このページでは、アプリ内課金の詳細を説明し、「ダンジョン」サンプルアプリケーションのダウンロードを提供します。サンプルアプリケーションをダウンロードしてmBillingService.restoreTransactions();関数を見てください。おそらく、必要なことを正確に実行します。

于 2012-05-01T09:36:29.563 に答える