我有几个问题:
我可以存储信用卡/ Paypal 方式进行销售,同时防止重复吗?或者,在使用storeInVaultOnSuccess时,重复项只会产生错误。 “重复方法”错误会导致销售失败吗?
我可以使用 Braintree_Transaction::sale 创建客户吗? “重复客户”错误会导致销售失败吗?
有没有办法结合起来对 paymentMethodNonce 和 paymentMethodToken 进行“非此即彼”?
最后是安全问题。 Braintree 是否确保客户的 paymenthMethodToken 与销售的 customerId 匹配?为了确保一个客户方法的 token 不能用于完成另一客户的销售。
if($paymentMethodNonce){
if($save){
$create=Braintree_PaymentMethod::create([
"customerId"=>$customerId,
"paymentMethodNonce"=>$paymentMethodNonce,
"options"=>["failOnDuplicatePaymentMethod"=>true]
]);
}
$sale=Braintree_Transaction::sale([
"amount"=>$cost,
"paymentMethodNonce"=>$paymentMethodNonce,
"customerId"=>$customerId
]);
}
else if($paymentMethodToken){
$sale=Braintree_Transaction::sale([
"amount"=>$cost,
"paymentMethodToken"=>$paymentMethodToken,
"customerId"=>$customerId
]);
}
最佳答案
为了回答您的最后一个问题,如果您在创建销售时同时包含 paymentMethodToken
和 customerId
,我们要求 paymentMethodToken
属于发送给所提供的 customerId
指定的客户。如果它不属于指定的客户,我们会抛出 Transaction Error代码为 91516
(不能同时提供 payment_method_token 和 customer_id,除非 payment_method 属于客户)。
关于php - Braintree 交易销售存储在金库中并正确使用随机数和 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332147/