我正在实施一个案例,我需要取消客户订阅和退款金额。 我可以使用
取消订阅$sub = \Stripe\Subscription::retrieve({SUBSCRIPTION_ID});
$sub->cancel();
现在我必须退还收费金额
$refund = \Stripe\Refund::create(array(
"charge" => "{CHARGE_ID}"
));
此处CHARGE_ID
是强制性的。没有像SUBSCRIPTION_ID
这样的选项。
由于它自动向客户收费,我无法存储CHARGE_ID
。那么我该如何退还该订阅金额?
请帮助
由于
答案 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]);