Старт сценария оплаты
Возмож ные сценарии оплаты описаны в структуре SPayMethod, описание указано в разделе Вспомогательные структуры.
Вне зависимости от конкретного сценария оплаты, Вам необходимо будет использовать один и тот же метод запуска SDK.
Способы авторизации
В SDK на данный момент существует 4 способа авторизации для проведения оплаты:
- по рефреш токену;
- бесшовная (используя авторизационный токен);
- через мобильное приложен ие Банка;
- по номеру телефона.
Очередность попыток авторизации будет такой же, как описано выше. Т.е. сначала SDK будет пробовать авторизоваться по рефреш токену, затем бесшовным способом и так далее, пока не пройдет успешно, либо все способы не закончатся. Естественно, условие выше актуально в случае, когда все способы доступны для конкретного пользователя и способа оплаты.
Для Пользователя и Партнера визуальное отличие будет только между авторизацией через мобильное приложение Банка (произойдет переход в МП Банка с авторизацией и редирект обратно в приложение Партнера) и другими способами (все происходит в рамках открытой шторки SDK).
В большинстве случаев первая авторизация для Пользователя будет через мобильное приложение Банка.
Ниже представлена таблица доступных способов авторизации в рамках сценария оплаты
| Сценарий оплаты | Описание | Способы авторизации | Устаревший |
|---|---|---|---|
Default | Оплата с использованием шести частей и обычной оплатой (без paymentToken и paymentOrder) | Доступны все способы авторизации | Нет |
WithBankInvoiceId | Оплата с параметрами для проведения оплаты (с paymentToken и paymentOrder) | Доступны все способы авторизации | Да |
WithBonuses | Оплата со списанием бонусов «Спасибо» | Все, кроме авторизации по рефрешам | Нет |
WithoutRefresh | Оплата без рефреша с использованием шести частей и обычной оплатой (без paymentToken и paymentOrder) | Все, кроме авторизации по рефрешам | Нет |
WithPartPay | Оплата с использованием платежа на шесть частей | Доступны все способы авторизации | Нет |
WithPhoneNumber | Оплата с авторизацией только по номеру телефона. Требует обязательные параметры: phoneNumber – номер телефона клиента sPaymentTool – инструмент проведения оплаты | Доступна только авторизация по номеру телефона | Нет |
BindingPayment | Оплата по связке. Требует обязательный параметр bindingId — Уникальный идентификатор связки | Нет авторизации | Нет |
WithBinding | Оплата по связке. Требует обязательный параметр bindingId — Уникальный идентификатор связки | Нет авторизации | Да |
Запуск сценария оплаты
Метод pay является входной точкой в SDK и должен быть вызван только по клику на кнопку «Оплатить».
Обязательно корректно укажите значение параметра appPackage.
В противном случае при возврате из МП Банка после авторизации поднимется шторка с вариантами приложений для продолжения оплаты. Таким образом сценарий разорвется.
SPaySdkApp.getInstance().pay(
method = SPayMethod.Default,
request = SPaymentRequest(
context = requireContext(),
apiKey = API_KEY,
merchantLogin = MERCHANT_LOGIN,
bankInvoiceId = BANK_INVOICE_ID,
orderNumber = ORDER_NUMBER,
appPackage = APP_PACKAGE,
phoneNumber = PHONE_NUMBER
) { paymentResult -> }
)