2014-07-26 104 views
0

我想在我的Android應用程序中將應用程序結算集成。我正在使用版本3 apis。爲此,我創建了一個被管理產品。使用In app billing進行測試「付款選項」

我跟隨此tutorial。以下是我的代碼。

IabHelper mHelper; 
final String BONUS_BUDGET = "bonus_budget"; 

Button purchaseButton; 
String applePrice, skuID; 


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

    purchaseButton = (Button) findViewById(R.id.login_button); 

    String base64EncodedPublicKey = "MY BASE64 KEY"; 

    MyLog.e(TAG, "onCreate"); 

    mHelper = new IabHelper(this, base64EncodedPublicKey); 

    final IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() { 
     public void onQueryInventoryFinished(IabResult result, 
       Inventory inventory) { 
      if (result.isFailure()) { 
       // handle error 
       return; 
      } else { 
       Log.e(TAG, 
         "result : " + result.getResponse() 
           + result.getMessage()); 
      } 

      try { 
       if (inventory == null) { 
        Toast.makeText(FC_FantasyCricketLoginActivity.this, 
          "Inventory is null", Toast.LENGTH_LONG).show(); 
       } else { 
        Toast.makeText(
          FC_FantasyCricketLoginActivity.this, 
          inventory.getSkuDetails(BONUS_BUDGET) 
            .getPrice().toString(), 
          Toast.LENGTH_LONG).show(); 
       } 
      } catch (Exception e) { 
       Toast.makeText(FC_FantasyCricketLoginActivity.this, 
         "inventory catch block", Toast.LENGTH_LONG).show(); 
      } 

      // Toast.makeText(FC_FantasyCricketLoginActivity.this, "", 
      // duration) 
      // Log.e(TAG, 
      // "Inventory :" + inventory.getSkuDetails(BONUS_BUDGET).); 
      // 
      // applePrice = 
      // inventory.getSkuDetails(BONUS_BUDGET).getPrice(); 
      // skuID = inventory.getSkuDetails(BONUS_BUDGET).getSku(); 

      // update the UI 
     } 
    }; 

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 

     @Override 
     public void onIabSetupFinished(IabResult result) { 

      if (result.isSuccess()) { 
       Log.e(TAG, "Successfully set up in app billing"); 

       List<String> additionalSkuList = new ArrayList<String>(); 
       additionalSkuList.add(BONUS_BUDGET); 

       Log.e(TAG, "Size of list" 
         + additionalSkuList.get(0).toString()); 

       mHelper.queryInventoryAsync(true, additionalSkuList, 
         mQueryFinishedListener); 

      } else { 
       Log.e(TAG, 
         "Problem in setting of in app billing " 
           + result.toString()); 
      } 

     } 
    }); 

    final IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { 
     public void onIabPurchaseFinished(IabResult result, 
       Purchase purchase) { 
      if (result.isFailure()) { 
       Log.d(TAG, "Error purchasing: " + result); 
       return; 
      } else if (purchase.getSku().equals(skuID)) { 

       Log.e(TAG, 
         "Purchase done time:" 
           + String.valueOf(purchase.getPurchaseTime()) 
           + "SKU id : " + purchase.getSku()); 
      } 
     } 
    }; 

    purchaseButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      mHelper.launchPurchaseFlow(FC_FantasyCricketLoginActivity.this, 
        skuID, 10001, mPurchaseFinishedListener, 
        "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); 

     } 
    }); 

} 

它顯示產品並顯示它處於測試模式。但在此之後,它顯示Payment Options。我需要添加我的實際帳戶嗎?還是有沒有一種方法可以在不添加實際帳戶的情況下進行測試?

+0

創建一個測試帳戶,並對其進行測試。 – Max

+0

我可以添加測試電子郵件地址,但是如何添加測試帳戶? – keen

回答

0

您需要一個「真實」的帳戶才能在Android上的app-billing中進行測試。 此帳戶必須與您用於開發者控制檯的帳戶不同。 您必須輸入有效的信用卡信息。 然後將此帳戶添加到測試訪問帳戶中。 (開發人員控制檯 - >設置 - >帳戶詳細信息 - >具有測試訪問權的Gmail帳戶)

當您使用帳戶購買商品時,該帳戶通過Google Checkout結算,並且您的Google Checkout商家帳戶收到該購買的支付。因此,您可能想要退還使用該帳戶進行的購買交易(轉到Google Checkout,選擇要退款的訂單,然後點擊取消整個訂單),否則購買將顯示爲您的商家帳戶的實際支出。從谷歌網站

報價:

測試購買是真實的訂單和谷歌播放處理他們在 一如其他訂單。購買完成後,Google Play 可阻止訂單進行財務處理,確保 對用戶帳戶沒有實際費用,並自動在12天后取消完成的訂單。

鏈接:http://developer.android.com/google/play/billing/billing_testing.html