android在app中购买耗材?非消耗品?如何检查已经付款的用户

时间:2015-01-05 15:22:16

标签: java android in-app-purchase

我有一个正在运行的版本,包含字符串ITEM_SKU =" android.test.purchased&#34 ;;所以我可以买一个(假的)产品。 现在我意识到这是一种消费品。但我需要非消耗品。如果你使用我的应用程序购买,它是一个高级升级。

1)我有什么需要改变用户购买非消费品?

2)第二件事是,如果有人已经购买了优质产品,我想检查一下。他/她应该只支付一次。我怎么能这样做?

我在董事会或官方Google API上进行了大量搜索。有一个样本" Trivial Drive"来自谷歌,我可以在那里找到我的问题的解决方案。但我找不到合适的代码。

以下是我的代码的一些片段:

//a button click call this method
public void buyClick() {
     mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001,mPurchaseFinishedListener); 
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
      if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {     
        super.onActivityResult(requestCode, resultCode, data);
      }
}

public void consumeItem() {
    System.out.println("counsumeItem wurde aufgerufen");
    mHelper.queryInventoryAsync(mReceivedInventoryListener);
}

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {

        @Override
        public void onIabPurchaseFinished(IabResult result, Purchase info) {


               if (result.isFailure()) {
                      return;
                 }      
                 else if (info.getSku().equals(ITEM_SKU)) {

                    consumeItem();
                    buyButton.setEnabled(false); 
                }   
            }
        };

        IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
               public void onConsumeFinished(Purchase purchase, IabResult result) {

             if (result.isSuccess()) {               
                  clickButton.setEnabled(true); //hier den Datenbankzugriff reinmachen
             } else {
                  System.out.println("Handle error");   // handle error
             }
          }
        };


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


                  if (result.isFailure()) {
                  // Handle failure 
                      System.out.println("FAILURE");
                  } else {
                         mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), mConsumeFinishedListener);
                  }
            }
        };

如果您需要更多代码或信息,请给我一个标志。

0 个答案:

没有答案