Stripe 在 PHP 中创建客户和经常性费用
Stripe create a customer and recurring charge in PHP
我有一个网站,我想在其中集成 Stripe 支付网关,当用户注册时,我想在 Stripe 上创建一个客户并向他们收取第一个月的费用,例如 100 美元,从下个月开始我想收取费用他们 50 美元。
如何创建客户然后同时向他们收费并设置定期付款,到目前为止我只能找到一次付款系统:
$charge = \Stripe\Charge::create(
array(
"amount" => $amount,
"currency" => "usd",
"source" => $token,
"description" => $email
)
);
对于定期付款,我是否必须在 cron 中 运行 此代码或是否有更好的方法?
提前致谢。
编辑:
我使用以下代码首先创建了一个客户,然后使用他们的收费 ID 向该客户收费:
//Create Customer:
$customer = \Stripe\Customer::create(array(
'source' => $token,
'email' => $_POST['email'],
'plan' => "monthly_recurring_setupfee",
));
// Charge the order:
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
"amount" => $amount,
"currency" => "usd",
"description" => "monthly payment",
)
);
这似乎有效。
另一个问题:我创建了两个计划monthly_recurring_setupfee
和monthly_recurring
,前一个计划包含我要收取的金额加上一次性安装费,后一个计划包含常规金额我从第二个月开始收费,我想在注册时给用户分配 monthly_recurring_setupfee
计划,如果付款成功,将用户的计划更改为 monthly_recurring
,是这样的可能吗?
要每月以相同的价格向客户收费,您需要使用 Stripe 的 subscriptions。如果您为客户订阅 50 美元的月度计划,他将每月自动收取 50 美元的费用,而无需您进行任何手动操作。
至于首月$50的安装费,你要的也太看Invoice Items了。
这是您要遵循的流程:
最后一步自动为订阅创建第一张发票并向其中添加发票项目。然后向客户收取 50 美元的计划费用和 50 美元的发票项目费用,因此按预期收取 100 美元。然后在下个月的同一天,客户只需支付 50 美元,并且从那时起每个月。
我找到了一种方法来创建客户,将他们注册到计划中并向他们收取一次性安装费。这是我使用的代码:
$customer = \Stripe\Customer::create(array(
'source' => $token,
'email' => $billing_email,
'plan' => $stripePlan,
'account_balance' => $setupFee,
'description' => "Charge with one time setup fee"
));
这将向他们收取一次性设置费用 'account_balance' => $setupFee,
,将他们注册到计划中并向他们收取计划金额。
我有一个网站,我想在其中集成 Stripe 支付网关,当用户注册时,我想在 Stripe 上创建一个客户并向他们收取第一个月的费用,例如 100 美元,从下个月开始我想收取费用他们 50 美元。
如何创建客户然后同时向他们收费并设置定期付款,到目前为止我只能找到一次付款系统:
$charge = \Stripe\Charge::create(
array(
"amount" => $amount,
"currency" => "usd",
"source" => $token,
"description" => $email
)
);
对于定期付款,我是否必须在 cron 中 运行 此代码或是否有更好的方法?
提前致谢。
编辑:
我使用以下代码首先创建了一个客户,然后使用他们的收费 ID 向该客户收费:
//Create Customer:
$customer = \Stripe\Customer::create(array(
'source' => $token,
'email' => $_POST['email'],
'plan' => "monthly_recurring_setupfee",
));
// Charge the order:
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
"amount" => $amount,
"currency" => "usd",
"description" => "monthly payment",
)
);
这似乎有效。
另一个问题:我创建了两个计划monthly_recurring_setupfee
和monthly_recurring
,前一个计划包含我要收取的金额加上一次性安装费,后一个计划包含常规金额我从第二个月开始收费,我想在注册时给用户分配 monthly_recurring_setupfee
计划,如果付款成功,将用户的计划更改为 monthly_recurring
,是这样的可能吗?
要每月以相同的价格向客户收费,您需要使用 Stripe 的 subscriptions。如果您为客户订阅 50 美元的月度计划,他将每月自动收取 50 美元的费用,而无需您进行任何手动操作。
至于首月$50的安装费,你要的也太看Invoice Items了。
这是您要遵循的流程:
最后一步自动为订阅创建第一张发票并向其中添加发票项目。然后向客户收取 50 美元的计划费用和 50 美元的发票项目费用,因此按预期收取 100 美元。然后在下个月的同一天,客户只需支付 50 美元,并且从那时起每个月。
我找到了一种方法来创建客户,将他们注册到计划中并向他们收取一次性安装费。这是我使用的代码:
$customer = \Stripe\Customer::create(array(
'source' => $token,
'email' => $billing_email,
'plan' => $stripePlan,
'account_balance' => $setupFee,
'description' => "Charge with one time setup fee"
));
这将向他们收取一次性设置费用 'account_balance' => $setupFee,
,将他们注册到计划中并向他们收取计划金额。