php - 如何退还 Stripe 订阅费用?

标签 php laravel stripe-payments

我正在实现一个案例,我需要取消客户订阅并退还相同的金额。
我可以使用取消订阅

$sub = \Stripe\Subscription::retrieve({SUBSCRIPTION_ID});
$sub->cancel();

现在我必须退还已收取的金额
 $refund = \Stripe\Refund::create(array(
  "charge" => "{CHARGE_ID}"
));

这里CHARGE_ID是强制性的。没有像 SUBSCRIPTION_ID 这样的选项.

由于它自动向客户收费,我无法存储 CHARGE_ID .那么我该如何退还订阅金额??

请帮忙

谢谢

最佳答案

@Meera,我看到你解决了你的问题,我的解决方案是:
1. 一旦您取消订阅
2. 使用 Subscription 中的 subscriptionId 获取所有 Invoice Collection
3. 从 Invoice Collection 中拉取第一个 Invoice
4. 使用 Invoice 中的 chargeId 创建 Refund

$subscriptionId = $objSubscription->id;
$objInvoiceCollection = \Stripe\Invoice::all([
    'subscription' => $subscriptionId
]);

if ($objInvoiceCollection->total_count === 0) {
    throw new \Exception("warning: \$subscriptionId={$subscriptionId} - no invoices found!");
} else {
    $objInvoice = current($objInvoiceCollection);
}

$chargeId = $objInvoice->charge;
$objRefund = \Stripe\Refund::create(['charge' => $chargeId]);

关于php - 如何退还 Stripe 订阅费用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862261/

相关文章:

laravel - React JS Fetch 返回空响应,但 Postman 不返回

php - 如何在Laravel中显示 parent 姓名

php - Laravel 的 CSRF token 和负载均衡

reactjs - React-stripe-elements CardElement 抛出跨源错误

php - 将 LaTeX 标记转换为 HTML

php - Stripe 支付安卓

php - 在 MySQLI 中按数字查找最接近的匹配项

javascript - XML header 导致服务器错误 500(即使被注释掉!)

ruby-on-rails - 如何在 Stripe 中进行退款?

php - 如何修复 Stripe 错误 : Network error [errno 77]: error setting certificate verify locations