PHP Braintree - 在不使用订阅的情况下使用循环计费创建流程
PHP Braintree - create flow with Recurring Billing without using Subscriptions
我不想创建订阅,但仍然能够在我的 SaaS 软件中使用定期计费方法:
- 注册付费计划
- 应用交易销售功能
- 创建 braintree 客户
- 在数据库中保存支付方式令牌
- 在下个月(任何时候)使用支付方式令牌创建新的交易销售
所有这些都没有订阅功能。 Braintree 允许吗?
目前我遇到了以下问题:
- 用户注册付费计划
- 使用 Nonce 值执行交易销售
- 我尝试使用相同的 Nonce 在 Braintree 中创建客户,但出现错误“无法多次使用 payment_method_nonce”
错误是有道理的,但我如何将当前用户注册与 braintree 中创建的客户匹配,以便稍后使用支付方式令牌重新使用交易销售?
https://developer.paypal.com/braintree/docs/guides/customers#create-with-payment-method
// After the Transaction Sale is executed with success I try this:
$result = $gateway->customer()->create(
[
'firstName' => $customer['name'],
'company' => $customer['company'],
'email' => $customer['email'],
'paymentMethodNonce' => $customer['payment_method_nonce']
]);
这将 return 付款方式令牌,我将能够像这样保存在数据库中:
$db->braintree_customer_id = $braintreeCustomer->customer->id;
$db->braintree_payment_token = $braintreeCustomer->customer->paymentMethods[0]->token;
$db->save();
下个月,我的软件将能够使用以下方式执行付款:
$result = $gateway->transaction()->sale(
[
'amount' => $price,
'paymentMethodToken' => $token, // <--- saved in DB
'options' =>
[
'submitForSettlement' => true
]
]);
已解决.
这个问题的答案“所有这些都没有订阅功能。Braintree 允许吗?”是的。
关于错误“不能多次使用 payment_method_nonce”,我必须首先使用随机数创建客户,然后使用令牌执行销售。
$result = $gateway->customer()->create(
[
'firstName' => $customer['name'],
'company' => $customer['company'],
'email' => $customer['email'],
'paymentMethodNonce' => $customer['payment_method_nonce']
]);
// We now execute the payment with the token returned
$braintree->executePayment($result->customer->paymentMethods[0]->token, $total);
由于我将令牌保存在数据库中,因此我可以在下个月随时再次执行付款,而无需用户干预。
我不想创建订阅,但仍然能够在我的 SaaS 软件中使用定期计费方法:
- 注册付费计划
- 应用交易销售功能
- 创建 braintree 客户
- 在数据库中保存支付方式令牌
- 在下个月(任何时候)使用支付方式令牌创建新的交易销售
所有这些都没有订阅功能。 Braintree 允许吗?
目前我遇到了以下问题:
- 用户注册付费计划
- 使用 Nonce 值执行交易销售
- 我尝试使用相同的 Nonce 在 Braintree 中创建客户,但出现错误“无法多次使用 payment_method_nonce”
错误是有道理的,但我如何将当前用户注册与 braintree 中创建的客户匹配,以便稍后使用支付方式令牌重新使用交易销售?
https://developer.paypal.com/braintree/docs/guides/customers#create-with-payment-method
// After the Transaction Sale is executed with success I try this:
$result = $gateway->customer()->create(
[
'firstName' => $customer['name'],
'company' => $customer['company'],
'email' => $customer['email'],
'paymentMethodNonce' => $customer['payment_method_nonce']
]);
这将 return 付款方式令牌,我将能够像这样保存在数据库中:
$db->braintree_customer_id = $braintreeCustomer->customer->id;
$db->braintree_payment_token = $braintreeCustomer->customer->paymentMethods[0]->token;
$db->save();
下个月,我的软件将能够使用以下方式执行付款:
$result = $gateway->transaction()->sale(
[
'amount' => $price,
'paymentMethodToken' => $token, // <--- saved in DB
'options' =>
[
'submitForSettlement' => true
]
]);
已解决.
这个问题的答案“所有这些都没有订阅功能。Braintree 允许吗?”是的。
关于错误“不能多次使用 payment_method_nonce”,我必须首先使用随机数创建客户,然后使用令牌执行销售。
$result = $gateway->customer()->create(
[
'firstName' => $customer['name'],
'company' => $customer['company'],
'email' => $customer['email'],
'paymentMethodNonce' => $customer['payment_method_nonce']
]);
// We now execute the payment with the token returned
$braintree->executePayment($result->customer->paymentMethods[0]->token, $total);
由于我将令牌保存在数据库中,因此我可以在下个月随时再次执行付款,而无需用户干预。