带有付款意图的 Stripe Refund
Posted
技术标签:
【中文标题】带有付款意图的 Stripe Refund【英文标题】:Stripe Refund with payment intent 【发布时间】:2021-11-28 15:24:01 【问题描述】:使用cancel API取消订阅后
StripeConfiguration.ApiKey = "sk_testqweqwerty";
var service = new SubscriptionService();
var cancelOptions = new SubscriptionCancelOptions
InvoiceNow = false,
Prorate = false,
;
Subscription subscription = service.Cancel("sub_49qwertyz6a", cancelOptions);
我想将剩余天数的钱退还给客户,我查看了 stripe api,发现我可以通过付款意图来做到这一点。
StripeConfiguration.ApiKey = "sk_testqwertyS";
var refunds = new RefundService();
var refundOptions = new RefundCreateOptions
PaymentIntent = "pi_qwewz01aDfoo"
;
var refund = refunds.Create(refundOptions);
我没有单独创建支付意图,条纹是否有可能在幕后创建支付意图?我看到会话对象包含付款意图,但当我收到它时它是空的。
这是我的流程,
-
使用订阅模式创建会话。
确认付款。订阅已创建。
取消订阅。
退款。
我想知道订阅对象或支付会话对象是否包含支付意图 ID 的任何选项?或者我必须在付款会话对象旁边创建付款意图对象?
【问题讨论】:
【参考方案1】:您的订阅会创建发票(在订阅开始时和每个循环周期,例如每个月)。
每个 Invoice 对象都有一个关联的 PaymentIntent(Stripe 用来创建 Charges 的生命周期对象),这些是 Stripe 自动创建的(这就是为什么你是正确的,你的集成不会创建它们,Stripe 会为你创建它们) ,答案是:
stripe 是否有可能在幕后创建支付意图?
您需要找到在订阅 [0] 上支付的最新发票,其中将包含 payment_intent: pi_123
[1] 的字段。
然后,您为该 PaymentIntent [2] 创建一个退款,部分或全部,以将资金返还给客户。
[0]https://stripe.com/docs/api/invoices/list#list_invoices-subscription
[1]https://stripe.com/docs/api/invoices/object#invoice_object-payment_intent
[2]https://stripe.com/docs/api/refunds/create#create_refund-payment_intent
【讨论】:
1.带有订阅模式的结帐会话。 2.当用户想取消订阅时,我用 invoiceNow=true 和 prorate = true 参数调用取消订阅 api,同时我得到最新的发票 ID。 3. 使用该发票 ID,我正在调用发票 api 并获取实际包含最新付款意图 ID 的发票对象。 4. 我正在使用该付款意图 ID 调用退款 API。这个流程好吗? 一个问题如何创建全额退款?到目前为止,我能够创建按比例退款..以上是关于带有付款意图的 Stripe Refund的主要内容,如果未能解决你的问题,请参考以下文章
使用 3D Secure 的 Stripe 支付意图仍然不完整
Code=50 “No such payment_intent” 当确认条带的支付意图时