Braintree Transaction Sale 存储在 valult 中并正确使用 nonce 和 token
Braintree Transaction Sale storing in valult and proper use of nonce and token
我有几个问题:
我可以在销售中存储信用 card/paypal 方法同时防止重复吗?或者在使用 storeInVaultOnSuccess 时重复只会产生错误。 "duplicate method" 错误会导致销售失败吗?
我可以使用 Braintree_Transaction::sale 创建客户吗? "duplicate customer" 错误会导致销售失败吗?
有没有办法结合起来为 paymentMethodNonce 和 paymentMethodToken 做一个 "either/or"?
最后一个安全问题。 Braintree 是否确保客户的 paymenthMethodToken 与销售的 customerId 匹配?确保一个客户方法的令牌不能用于完成另一个客户的销售。
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
]);
}
您可以在销售交易中创建客户和付款方式,但它们确实会在重复项上产生错误,从而导致销售失败。最好的方法就是创建并忽略错误
$create_customer=Braintree_Customer::create([
"id"=>$id,
]);
$create_payment_method=Braintree_PaymentMethod::create([
"customerId"=>$login,
"paymentMethodNonce"=>$method
]);
接下来,paymentMethodNonce和paymentMethodToken结合的唯一方法就是根据正在处理的来切换。
$TokenOrNonceType="paymentMethodToken"; or $TokenOrNonceType="paymentMethodNonce";
$sale=Braintree_Transaction::sale([
"amount"=>$cost,
$TokenOrNonceType=>$TokenOrNonce,
"customerId"=>$customerId
]);
最后,最后一个问题我还是不太确定。 Braintree 是否确保客户的 paymenthMethodToken 与销售的 customerId 匹配?确保一个客户方法的令牌不能用于完成另一个客户的销售。谢谢
为了回答您的最后一个问题,如果您在创建销售时同时包含 paymentMethodToken
和 customerId
,我们要求 paymentMethodToken
属于所提供的指定客户customerId
。如果它不属于指定的客户,我们将抛出代码为 91516
的 Transaction Error(不能同时提供 payment_method_token 和 customer_id,除非 payment_method 属于客户)。
我有几个问题:
我可以在销售中存储信用 card/paypal 方法同时防止重复吗?或者在使用 storeInVaultOnSuccess 时重复只会产生错误。 "duplicate method" 错误会导致销售失败吗?
我可以使用 Braintree_Transaction::sale 创建客户吗? "duplicate customer" 错误会导致销售失败吗?
有没有办法结合起来为 paymentMethodNonce 和 paymentMethodToken 做一个 "either/or"?
最后一个安全问题。 Braintree 是否确保客户的 paymenthMethodToken 与销售的 customerId 匹配?确保一个客户方法的令牌不能用于完成另一个客户的销售。
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
]);
}
您可以在销售交易中创建客户和付款方式,但它们确实会在重复项上产生错误,从而导致销售失败。最好的方法就是创建并忽略错误
$create_customer=Braintree_Customer::create([
"id"=>$id,
]);
$create_payment_method=Braintree_PaymentMethod::create([
"customerId"=>$login,
"paymentMethodNonce"=>$method
]);
接下来,paymentMethodNonce和paymentMethodToken结合的唯一方法就是根据正在处理的来切换。
$TokenOrNonceType="paymentMethodToken"; or $TokenOrNonceType="paymentMethodNonce";
$sale=Braintree_Transaction::sale([
"amount"=>$cost,
$TokenOrNonceType=>$TokenOrNonce,
"customerId"=>$customerId
]);
最后,最后一个问题我还是不太确定。 Braintree 是否确保客户的 paymenthMethodToken 与销售的 customerId 匹配?确保一个客户方法的令牌不能用于完成另一个客户的销售。谢谢
为了回答您的最后一个问题,如果您在创建销售时同时包含 paymentMethodToken
和 customerId
,我们要求 paymentMethodToken
属于所提供的指定客户customerId
。如果它不属于指定的客户,我们将抛出代码为 91516
的 Transaction Error(不能同时提供 payment_method_token 和 customer_id,除非 payment_method 属于客户)。