Перейти к содержанию

Mir Pay

Условие использования

Платёжный метод возможно использовать только на Android устройствах с версией 7.0 и выше.

TypeScript
export function isMirpayReadyToPay(): boolean {
    return /android/i.test(window.navigator.userAgent);
}
...
if (isMirpayReadyToPay) {
    // Отображаем кнопку оплаты через MirPay
    ...
}

Сценарий использования

1. Создаем СКО (CreateInvoice)

2. Инициализируем оплату МирПей с получением ссылки на сервис оплаты МИР (mirpay/getlink)

JSON
   {
       "OperationState": {
         "Code": 0,
         "Desc": "Успешно обработана"
       },
       "Result": {
         "State": {
           "Code": 0,
           "Desc": "Успешно обработан"
         },
         "UniversalLink": "https://pay.mironline.ru/inapp/eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImprdSI6Imh0dHBzOi8vbW...",
         "DeepLink": "mirpay://pay.mironline.ru/inapp/eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImprdSI6Imh0dHBz..."
       }
   }
После получения ответа, необходимо перенаправить клиента с задержкой на адрес содержащиеся в свойстве DeepLink и UniversalLink:

TypeScript
    const deepLink = () => {
          window.location.href = Data.Result.DeepLink;
    };
    const universalLink = () => {
          window.location.href = Data.Result.UniversalLink;
    };
    // Открывает ссылку из `DeepLink`
    setTimeout(deepLink , 50);
    // ... Ожидание 50мс
    // Открывает ссылку из `UniversalLink`
    setTimeout(universalLink , 50);
3. Отслеживаем статус платежа (доступны 2 способа)

3.1. Перезапрашиваем GetBankCardPaymentState ожидая получения статуса отличного от: Created, InProcess, SendTo3DS:

Примеры ответов:

JSON
{
  "OperationState": {
    "Code": 0,
    "Desc": "Успешно обработана"
  },
  "EshopId": 459299,
  "Result": {
    "PaymentStep": "OK",
    "State": {
      "Code": 0,
      "Desc": "Успешно обработан"
    }
  }
}
JSON
{
 "OperationState": {
   "Code": 0,
   "Desc": "Успешно обработана"
 },
 "EshopId": 459299,
 "Result": {
   "PaymentStep": "Error",
   "State": {
     "Code": 0,
     "Desc": "Успешно обработан"
   }
 }
}

3.2. Ожидаем вебхук на адрес, указанный при создании счёта (CreateInvoice) в параметре ResultUrl или в расширенных настройках магазина на вкладке "Подключение магазина".