简体   繁体   中英

Testing Android Market in-app billing with dummy credit card credentials

I have configured an Android application to use the in-app billing module as documented at: http://developer.android.com/guide/market/billing/index.html

It works fine when tested using the UK development team's accounts which have real credit cards associated with them. However, part of my development team is based in China, and as Google Billing does not operate in China, they are unable to test the billing functionality.

Understandably the team is uncomfortable sharing personal card details, or personal account information with others. Does anybody know a work around for this? While in testing, can dummy card numbers be associated with the account?

I know this works in the merchant sandbox ( http://code.google.com/apis/checkout/developer/Google_Checkout_Basic_HTML_Sandbox.html ) but I can't seem to find an equivalent for Android billing testing.

Any help/guidance/support would be appreciated here. The China team is focused on a lot of the modules related to the post-purchase experience and this will be seriously compromised if we cannot find a workaround.

Thanks!


Update:
Inappbilling library 1.0 just released to make this easier.


Kumar Bibek has already answerd above: Still I am giving an explanation:

Hardcode the following debug options in the launch purchase flow to get the desired output.

  • android.test.purchased
  • android.test.canceled
  • android.test.refunded
  • android.test.item_unavailable*

    mHelper.launchPurchaseFlow(Activity.this, "android.test.purchased", 1000, mPurchaseFinishedListener, payload);

The above will give these screens:

在此处输入图像描述

On clicking Buy.

在此处输入图像描述

  • android.test.purchased
  • android.test.canceled
  • android.test.refunded
  • android.test.item_unavailable

Use these product IDs and you should get a fake card prompt in the purchase screen.

Reference:
https://developer.android.com/google/play/billing/billing_testing.html#billing-testing-static

In order to close this thread - the solution that I eventually wound up deploying was one provided by TEK. I procured some prepaid credit cards and attached them to test accounts. It mitigated risk and allowed for our developers to use the accounts.

I should point out that the developers in China also had to VPN out of China in order to pull the market billing dialog up.

iPhone developers/users do not have the VPN problem at all.

Thanks, Kaiesh

As answered above by other fellows I was able to do testing of the application by launching this peace of code in my activity

 public class PurchaseTestingActivity extends AppCompatActivtiy implements BillingProcessor.IBillingHandler {

    ........
  purchaseButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            boolean isAvailable = BillingProcessor.isIabServiceAvailable(PrivateAndPublicCardHoldScreen.this);
            if (isAvailable) {
                       BillingProcessor bp = new BillingProcessor(this, "YOUR LICENSE KEY FOR THIS APPLICATION", this);
             /// this is the actually product 
//                    bp.purchase(PrivateAndPublicCardHoldScreen.this, "upgrade_to_premium");

      //// for testing purposes  
                bp.purchase(PrivateAndPublicCardHoldScreen.this, "android.test.purchased");
            }else{
                Toast.makeText(PrivateAndPublicCardHoldScreen.this, "Your device is not supported, please contact us.", Toast.LENGTH_LONG).show();
            }
        }
    });

  ..........

   @Override
public void onProductPurchased(String productId, TransactionDetails details) {
    /// handle your app after purchases done

}

@Override
public void onPurchaseHistoryRestored() {

}

@Override
public void onBillingError(int errorCode, Throwable error) {

}

@Override
public void onBillingInitialized() {

}


 }

PS: I have used this library for Implementation of In App purchases A lightweight implementation of Android In-app Billing Version 3

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM