我们在我们的应用程序中使用 Braintree SDK 和 PayPal,使用户能够进行应用程序内购买。不幸的是,我们无法使用 Braintree 从 PayPal 付款信息或用户输入的信用卡信息创建随机数。
以下是我们具体实现的一些背景:
我们通过以下方式使用我们的客户端令牌初始化 Braintree 对象:
Braintree braintree = Braintree.getInstance(context, token);
Run Code Online (Sandbox Code Playgroud)
我们还为实现 Braintree.PaymentMethodNonceListener 的 Fragment 设置了 Braintree 侦听器。在 activityCreated() 上,我们使用上述代码初始化 Braintree 对象。onPause() 我们删除了监听器,而 onResume() 我们添加了监听器。
在应用程序中,我们允许用户通过 PayPal 或信用卡付款。
如果用户选择使用 PayPal,我们会使用唯一的请求代码启动 PayPal 活动的意图。使用以下代码块,我们收到来自 PayPal 活动完成的响应。
@Override
public void onActivityResult(int requestCode, int responseCode, Intent data) {
if (requestCode == PAYPAL_REQUEST_CODE) {
if (responseCode == FragmentActivity.RESULT_OK) {
braintree.finishPayWithPayPal(getActivity(), responseCode, data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据此处看到的 Braintree SDK 文档,
此外,我们为用户提供了输入信用卡信息的能力,然后我们用它来构造一个 CardBuilder 对象,该对象通过“tokenize”方法传递给 Braintree 对象,如下面的代码片段所示:
CardBuilder cardBuilder …Run Code Online (Sandbox Code Playgroud)