首页 文章

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

提问于
浏览
2

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

我有服务器从braintree生成客户端令牌

$clientToken = Braintree_ClientToken::generate();

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

$result = Braintree_Customer::create(array(
                            'paymentMethodNonce' => $payment_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
                            ));

在这种情况下,我们希望用户只输入一次他的卡片详细信息,并且下次他创建另一个请求,即使在一个月左右之后,我们应该能够在不必输入他的卡片详细信息的情况下向他收费 .

我可以获得一个简单的工作流程,了解我们如何实现这个和示例,如果有的话?

1 回答

  • 2

    看起来您想要使用_startstale的 paymentMethodToken 键,以该标记字符串作为值,为特定客户的存储付款方式收费 .

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

    因此,对于所有后续事务,您可能希望使用paymentMethodToken并传入该令牌字符串,而不是传入客户ID .

相关问题