サーバからクライアントトークンを取得していますが、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でのブレーントリーの統合と完全に新しいです。 問題は何ですか。そこはどこですか?他に何か提案してください。