Php 如何退还订阅费?

Php 如何退还订阅费?,php,laravel,stripe-payments,Php,Laravel,Stripe Payments,我正在实施一个案例,在该案例中,我需要取消客户订阅并退还相同的金额。 我可以使用取消订阅 $sub = \Stripe\Subscription::retrieve({SUBSCRIPTION_ID}); $sub->cancel(); 现在我必须退还已收取的金额 $refund = \Stripe\Refund::create(array( "charge" => "{CHARGE_ID}" )); 这里的CHARGE\u ID是强制性的。没有类似于订阅\u ID的选项

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

$sub = \Stripe\Subscription::retrieve({SUBSCRIPTION_ID});
$sub->cancel();
现在我必须退还已收取的金额

 $refund = \Stripe\Refund::create(array(
  "charge" => "{CHARGE_ID}"
));
这里的
CHARGE\u ID
是强制性的。没有类似于
订阅\u ID
的选项

由于它自动向客户收费,我无法存储
CHARGE\u ID
。那么,我如何才能退还订阅金额

请帮忙


谢谢

@Meera,我看到你解决了你的问题,我的解决方案是:
1.一旦取消订阅
2.使用订阅中的订阅ID获取所有发票收款
3.从发票集合中提取第一张发票
4.使用发票中的chargeId创建退款

$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]);

是的,我已经检查过了,但是需要收费号,我没有收费号。你检查过条纹文件了吗?是的,我检查过了。它不会退还订阅。@MittulAtTechnoBrave只会通过订阅取消进一步收费,不会退还已收费的金额subscription retrieve返回一个包含客户id的对象。然后,您可以使用该客户id从客户查找中获取收费id。谢谢您的回答,我已经用同样的方法实现了,但我用foreach来支付所有$chargeId。