web-dev-qa-db-ja.com

テストAndroidダミーのクレジットカード認証情報を使用したアプリ内課金

次の場所に記載されているように、アプリ内課金モジュールを使用するようにAndroidアプリケーションを構成しました: http://developer.Android.com/guide/market/billing/index.html

実際のクレジットカードが関連付けられている英国の開発チームのアカウントを使用してテストすると、正常に機能します。ただし、私の開発チームの一部は中国に拠点を置いており、Google Billingは中国で運営されていないため、請求機能をテストできません。

当然のことながら、チームは個人カードの詳細や個人アカウント情報を他の人と共有することに不快感を覚えています。誰かがこれの回避策を知っていますか?テスト中に、ダミーのカード番号をアカウントに関連付けることはできますか?

これがマーチャントサンドボックス( http://code.google.com/apis/checkout/developer/Google_Checkout_Basic_HTML_Sandbox.html )で機能することは知っていますが、Android課金テスト。

ヘルプ/ガイダンス/サポートはここでいただければ幸いです。中国チームは、購入後の経験に関連する多くのモジュールに焦点を当てており、回避策が見つからない場合、これは深刻な危険にさらされます。

ありがとう!

24
Kaiesh

このスレッドを閉じるために、私が最終的に展開することになったソリューションは、TEKによって提供されたものでした。プリペイドクレジットカードをいくつか調達し、テストアカウントに添付しました。これによりリスクが軽減され、開発者がアカウントを使用できるようになりました。

中国の開発者も、市場請求ダイアログを引き上げるために、中国からVPNを使用する必要があったことを指摘しておく必要があります。

iPhoneの開発者/ユーザーはVPNの問題をまったく抱えていません。

ありがとう、カイッシュ

2
Kaiesh

更新:
ライブラリ1.0を適用しない これを簡単にするためにリリースされました。


Kumar Bibekはすでに上記の回答をしています:それでも私は説明をしています:

次のデバッグオプションを起動購入フローにハードコーディングして、目的の出力を取得します。

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

    mHelper.launchPurchaseFlow(Activity.this、 "Android.test.purchased"、1000、mPurchaseFinishedListener、ペイロード);

上記はこれらの画面を提供します:

enter image description here

[購入]をクリックすると。

enter image description here

9
amalBit
  • Android.test.purchased
  • Android.test.canceled
  • Android.test.refunded
  • Android.test.item_unavailable

これらの製品IDを使用すると、購入画面に偽のカードプロンプトが表示されます。

参照:
https://developer.Android.com/google/play/billing/billing_testing.html#billing-testing-static

5
Kumar Bibek

他の仲間が上で答えたように、私は自分の活動でこのコードの平和を起動することによってアプリケーションのテストを行うことができました

 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:私はこのライブラリをアプリ内購入の実装に使用しました Androidアプリ内請求バージョン の軽量実装

1
Muhammad Adil