2016-01-04 31 views
7

サーバからクライアントトークンを取得していますが、BraintreeFramgentを呼び出すときにトークンキーまたはクライアントトークンが無効です。braintree統合が問題を引き起こしています。

ボタンをクリックした後、OnActivityResult RESULT_CANCELEDを検討し、ダイアログを表示します。コード以下

compile 'com.braintreepayments.api:braintree:2.+' 

compile 'com.braintreepayments.api:drop-in:2.+' 

javaファイルのOnCreate

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

     // Warning, signature verification is disabled for this demo only, you should never 
     // do this as it opens a security hole 
     PayPalSignatureVerification.disableAppSwitchSignatureVerification(); 


     clienttoken(); 
    } 

String clientToken; 
private BraintreeFragment mBraintreeFragment; 
private String mNonce; 

clienttoken()

public void clienttoken() { 
     AsyncHttpClient client = new AsyncHttpClient(); 
     client.get("http://......&action=clientToken", new TextHttpResponseHandler() { 
      @Override 
      public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { 
      } 

      @Override 
      public void onSuccess(int statusCode, Header[] headers, String responseString) { 
       clientToken = responseString; 
       setup(); 
       //Toast.makeText(MainActivity.this, clientToken, Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 

セットアップ()

private void setup() { 
     try { 

      mBraintreeFragment = BraintreeFragment.newInstance(this, clientToken); 

     } catch (InvalidArgumentException e) { 
      showDialog(e.getMessage()); 
     } 
    } 

ボタン

public void launchDropIn(View v) { 
     startActivityForResult(onBraintreeSubmit().getIntent(this), DROP_IN_REQUEST); 
    } 

onBraintreeSubmitを(クリック)

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 



     if (resultCode == Activity.RESULT_OK) { 
      PaymentMethodNonce paymentMethodNonce = 
        data.getParcelableExtra(BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE); 

      if (Settings.isThreeDSecureEnabled(this)) { 
       mLoading = ProgressDialog.show(this, getString(R.string.loading), 
         getString(R.string.loading), true, false); 
       ThreeDSecure.performVerification(mBraintreeFragment, mNonce, "1"); 
      } else { 
       mCreateTransactionButton.setEnabled(true); 
      } 
     } else if (resultCode != RESULT_CANCELED) { 
      safelyCloseLoadingView(); 
      showDialog(data.getStringExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE)); 
     } 
    } 

onActivityResult

public PaymentRequest onBraintreeSubmit() { 
     PaymentRequest paymentRequest = new PaymentRequest() 
       .clientToken(clientToken) 
       .primaryDescription(getString(R.string.cart)) 
       .secondaryDescription("1 Item") 
       .amount("$1.00") 
       .submitButtonText(getString(R.string.buy)); 

     return paymentRequest; 
    } 

私は、Androidでのブレーントリーの統合と完全に新しいです。 問題は何ですか。そこはどこですか?他に何か提案してください。

答えて

2

全開示:私はブレーントリーで働いています。

生成したクライアントトークンが間違っている可能性があるという警告が表示されます。 hereと指定されたサンプルの有効なクライアントトークンとの統合をテストします。それが機能する場合は、使用しているBraintreeゲートウェイ(サンドボックスまたはプロダクション)のAPIキーがプロジェクトで正しく設定されていることを確認してください。アカウント>マイユーザ> APIキーの表示を選択することで、BraintreeのコントロールパネルからAPIキーを見つけることができます。 Stack OverflowにAPIキーを投稿しないでください。まだ統合に問題がある場合やその他のご質問がある場合は、Braintree supportまでお問い合わせください。

関連する問題