Возврат полосы с намерением платежа

#c# #asp.net #asp.net-core #stripe-payments

Вопрос:

После использования API отмены для отмены подписки

 StripeConfiguration.ApiKey = "sk_testqweqwerty";

var service = new SubscriptionService();
var cancelOptions =  new SubscriptionCancelOptions
{
  InvoiceNow = false,
  Prorate = false,
};

Subscription subscription = service.Cancel("sub_49qwertyz6a", cancelOptions);
 

Я хотел бы вернуть деньги за оставшиеся дни клиенту, я посмотрел api stripe и увидел, что могу сделать это с помощью намерения оплаты.

 StripeConfiguration.ApiKey = "sk_testqwertyS";

var refunds = new RefundService();
var refundOptions = new RefundCreateOptions {
  PaymentIntent = "pi_qwewz01aDfoo"
};
var refund = refunds.Create(refundOptions);
 

Я не создаю отдельно намерение платежа возможно ли, что stripe создает скрытое намерение платежа ? Я вижу , что объект сеанса содержит намерение оплаты, но когда я его получил, он был равен нулю.

Вот мой поток ,

  1. Создайте сеанс в режиме подписки.
  2. Подтвердите оплату. Была создана подписка.
  3. Отмените подписку.
  4. Верните Деньги.

Мне было интересно, есть ли какой-либо вариант, чтобы объект подписки или объект сеанса оплаты содержал идентификатор намерения платежа? или я должен создать объект намерения платежа вместе с объектом сеанса оплаты ?

Ответ №1:

Ваши Подписки создают Счета-фактуры (в начале Подписки и в каждом повторяющемся цикле, например, каждый месяц).

Каждый объект счета-фактуры имеет связанный с ним PaymentIntent (объект жизненного цикла, который Stripe использует для создания сборов), они создаются автоматически Stripe (вот почему вы правы, ваша интеграция их не создает, Stripe создает их для вас), что отвечает:

возможно ли, что stripe создает намерение оплаты за кулисами ?

Вам нужно взять найти самый последний счет, который был оплачен по Подписке [0], в котором будет поле для payment_intent: pi_123 [1].

Затем вы создаете возврат средств для этого платежа [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. 1.сеанс оформления заказа в режиме подписки. 2. Когда пользователи хотят отменить подписку, я вызываю api отмены подписки с параметрами invoiceNow=true и prorate = true, наряду с этим я получаю последний идентификатор счета-фактуры. 3. С помощью этого идентификатора счета я вызываю api счета-фактуры и получаю объект счета-фактуры, который на самом деле содержит последний идентификатор намерения платежа. 4. я вызываю api возврата средств с этим идентификатором намерения платежа . Этот поток в порядке ?

2. Один вопрос, как я могу полностью вернуть деньги ? До сих пор мне удавалось создавать пропорциональные возвраты..