我从服务器获取客户端令牌,但是当调用设置BraintreeFramgent时,它会说Tokenization Key或客户端令牌无效.
之后如果我点击按钮然后OnActivityResult考虑RESULT_CANCELED并显示对话框.
下面的代码
compile 'com.braintreepayments.api:braintree:2.+' compile 'com.braintreepayments.api:drop-in:2.+'
java文件
String clientToken; private BraintreeFragment mBraintreeFragment; private String mNonce;
在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(); }
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,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()
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; }
onActivityResult
@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),true,false); ThreeDSecure.performVerification(mBraintreeFragment,mNonce,"1"); } else { mCreateTransactionButton.setEnabled(true); } } else if (resultCode != RESULT_CANCELED) { safelyCloseLoadingView(); showDialog(data.getStringExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE)); } }
我对Android中的Braintree集成是全新的.
问题是什么我哪里错了?或者还有什么建议.