Что нужно сделать для перехода с v1 на v2

Описание

В результате разработки более выгодного и перспективного продукта "Кредитная линия" виджет был обновлён до версии V2. Данная версия виджета позволяет полностью использовать весь потенциал нового продукта. Версия V2 базируется на методах, использовавшихся в версии V1, поэтому переход на новую версию требует минимально возможное количество доработок.

Краткая сводка об изменениях

Back изменения

Необходимо добавить новые claim, направляемые в запросе /v2/oauth/authorize: creditLineAvailableSum, hasActiveCreditLine.

Back-методы Изменения
GET /v1/oauth/user-info Вызов метода и логика обработки не изменились. В ответе возвращаются два дополнительных параметра (creditLineAvailableSum, hasActiveCreditLine), отражающие наличие остатка по действующей кредитной линии.
GET /v1/credit-offers Вызов метода и логика обработки не изменилась. В ответе возвращается дополнительный продукт имеющий четыре новых параметра, в случае наличия действующей кредитной линии (contractNumber, availableSum, dateSince, dateUntil).
POST /v1/payments/from-invoice-any Добавлен новый метод для выставления клиенту счёта на оплату (для сценария с действующей кредитной линией)

Front изменения

Изменение 1

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

Было

Было1

Стало

Стало1 Стало12

Ссылка на изменение

Изменение 2

Упрощена визуальная часть окна в виджете и добавлена логика по сценарию с действующей кредитной линией.

Было

Было2

Стало

Стало2

Ссылка на изменение

Back доработки

Изменения в GET /v1/oauth/user-info

В user-info добавляются два новых параметра по действующей кредитной линии. В случае наличия у клиента действующей кредитной линии, в ответе на запрос возвращаются два дополнительных параметра, позволяющие понять, есть ли у клиента действующая кредитная линия.

При отсутствии действующей кредитной линии данные параметры не возвращаются.

Новые параметры:

Параметр Описание
hasActiveCreditLine Наличие активной кредитной линии у клиентаа
creditLineAvailableSum Сумма остатка действующей кредитной линии

Изменения в GET /v1/credit-offers

Список возвращаемых параметров для продукта "кредит" не изменился.

Так как продукт "кредитная линия" заменяет "овердрафт", в поле productCode вместо кодов продукта "Овердрафт" (MB-F-ip-170 и MB-F-oo-171) будут приходить коды продукта "Кредитная линия" (MB-K-ip-225, MB-K-oo-226)

Для нового продукта в параметры ответа добавлены дополнительные поля:

Новые параметры Пример новых параметров
contractNumber
String (50)
Номер договора
"contractNumber": '11111111'
availableSum
Number (19, 2)
Сумма лимита
"availableSum": 200000
dateSince
Date
Дата начала действия договора
"dateSince": 2020-07-20
dateUntil
Date
Дата окончания договора
"dateUntil": 2021-07-20
Новые параметры необходимо передать виджету при его инициализации вместе с остальными параметрами по продукту, полученными по GET /v1/credit-offers.

Направление клиента на форму платёжки

В случае если у клиента была действующая кредитная линия и он выбрал её в качестве средства оплаты, необходимо через REST-сервис POST /v1/payments/from-invoice-any создать счёт на оплату. Параметрами, полученными при вызове функции onSuccessCallback, заполняются следующие поля REST-сервиса:

Параметры REST-сервиса Параметры функции onSuccessCallback
creditContractNumber contractNumber
mount paymentAmount

Также необходимо заполнить параметр isPaidByCredit = true.

Front доработки

Выбор продукта на стороне партнёра

Рекомендации по оформлению кнопок

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

Заполнение кнопки выбора покупки в кредит (коды продукта: MB-K-ip-150, MB-F-oo-151)

Рекомендации

Алгоритм расчета суммы оплаты в месяц

  • Рассчитывается коэффициент аннуитета (K) по формуле

Формула

где: n - количество периодов, в течение которых выплачивается кредит (creditProduct.TermMax); i - месячная процентная ставка по кредиту (creditProduct.rate*).

  • В расчётах необходимо перевести параметр ставки в год creditProduct.rate ежемесячную, десятичную форму (поделить на 1200)
  • Чтобы узнать сумму ежемесячного платежа, умножается коэффициент аннуитета (K) на сумма кредита (Сумма кредита равна сумме покупки). Полученную сумму ежемесячного платежа необходимо округлить, отбросив десятичную часть (26000.967 = 26000)

Заполнение кнопки выбора покупки в рассрочку

Коды продукта: MB-K-ip-225, MB-K-oo-226

Кнопка рассрочки

Заполнение данной кнопки:

В рассрочку на creditProduct.delayRepayment дней без процентов

creditProduct.rate / 12 % в месяц с creditProduct.delayRepayment + 1 дня, до sumMax

Работа с виджетом

Дополнительные файлы

Передача в виджет выбранного клиентом продукта

После того, как клиент выбирает один из продуктов на стороне партнера ("Кредит" или "В рассрочку") и нажимает кнопку 'Оплатить покупку', партнёр должен передать в виджет код продукта, который выбрал клиент, и сумма заказа. Эти данные передаются в виджет с помощью функции onSelectedProduct, которой необходимо передать следующие параметры:

Параметры функции

{
productCode(String) Код кредитного продукта
amount (Number) Сумма заказа
}

Пример параметров функции

{

productCode: MB-F-ip-225

amount: 1676789

}

Закрытие модального окна

Был изменён список параметров, принимаемых функцией onSuccessCallback, данная функция теперь поддерживает три набора параметров (действующая кредитная линия, новая кредитная линия, покупка в кредит). В зависимости от выбранного клиентом продукта, возможны следующие варианты набора параметров:

Действующая кредитная линия (в рассрочку)

Параметры функции

{
contractNumber (Number) Номер договора
productCode(String) Код кредитного продукта
paymentAmount (Number) Сумма, на которую необходимо создать платежное поручение
}

Пример параметров функции

{

contractNumber: 3378389

productCode: MB-F-ip-225

paymentAmount: 200000

}
Новая кредитная линия (в рассрочку)

Параметры функции

{
creditAmount (Number) Выбранная сумма кредита
creditTerm (Number) Срок кредита (в месяцах)
productCode (String) Код кредитного продукт
}

Пример параметров функции

{

creditAmount: 105300.00

creditTerm: 12

productCode: MB-F-ip-225

}
Кредит

Параметры функции

{
creditAmount (Number) Выбранная сумма кредита
creditTerm (Number) Срок кредита (в месяцах)
productCode (String) Код кредитного продукт
}

Пример параметров функции

{

creditAmount: 105300.00

creditTerm: 12

productCode: MB-F-ip-170

}

Полезные ссылки

Более подробно вся информация по развёртыванию новой версии виджета находится на странице Инструкция по установке виджета V2.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней