我们正在开发一种类似于Uber的cordova应用程序。 工作流程很简单:在完成工作后,分配一个服务的用户请求,向用户收取数小时的费用。
我让服务器从braintree
生成客户端令牌names(lst) <- (ls(pattern = "^listdata"))
lst <- as.list((ls(pattern = "^listdata")))
for (i in nam) {
write.table(i, file = paste(i, ".txt", sep = ""), col.names= TRUE, sep = "\t")
}
并且可以要求用户仅在第一次请求时输入他的信用卡详细信息,之后我创建一个Braintree_customer对象
$clientToken = Braintree_ClientToken::generate();
并将令牌存储在我的数据库中。
$result = Braintree_Customer::create(array(
'paymentMethodNonce' => $payment_token
));
我可以将此客户ID用于所有后续交易吗?
$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();
在这种情况下,我们希望用户只输入一次他的卡片详细信息,并且下次他在一个月左右之后创建另一个请求时,我们应该能够在不必输入卡片详细信息的情况下向他开账单。 / p>
我可以获得一个简单的工作流程,了解我们如何实现这个和示例,如果有的话?
答案 0 :(得分:2)
您似乎希望使用带有该令牌字符串作为值的Transaction.sale的 paymentMethodToken 键来为特定客户的存储付款方式收费。
result = braintree.Transaction.sale({
'amount' => $total,
'paymentMethodToken' => 'token_string'
})
因此,对于所有后续事务,您可能希望使用paymentMethodToken并传入该令牌字符串,而不是传入客户ID。