Я использую Stripe для управления платежами на работе.
Мне нужно показать моим пользователям список цен, но на самом деле меня интересует не цена до вычета налогов. Это цена после уплаты налогов и использования купона, если таковой имеется.
Так что это выглядит как идеальный вариант использования конечной точки получения предстоящего счета. За исключением следующих условий, это не работает:
The subscription will pause at the end of the trial instead of generating an invoice because the customer has not provided a payment method and trial_settings[end_behavior][missing_payment_method] is set to `pause`.; code: invoice_upcoming_none;
Независимо от того, в каком штате сейчас находится мой пользователь, я хочу иметь возможность показывать цену после уплаты налогов, включая купон, если таковой имеется.
Я разговаривал с кем-то из команды Stripe на Discord здесь и спросил, почему это возможно с клиентского портала:
Но не в моем случае, и, к сожалению, ответ таков: очевидно, это не часть их общедоступного API...
Неужели я первый, кому это нужно? Как кто-нибудь нашел обходной путь?
Единственный обходной путь, который предлагает человек в Discord, — это изменить подписку и пометить ее для использования и выставления счета, вызвать на предстоящий счет, а затем вернуться обратно, чтобы не использовать счет, снова обновив подписку.
Это действительно ужасная идея обновлять подписку дважды, особенно для конечной точки только для чтения (GET) на моей стороне...
Я чувствую себя застрявшим и понятия не имею, как достичь того, что выглядит как базовый вариант использования. Любая помощь приветствуется!
Если для trial_settings.end_behavior.missing_payment_method
установлено значение pause
и нет доступного способа оплаты, невозможно получить предстоящий или предварительный счет за подписку.
Единственный обходной путь, который предлагает человек в Discord, — это изменить подписку и пометить ее для использования и выставления счета, вызвать на предстоящий счет, а затем вернуться обратно, чтобы не использовать счет, снова обновив подписку.
Если они имеют в виду это:
trial_settings.end_behavior.missing_payment_method
на create_invoice
.trial_settings.end_behavior.missing_payment_method
на pause
.Тогда да, это единственный способ. API Stripe не поддерживает изменение trial_settings.end_behavior.missing_payment_method
при получении предстоящего или предварительного счета, поэтому временное изменение подписки — единственный вариант.
Это действительно ужасная идея обновлять подписку дважды, особенно для конечной точки только для чтения (GET) на моей стороне...
Это не идеально, но это единственный вариант в этом сценарии.
Я действительно нашел правильное решение! Я поделюсь этим через секунду, но я удалил слово «принять» из вашего ответа. Извините, но я хочу, чтобы это было лучшим решением для других.
Я разговаривал об этом с коллегой, и он просто не мог смириться с тем фактом, что Stripe не поддержит это. Итак, мы разговаривали и пробовали разные вещи в течение 2 с половиной часов, и в конце концов он нашел решение!
Сделайте GET
звонок на https://api.stripe.com/v1/invoices/upcoming со следующими параметрами:
subscription_details[items][0][price]
: идентификатор ценыcustomer
: идентификатор клиентаautomatic_tax[enabled]
: true
discounts[0][coupon]
: (необязательно) идентификатор купона.И это дает мне общую стоимость с учетом налогов и купона, даже если пользователь использует пробную версию, с автоматической оплатой и без указания способа оплаты!
Нет необходимости обновлять подписку для оплаты по счету, делать запрос и автоматически переключаться обратно на оплату.
Это покажет предстоящий счет за гипотетическую подписку, которая еще не существует. Если это подходит для вашего варианта использования, это здорово, но имейте в виду, что это не будет отражать фактический предстоящий счет по существующей подписке.
Думаю, мне придется смириться, просто это кажется самым простым вариантом использования, позволяющим переопределить
trial_settings.end_behavior.missing_payment_method
, хотя мне трудно в это поверить. Наличие пользователя на пробной версии с подпиской, которую следует приостановить в конце, и без способа оплаты кажется самым простым вариантом использования, который может возникнуть, когда пользователь присоединяется. Отсутствие возможности предварительного просмотра в этом случае действительно странно, но я думаю, мне придется использовать этот обходной путь... Я почему-то все еще надеюсь, что кто-то другой каким-то образом придумает лучшую идею/обходной путь, но... Сомневаюсь в этом. Спасибо