Полосать немедленный платеж при каждом обновлении количества - PullRequest
0 голосов
/ 13 июня 2018

Мы используем Stripe в качестве шлюза оплаты, и у нас есть годовой план, т. Е. Цикл выставления счетов составляет 1 год.

В течение цикла выставления счетов пользователь может обновить опцию выбора дополнительных мест, что будетприведет к увеличению количества для подписанного плана.

Subscription subscription = Subscription.retrieve(paymentDetails.getSubscriptionId());
int currentQuentity = subscription.getQuantity();
Map<String, Object> updateParams = new HashMap<String, Object>();
updateParams.put("quantity", (currentQuentity + changeInQuantity));
subscription.update(updateParams);

Таким образом, за любое обновление полосы возмещений (если количество уменьшается) и начисления (если количество увеличивается) в конце цикла выставления счетов пропорционально.

В нашей бизнес-логике нам требуется немедленная оплата (начисления или возвраты) за каждое обновление количества, а не по окончании цикла выставления счетов.Есть ли способ в полосе добиться этого.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

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

  1. Обновить подписку с новыми изменениями.
  2. Создать счет .Меня смутило то, что Stripe волшебным образом знает, что нужно выставлять счета только за обновленные элементы подписки, а не за предстоящие пункты цикла выставления счетов.

  3. Получить недавно созданный счет

  4. Завершение счета
  5. Прием оплаты по счету Это предполагает, что у вашего клиента сохранен способ оплаты.

Только после завершения всех этапов вы успешно сняли плату за изменение подписки (и только за изменение).Вы можете сделать все это за один раз.Клиент должен получить по электронной почте счет-фактуру от Stripe в конце.

Что усложняет для меня то, что, читая документацию, у меня сложилось впечатление, что Stripe автоматически сделает все это для меня какпока подписка установлена ​​на "billing": "charge_automatically".Это не так, и в защиту Stripe они упоминают об этом в нижней части страницы документации, относящейся к планам модернизации и понижения :

Если вы хотите, чтобы клиент немедленнооплачивая разницу в цене при переходе на более дорогой тарифный план в том же цикле выставления счетов, вам необходимо сгенерировать счет после совершения переключения.

0 голосов
/ 13 июня 2018

Чтобы списать средства сразу после обновления подписки, необходимо создать счет-фактуру сразу после обновления подписки.Это приведет к немедленной оплате

Для создания счета вы можете просто позвонить:

Stripe.apiKey = "sk_test_BQokikJOvBiI2HlWgH4UWQfQ2";

Map<String, Object> invoiceParams = new HashMap<String, Object>();
invoiceParams.put("customer", "cus_D2XUIsncG7YUX");

Invoice.create(invoiceParams);

Ссылка (https://stripe.com/docs/api#update_subscription):

enter image description here

...