如何退款条纹订阅收费金额?

时间:2017-08-24 12:56:49

标签: 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。那么我该如何退还该订阅金额?

请帮助

由于

1 个答案:

答案 0 :(得分:3)

@Meera,我看到你解决了你的问题,我的解决方案是:
 1.取消订阅后  2.使用订阅中的subscriptionId获取所有发票收款  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]);