Отключение пропорционального распределения подписки на Stripe в Rails для возврата полной суммы

Я использую Stripe для платежей в своем приложении rails. Все работает хорошо, за исключением того факта, что я хотел бы отключить пропорциональное распределение или дозированные подписки. Клиенты отображаются на панели инструментов, отмена и изменение планов работает с возвратом средств и т. Д. Однако я не хочу прорейтировать подписку.

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

customer = Stripe::Customer.create(
        :email => email,
        :description => name,
        :card => stripe_token,
        :prorate => false,
        :plan => roles.first.name
      )

У кого-нибудь есть идеи, как правильно настроить это в Stripe? Я проверил их документацию, но она мне не помогает - https://stripe.com/docs/subscriptions. Я также не вижу, как это настроить при настройке плана на их сайте.

Любые подсказки будут высоко оценены! Спасибо


person pvskisteak5    schedule 14.08.2013    source источник


Ответы (1)


Правильная идея, не совсем то место. Клиенты верхнего уровня не распознают свойство prorate, и оно не сохраняется. Поскольку планы Stripe выставляются по предоплате, это необходимо устанавливать только при смене плана. (Новая подписка по определению не может быть пропорциональна.) prorate устанавливается при каждом вызове изменения плана и применяется только к акту перехода между этими планами.

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

customer.update_subscription(plan: 'newplan', prorate: false)

Easy peasy, больше никаких пропорциональных изменений плана.

Отмена вообще не приводит к возврату средств, поэтому, если вы обнаружите, что это так, дважды проверьте свой собственный код, прежде чем обращаться в службу поддержки Stripe. Любые возвраты за отмену должны поступать только из вашего кода, а вызов refund по умолчанию возвращает полный возврат.

Обратите внимание, что если вы делаете этот возврат для пользователя, который по ошибке был обновлен с пропорциональным обновлением, его последний платеж, вероятно, будет пропорциональным, поэтому полный возврат будет пропорциональным сумме, которую он в последний раз заплатил. Возможно, поэтому вы видите «пропорциональное» возмещение.

person colinm    schedule 07.09.2013
comment
Забыл закрыть это - это точно, я должен был прорейтинговать в методе update_subscription. В итоге я использовал это: customer = Stripe::Customer.retrieve(customer_id) customer.update_subscription(:plan => role.name, :prorate => false) - person pvskisteak5; 08.09.2013