【问题标题】:Create an invoice for stripe payments为条带付款创建发票
【发布时间】:2021-11-02 12:31:36
【问题描述】:

我正在使用 Stripe 进行一次性付款和订阅。
为了创建付款,我使用 Stripe Checkout:

\Stripe\Checkout\Session::create([
    'customer' => 'cus_XXXXX',
    'success_url' => '',
    'cancel_url' => '',
    'payment_method_types' => ['card'],
    'mode' => ($isSubscription ? 'subscription' : 'payment'),
    'line_items' => [...]
]);

header('Location: '.$checkout_session->url);
exit;

此代码会自动为订阅模式创建发票,但不会为一次性付款创建发票。
我已尝试使用此方法创建新发票,但如何使其与之前的付款、已关闭和已付款相关?

$stripe = new Stripe\StripeClient('xxx');
$stripe->invoiceItems->create([
    'customer' => 'cus_XXXXX',
    'amount' => '1000',
    'currency' => 'eur',
    'description' => 'Lorem ipsum...'
]);
$invoice = $stripe->invoices->create([
    'customer' => 'cus_XXXXX',
]);

【问题讨论】:

标签: php stripe-payments payment


【解决方案1】:

我找到了一种为每个已付款标记创建发票的方法。
但是,这不会将它们与付款相关联。

在 webhook checkout.session.completed 上执行以下操作:

$stripe = new Stripe\StripeClient('xxx');

// Create invoice lines
$stripe->invoiceItems->create([
    'customer' => 'cus_XXXXX',
    'amount' => '1000',
    'currency' => 'eur',
    'description' => 'Lorem ipsum...'
]);

// Create invoice
$invoice = $stripe->invoices->create([
    'customer' => 'cus_XXXXX',
]);

// Finalize and mark invoice paid outside of Stripe
$invoice->finalizeInvoice();
$invoice->pay(['paid_out_of_band' => true]);

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2021-11-04
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2017-12-17
    • 2015-05-05
    • 2014-04-27
    • 2018-09-16
    相关资源
    最近更新 更多