braintree集成导致Android问题

前端之家收集整理的这篇文章主要介绍了braintree集成导致Android问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从服务器获取客户端令牌,但是当调用设置BraintreeFramgent时,它会说Tokenization Key或客户端令牌无效.

之后如果我点击按钮然后OnActivityResult考虑RESULT_CANCELED并显示对话框.

下面的代码

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

java文件

  1. String clientToken;
  2. private BraintreeFragment mBraintreeFragment;
  3. private String mNonce;

在OnCreate

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.main);
  5.  
  6. // Warning,signature verification is disabled for this demo only,you should never
  7. // do this as it opens a security hole
  8. PayPalSignatureVerification.disableAppSwitchSignatureVerification();
  9.  
  10.  
  11. clienttoken();
  12. }

clienttoken()

  1. public void clienttoken() {
  2. AsyncHttpClient client = new AsyncHttpClient();
  3. client.get("http://......&action=clientToken",new TextHttpResponseHandler() {
  4. @Override
  5. public void onFailure(int statusCode,Header[] headers,String responseString,Throwable throwable) {
  6. }
  7.  
  8. @Override
  9. public void onSuccess(int statusCode,String responseString) {
  10. clientToken = responseString;
  11. setup();
  12. //Toast.makeText(MainActivity.this,clientToken,Toast.LENGTH_LONG).show();
  13. }
  14. });
  15. }

建立()

  1. private void setup() {
  2. try {
  3.  
  4. mBraintreeFragment = BraintreeFragment.newInstance(this,clientToken);
  5.  
  6. } catch (InvalidArgumentException e) {
  7. showDialog(e.getMessage());
  8. }
  9. }

按钮单击

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

onBraintreeSubmit()

  1. public PaymentRequest onBraintreeSubmit() {
  2. PaymentRequest paymentRequest = new PaymentRequest()
  3. .clientToken(clientToken)
  4. .primaryDescription(getString(R.string.cart))
  5. .secondaryDescription("1 Item")
  6. .amount("$1.00")
  7. .submitButtonText(getString(R.string.buy));
  8.  
  9. return paymentRequest;
  10. }

onActivityResult

  1. @Override
  2. public void onActivityResult(int requestCode,int resultCode,Intent data) {
  3. super.onActivityResult(requestCode,resultCode,data);
  4.  
  5.  
  6.  
  7. if (resultCode == Activity.RESULT_OK) {
  8. PaymentMethodNonce paymentMethodNonce =
  9. data.getParcelableExtra(BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE);
  10.  
  11. if (Settings.isThreeDSecureEnabled(this)) {
  12. mLoading = ProgressDialog.show(this,getString(R.string.loading),true,false);
  13. ThreeDSecure.performVerification(mBraintreeFragment,mNonce,"1");
  14. } else {
  15. mCreateTransactionButton.setEnabled(true);
  16. }
  17. } else if (resultCode != RESULT_CANCELED) {
  18. safelyCloseLoadingView();
  19. showDialog(data.getStringExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE));
  20. }
  21. }

我对Android中的Braintree集成是全新的.
问题是什么我哪里错了?或者还有什么建议.

解决方法

完全披露:我在Braintree工作.

您收到的警告表明您生成的客户端令牌可能不正确.使用here给出的示例有效客户端令牌测试您的集成.如果可行,请检查以确保您正在使用的Braintree网关(沙箱或生产)的API密钥已在项目中正确设置.您可以通过选择帐户>从Braintree控制面板中找到您的API密钥.我的用户>查看API密钥.不要在Stack Overflow上发布API密钥.如果您仍然无法集成或有任何疑问,请联系Braintree support.

猜你在找的Android相关文章