Рассчитать пропорциональную скорость для полосы с помощью привязки цикла выставления счетов - PullRequest
1 голос
/ 20 марта 2020

Я создаю пропорциональную плату за 1-й месяц подписки, используя billing_cycle_anchor , чтобы убедиться, что 1-й полный счет-фактура взимается 1-го числа следующего месяца.

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

Как я могу рассчитать и показать этот пропорциональный платеж моему клиенту до фактической зарядки их карты?

В настоящее время мы используем приведенную ниже формулу для расчета текущей суммы пропорциональности, но она не является точной. Наша формула отображала 3,54 USD , но в результате нашивки закончились начислением 3,87 USD

async function getThisMonth(pmtdata) {
    let now = Date.now();
    var lastday = function(y,m){
        return  new Date(y, m +1, 0).getDate();
    }
    let seconds = now / 1000;
    let year = new Date().getFullYear();
    let month = new Date().getMonth();
    if(month <= 10) {
        let date = lastday(year,month);
        let l1 = 86400 * Number(date);
        let l2 = Number(pmtdata.numberPrice) / l1;
        let todayD = new Date().getUTCDate();
        let l3 = date - todayD;
        let l4 = 86400 * l3;
        let finalOut = Number(l2 * l4).toFixed(2);
        $w("#thisMonth").text = finalOut + ' ' + pmtdata.currency;
        chargeable = finalOut;
    } else if(month === 11) {
        month = await -1;
        let date = lastday(year,month);
        let l1 = 86400 * Number(date);
        let l2 = Number(pmtdata.numberPrice) / l1;
        let todayD = new Date().getUTCDate();
        let l3 = date - todayD;
        let l4 = 86400 * l3;
        let finalOut = Number(l2 * l4).toFixed(2);
        $w("#thisMonth").text = finalOut + ' ' + pmtdata.currency;
        chargeable = finalOut;
    }
}

pmtdata содержит ежемесячную цену и валюту

1 Ответ

2 голосов
/ 20 марта 2020

Я думаю, что вы, возможно, захотите использовать Предстоящий API счетов-фактур вместо попыток расчета.

Вы можете передать subscription_billing_cycle_anchor и subscription_items перед созданием Подписки - это вернет «предварительную» версию счета.

...