簡體   English   中英

Android Inapp帳單:如何保存購買的商品

[英]android inapp billing: how to save purchased items

以下代碼是我的inapp結算應用程序,但是我有一個問題,如何保存用戶購買的商品,而不必每次檢查都需要連接到Google Play?

以下代碼是我的inapp結算應用程序,但是我有一個問題,如何保存用戶購買的商品,而不必每次檢查都需要連接到Google Play?

package com.example.inapptest;

import com.example.inapptest.R;

import com.example.android.trivialdrivesample.util.IabHelper;
import com.example.android.trivialdrivesample.util.IabResult;
import com.example.android.trivialdrivesample.util.Inventory;
import com.example.android.trivialdrivesample.util.Purchase;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

boolean mIsPremium = false;
static final String SKU_PREMIUM = "premium";
static final int RC_REQUEST = 10001;
IabHelper mHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String base64EncodedPublicKey = "MIHNMA0GCSqGSIb3DQEBAQUAA4G7ADCBtwKBrwDEYf1TFjO6qpCR5t/7w+P0luTLEKH6aSUYyXt95mHdJOf7gLoLMYJLlfHp/nVyDLLDIoG5a2RaFE5cwZxc0CCVXouuhkO/B/ckFb03FZcg8T0oOSLIyNiPrrrtlln7DyXhvv60KFk8qozuX46MiR+SZfNdg5AJrV9KDHZ9aIHyHztQkpajZ9WJd7F4theRGom3Gydp0LRTumHcmgweOj0ZF6CzzSEQkgOp7S1Guo8CAwEAAQ==";

    mHelper = new IabHelper(this, base64EncodedPublicKey);
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
        mHelper.queryInventoryAsync(mGotInventoryListener);
        }
    });

}

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) {

        // Do we have the premium upgrade?
        Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM);
        mIsPremium = (premiumPurchase != null && verifyDeveloperPayload(premiumPurchase));


        updateUi();
         }




};

public void onUpgradeAppButtonClicked(View arg0) {
      String payload = ""; 

    mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, 
            mPurchaseFinishedListener, payload);
}

 // Callback for when a purchase is finished
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) {

         if (purchase.getSku().equals(SKU_PREMIUM)) {
            // bought the premium upgrade!
            mIsPremium = true;
            updateUi();
        }

    }
};

 boolean verifyDeveloperPayload(Purchase p) {
     String payload = p.getDeveloperPayload();
     return false;
}



@Override
public void onDestroy() {
    super.onDestroy();
    if (mHelper != null) mHelper.dispose();
    mHelper = null;
}

public void updateUi() {
    // TODO Auto-generated method stub
    ((ImageView)findViewById(R.id.free_or_premium)).setImageResource(R.drawable.premium);
    findViewById(R.id.upgrade_button).setVisibility(View.INVISIBLE);

} 
}

如果您使用IAB庫的最新版本3,則無需保存購買。 您可以在每次啟動應用程序時從服務中查詢它們,因為Google Play服務會為您在設備上緩存購買的商品。 請參閱有關本地緩存的注釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM