微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android-在Braintree中存储和检索借记卡和信用卡详细信息

我正在使用Braintree的v2嵌入式ui android进行支付,我的后端服务器在node.js中.我已经成功实现了付款部分,但是现在我需要存储卡的详细信息,并从存储的借记卡/信用卡或贝宝帐户中自动扣除金额.

我正在生成客户端令牌并将该令牌存储在数据库中.使用该令牌,我生成随机数.然后,我将现时值发送到后端服务器进行transaction.sale().

这是付款部分的代码片段

if (!TextUtils.isEmpty(braintreeClientToken)) {
    DropInRequest dropInRequest = new DropInRequest()
                    .clientToken(braintreeClientToken);
    startActivityForResult(dropInRequest.getIntent(this), REQUEST_CODE);
}

OnActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
            PaymentMethodNonce paymentMethodNonce = result.getPaymentMethodNonce();
            String nonce = "";
            if (paymentMethodNonce != null)
                nonce = paymentMethodNonce.getNonce();
            // use the result to update your UI and send the payment method nonce to your server
            if (!TextUtils.isEmpty(nonce)) {
                NonceRequest obj = new NonceRequest("ANDROID", "1",
                            "DRIVER-SAVE-PAYMENT", "1", nonce);
                Call<NonceResponse> call = RestService.getInstance().restInterface.sendNoncetoServer(userId, userToken, obj);
                    call.enqueue(new Callback<NonceResponse>() {
                    @Override
                    public void onResponse(Call<NonceResponse> call, Response<NonceResponse> response) {

                    }

                    @Override
                    public void onFailure(Call<NonceResponse> call, Throwable t) {

                    }
                });
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            // the user canceled
        } else {
            // handle errors here, an exception may be available in
            Exception error = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
        }
    }
}

有人能告诉我存储信用卡/借记卡或贝宝帐户详细信息并从该存储的付款方式生成随机数的步骤吗?

解决方法:

全面披露:我在Braintree工作.如有其他疑问,请随时联系support

您要完成的大部分工作都是在服务器端进行更改.如果要存储卡,则可以传递到选项参数storeInVaultOnSuccess,该参数将成功保存该卡并使用该卡创建关联的客户.否则,您也可以将该随机数传递给PaymentMethod.Create呼叫.如果这些调用成功,将为这些卡创建令牌,然后您将可以重复使用这些令牌.基于您所说的事实,您想“自动扣除金额”,我想您可能想使用该令牌设置订阅.为此,您需要创建plan,它是控制面板中订阅的模板.然后,您想要使用创建的存储令牌实际创建subscription.如果您希望这些保存的卡显示在Drop-in中供客户选择,则需要将customer_id传递到ClientToken.generate调用中.这将允许客户从他们的列表中选择存储的卡,然后在Drop-in中重复使用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐