cordova - Braintree 集成 - 用户信用卡详细信息仅一次

标签 cordova paypal braintree

我们正在开发一个类似于 Uber 的 cordova 应用程序。 工作流程很简单:用户请求服务,分配一名员工,工作完成后,向用户收取小时数费用。

我让服务器从 Braintree 生成客户端 token

    $clientToken = Braintree_ClientToken::generate();

并且可以要求用户在第一次请求时仅输入一次信用卡详细信息,之后我创建一个 Braintree_customer 对象

$result = Braintree_Customer::create(array(
                            'paymentMethodNonce' => $payment_token
                        ));

并将 token 存储在我的数据库中。

    $payment = new Payment;
    $payment->owner_id = $owner_id;
    $payment->customer_id = $customer_id;
    $payment->last_four = $last_four;
    $payment->card_token = $result->customer->creditCards[0]->token;
    $payment->save();

我可以使用该客户 ID 进行所有后续交易吗?

Braintree_Transaction::sale(array(
                            'amount' => $total,
                            'paymentMethodNonce' => $customer_id
                            ));

在这种情况下,我们希望用户只输入一次银行卡详细信息,下次他创建另一个请求时,即使在一个月左右的时间后,我们也应该能够向他收取费用,而无需他输入银行卡详细信息。

我可以得到一个简单的工作流程来说明如何实现这一点以及示例(如果有)吗?

最佳答案

您似乎希望使用 Transaction.sale 的 paymentMethodToken 键,并以该 token 字符串作为值,向特定客户存储的付款方式收费。

result = braintree.Transaction.sale({
    'amount' => $total,
    'paymentMethodToken' => 'token_string'
})

因此,对于所有后续交易,您需要使用 paymentMethodToken 并传入该 token 字符串,而不是传入客户 ID。

关于cordova - Braintree 集成 - 用户信用卡详细信息仅一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41248093/

相关文章:

php - Braintree API 在 PHP 中的成功和货币问题

ios - PhoneGap 1.5(Cordova)+ ChildBrowser白名单问题

ios - 初始化推送通知时 ionic 的奇怪内存泄漏导致卡住

ios - Apache Cordova - 不要构建 i386 架构

paypal - 如何使用 Paypal 生成唯一的支付 URL?

paypal - ColdFusion9 : Can't connect to PayPal Sandbox (classic NVP)

android - 在 cordova 2.0 中使用 FileTransfer-plugin 时出现 EPIPE(破管)错误

python - 需要帮助将 Paypal API 返回 URL 与 django 中的正则表达式匹配

php - PHP 中的 Braintree API - 强制交易货币

Xcode 9 的 Braintree 错误