Для установки кнопки необходимо прописать на сайте в раздел head:
<script src="https://pay.mts.ru/mts-pay-btn/mts-pay-btn.js"></script>
Для отладки и тестирования кнопки и новых функций можно использовать: https://sandbox.pay.mts.ru/mts-pay-btn/mts-pay-btn.js
Затем добавить в body новый элемент:
<div id="mts-pay-btn"></div>
В данный элемент будет рендериться кнопка.
Типы данных, используемых при инициализации кнопки:
interface IError {
requestId?: string
code?: string
message?: string
}
interface OnEventData {
error?: IError
propsName?: string
value?: string
eventName: 'initialized' | 'successPayment' | 'failPayment' | 'successTokenCreate' | 'validationError' | 'close' | 'error'
}
type TOnEvent = (data: OnEventData) => void
type TOnClick = () => Promise<string>
type TColorMode = 'dark' | 'light'
type TPageColorMode = 'dark' | 'light'
type TEnvironment = 'TEST' | 'PROD'
type TWindowType = 'current' | 'tab' | 'modal'
type TType = 'plain' | 'pay' | 'refill' | 'subscribe' | 'buy' | 'order' | 'book' | 'support' | 'donate' | 'rent' | 'tips' | 'continue'
type TSelectedPaymentToolType = 'mtsBankCard' | 'boundCard' | 'mtsCharging' | 'mtsMobileCommerce' | 'extMobileCommerce' | 'applePay' | 'googlePay' | 'samsungPay' | 'sbp' | 'newCard' | 'ewalletBinding' | 'mtsDengiBankCard' | 'sbpToken'
type TStyle = {
width?: number
height?: number
borderRadius?: number
}
interface InitBtnProps {
successReturnUrl: string
failReturnUrl: string
merchantUrl?: string
phone?: string
type?: TType
colorMode?: TColorMode
pageColorMode?: TPageColorMode
style?: TStyle
environment?: TEnvironment
windowType?: TWindowType
selectedPaymentToolType?: TSelectedPaymentToolType
selectedPaymentToolId?: string
hasSuccessScreen?: boolean
onEvent?: TOnEvent
onClick: TOnClick
}
type TMtsPayBtn = (props: InitBtnProps) => {
render: (id: string) => void
destroy: () => void
}
Для инициализации кнопки необходимо вставить следующий код:
function clickHandler() {
// custom business logic
return Promise.resolve(sessionId)
}
const eventHandler = (data) => {
// custom business logic
console.log('eventHandler', data)
}
var params = {
successReturnUrl: 'https://merchant.site?param1=value1¶m2=value2',
failReturnUrl: 'https://merchant.site?param1=value1¶m2=value2',
merchantUrl: 'https://merchant.site',
type: 'pay',
colorMode: 'light',
pageColorMode: 'light',
style: {
width: 240,
height: 44,
borderRadius: 10,
},
environment: 'PROD',
windowType: 'current',
selectedPaymentToolType: 'sbp',
hasSuccessScreen: true,
onClick: clickHandler,
onEvent: eventHandler
}
var mtsPayBtn = new MtsPayBtn(params);
mtsPayBtn.render('mts-pay-btn');
Где params — объект с инициализируемыми данными, в который входят:
Если передаются невалидные successReturnUrl и failReturnUrl, то кнопка рендериться не будет.
mtsPayBtn.render — функция, которая отрендерит кнопку в тот id, который в нее передается.
mtsPayBtn.destroy — функция, которую можно вызвать, чтобы размонтировать кнопку.
Текст слева от иконки не выводится:
• Если он не помещается. Например, при очень маленькой ширине экрана или маленьком значении width в style
• При передаче параметра phone
Если по каким-то причинам, необходимо вручную удалить кнопку с экрана, то необходимо выполнить следующий код (рекомендуем избегать таких ситуаций):
var mtsPayBtn = new MtsPayBtn(params); // инициализируем
mtsPayBtn.render('mts-pay-btn'); // рендерим
mtsPayBtn.destroy(); // удаляем
Персонализация кнопки является опциональной возможностью, которая доступна при наличии авторизационной cookie. Cookie появляется после авторизации.
ВАЖНО! В мобильных браузерах сторонние cookie по умолчанию недоступны. После перезапуска приложения cookie будет недоступна. В результате в кнопке перестанет выводиться персональная информация (последние 4 цифры карты/аккаунта). Доступность cookie настраивается в настройках браузера на мобильном устройстве. После разрешения использования сторонних cookie в браузере и авторизации — в кнопке появится персональная информация.