onActivityResult: resultCode 总是 returns 2

onActivityResult: resultCode always returns 2

我正在尝试将 BrainTree 集成到我的应用程序中,但我在使用 startActivityForResult()onActivityResult() 时遇到了一些问题。我已经正确检索了一个 clientToken,但由于某种原因,我总是在 onActivityResult 中收到 2 的 resultCode。此外,我还在我的日志中得到这个:

I/art: Rejecting re-init on previously-failed class java.lang.Class

知道发生了什么事吗?以下是我的一些代码片段,希望对您有所帮助:

这是我片段中的 onClick 方法。

void onPaymentClick() {
   PaymentRequest paymentRequest = new PaymentRequest().clientToken("<client_token>");
        getActivity().startActivityForResult(paymentRequest.getIntent(storeOrderActivity), 1);
    }
}

这是我 activity 中的 onActivityResult 代码。 (PostOrder 是应该 运行 一旦 Braintree 将随机数发回给我的函数,但这甚至 运行 因为我得到的 resultCode 为 2 )

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if (resultCode == Activity.RESULT_OK) {
            PaymentMethodNonce paymentMethodNonce = data.getParcelableExtra(
                    BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE
            );
            PostOrder.postOrder(this, fabCartAdapter.getCart(), paymentMethodNonce.getNonce());
        }
    }
}

resultCode==2 保留给 BRAINTREE_RESULT_DEVELOPER_ERROR:

The payment method flow halted due to a resolvable error (authentication, authorization, SDK upgrade required). The reason for the error will be returned in a future release.

可能您需要仔细检查 SDK 是否设置正确。