Stripe 在 PHP 中创建客户和经常性费用

Posted

技术标签:

【中文标题】Stripe 在 PHP 中创建客户和经常性费用【英文标题】:Stripe create a customer and recurring charge in PHP 【发布时间】:2015-10-13 07:19:00 【问题描述】:

我有一个网站,我想在其中集成 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_setupfeemonthly_recurring,前一个计划包含我要收取的金额加上一次性安装费,后一个计划包含我将收取的常规金额第二个月,我在想注册的时候给用户分配monthly_recurring_setupfee的套餐,如果支付成功,把用户的套餐改成monthly_recurring,可以吗?

【问题讨论】:

【参考方案1】:

我找到了一种创建客户、将他们注册到计划并向他们收取一次性安装费的方法。这是我使用的代码:

$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 one-time subscription fee

【讨论】:

您知道用于客户创建的plan 参数的存在是否记录在任何地方?【参考方案2】:

要每月向客户收取相同的价格,您需要使用 Stripe 的subscriptions。如果您为客户订阅 50 美元的月度计划,他将每月自动收取 50 美元的费用,无需您进行任何手动操作。

至于第一个月50美元的安装费,你也可以看看Invoice Items。

这是您要遵循的流程:

    使用API 创建客户。 通过API 创建 50 美元的发票项目。 使用API 创建每月 50 美元计划的订阅。

最后一步自动为订阅创建第一张发票并将发票项目添加到其中。然后向客户收取 50 美元的计划费用和 50 美元的发票项目费用,因此按预期收取 100 美元。然后在下个月的同一天,客户将只需支付 50 美元,然后每月收取。

【讨论】:

这不会从客户那里创建两笔交易,一笔用于发票项目,另一笔用于计划。 @Criesto:不,不会。发票项目正是为此而存在的。只需在测试模式下的仪表板中尝试此操作,您就会看到它是如何工作的 我们在哪里获取卡号和 cvv 信息? Stripe 文档上有完整的端到端指南,展示了如何开始订阅和收款:stripe.com/docs/billing/quickstart

以上是关于Stripe 在 PHP 中创建客户和经常性费用的主要内容,如果未能解决你的问题,请参考以下文章

在php中创建订阅后在Stripe上显示订阅ID

条纹复制客户

带有 Stripe 和 MongoDB 集成的 GraphQL 突变过早返回 null [重复]

如何通过 Stripe.com 向客户收取特定卡的费用

Stripe Connect:在Stripe Connect中,谁将支付Stripe费用,如何确定?

更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)