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

Оплата с помощью Mir Pay

Общие сведения

Партнёр может реализовать оплату с собственной платёжной формы с помощью Mir Pay. В этом случае клиент оплачивает заказ без ввода данных банковской карты.

Оплата заказа в упрощённом виде выглядит так:

① Выбор способа оплаты Mir Pay на платёжной форме партнёра

② Выбор карты, ранее сохранённой в Mir Pay

③ Подтверждение оплаты в приложении Mir Pay

Чтобы подтвердить платёж, потребуется приложение Mir Pay для смартфонов или планшетов с системой Android.

Реализация оплаты для партнёров-агрегаторов отличается от реализации оплаты для партнёров-провайдеров. Далее по тексту для обозначения агрегатора или провайдера может быть использован термин «партнёр».

Обратите внимание

Подключение нового способа оплаты предполагает, что партнёр уже реализовал сценарий «Оплата с формы партнёра».

Оплата для агрегаторов платежей

Агрегатор должен подписать договор, регулирующий правовые отношения с QIWI, и выполнить следующие действия:

Стать участником НСПК

Добавить на платёжную форму способ оплаты Mir Pay

Провести оплату

Участие в НСПК

Акционерное общество «Национальная система платежных карт» (НСПК) — оператор платёжной системы «Мир».

Агрегатору необходимо обратиться в НСПК с запросом на подключение к сервису Mir Pay In-Application. Шаги подключения к сервису в упрощённом виде описаны ниже.

Обратите внимание

Процесс подключения к сервису описан в качестве примера: за актуальной информацией и сопровождением следует обращаться в службу поддержки НСПК (не QIWI).

Регистрация агрегатора

Чтобы зарегистрироваться в НСПК, агрегатор должен:

  1. Получить доступ к порталу Участника АО «НСПК» support.nspk.ru: направить в НСПК заявку на доступ к порталу, соглашение о конфиденциальности и неразглашении информации.
  2. Создать на портале support.nspk.ru задачу на подключение к сервису Mir Pay In-Application.

    В результате выполнения задачи партнёр получит свой уникальный идентификатор в сервисе, сертификат публичного ключа НСПК PK.NSPKи необходимую документацию для реализации сервиса.

  3. Определиться с технологией реализации взаимодействия с НСПК — Deep Link/Universal Link и/или SDK.

  4. Создать пару ключей с помощью алгоритма RSA-2048:

    • SK.APPREG — секретный;
    • PK.APPREG — публичный.
  5. Сформировать и отправить в НСПК запрос на выпуск сертификата на основе ключей, созданных на шаге 4 — CSR, Certificate Signing Request.

    • В поле Organizational Unit Name (OU) элемента Subject должно быть указано значение P{идентификатор участника, полученный на шаге 2}.
    • В элементе keyUsage должно быть указано назначение ключа dataEncipherment — шифрование данных.
  6. Создать на портале support.nspk.ru задачу на доступ к Крипто.Мир.

    В результате выполнения задачи партнёр получит инструкции по подключению Крипто.Мир для специалистов по информационной безопасности.

  7. Инициировать выпуск сертификата для промежуточного удостоверяющего центра (Concentrator SubCA) в личном кабинете Крипто.Мир.

В случае успешного выполнения этапа «Регистрация агрегатора»:

  • осуществляется регистрация агрегатора и компоненты его публичного ключа PK.APPREG в сервисе Mir Pay In-Application;
  • выпускается сертификат для промежуточного удостоверяющего центра.

Подключение ТСП агрегатора

После регистрации агрегатора агрегатору следует подключить к сервису Mir Pay In-Application торгово-сервисные предприятия (ТСП).

Процесс подключения ТСП описан и изображён ниже.

Шаги, выполняемые ТСП или агрегатором

П.1 - п.3 выполняются одним из следующих участников:

  • ТСП агрегатора — если для оплаты используется платёжная форма ТСП;
  • агрегатором — если для оплаты ТСП направляет клиента на платёжную форму агрегатора (агрегатор выполняет действия от лица ТСП).
  1. Участник создаёт пару ключей с помощью алгоритма RSA-2048:

    • SK.MERCH_ID — секретный;
    • PK.MERCH_ID — публичный.
  2. Участник создаёт запрос на выпуск сертификата электронной подписи на основе ключей, созданных на шаге 1 — CSR, Certificate Signing Request.

    • В поле Organizational Unit Name (OU) элемента Subject должно быть указано значение M{merchantId}.
      • merchantId — MID, идентификационный номер мерчанта (ТСП) в системе агрегатора.
      • Значение merchantId должно состоять из 15 символов. Если значение меньше 15 символов, оно дополняется нулями слева: M000...00<merchantId>.
    • В элементе keyUsage должно быть указано назначение ключа digitalSignature — цифровая подпись сообщений.
  3. Участник передаёт запрос CSR агрегатору.

  4. Агрегатор подписывает сертификат, обратившись к промежуточному удостоверяющему центру НСПК.

    В сертификате:

    • поле Organizational Unit Name (OU) элемента Subject должно содержать значение M{merchantId};
    • поле Organizational Unit Name (OU) элемента Issuer должно содержать значение P{идентификатор участника} (см. п.2 раздела «Регистрация агрегатора»).
  5. Агрегатор сохраняет сертификат в представлении JSON Web Key Set (JWKS), публикует его на собственном веб-ресурсе и возвращает ТСП:

    • сертификат;
    • ссылку на JWKS.
    Вид ссылки на JWKS
    {host}/jwks/{merchantId}-jwks.json
    
  6. Агрегатор выполняет регистрацию ТСП в Mir Pay In-Application с помощью API (предоставляется НСПК).

В результате успешного выполнения этапа «Подключение ТСП агрегатора»:

  • ТСП регистрируется в сервисе Mir Pay In-Application;
  • агрегатор хранит сертификаты в представлении JWKS для проведения оплаты с помощью Mir Pay.
%%{init: {
    "sequence" : {
        "wrap":true,
        "messageFontSize":14,
        "noteFontSize":14,
        "actorMargin":150 }}}%%
sequenceDiagram
    participant M as ТСП
    participant A as Агрегатор
    participant N as НСПК
    M->>M: Создание SK/PK и CSR
    M->>A: Передача CSR
    A->>N: Подпись сертификата с помощью Concentrator SubCA
    N->>A: 
    A->>A: Формирование и публикация JWKS
    A->>M: Сертификат и ссылка на JWKS
    Note over A,M: mirpay.qiwi.com/jwks/{merchantId}-jwks.json
    A->>N: Регистрация ТСП в Mir Pay In-Application
    N->>A: 
    Note right of A: API

Добавление способа оплаты Mir Pay

При добавлении способа оплаты Mir Pay на собственную платёжную форму партнёр должен руководствоваться стилями бренда.

Кнопка оплаты Mir Pay должна отображаться на мобильных версиях сайтов и на мобильных устройствах с системой Android.

Для оплаты c помощью Mir Pay нужна версия приложения 1.16.2.341 и выше.

Обратите внимание

Оплата с помощью Mir Pay будет доступна только после подключения этого способа службой поддержки.

Проведение оплаты

Для проведения платежа владельцу платёжной формы со способом оплаты Mir Pay необходимо:

  • реализовать вызов приложения Mir Pay из своего интерфейса;
  • реализовать получение на сервере зашифрованных данных от Mir Pay In-Application.

Эти шаги выполняются одним из следующих участников:

Для проведения платежа агрегатору необходимо:

  • реализовать расшифровку данных, полученных от Mir Pay In-Application;

    Если п.1 - п.3 сценария «Подключение ТСП» выполняются ТСП агрегатора, агрегатор получает эти данные непосредственно от ТСП.

  • реализовать передачу расшифрованных данных QIWI — вызов метода создания платежа с оплатой Mir Pay;

  • протестировать функциональность совместно с QIWI и НСПК.

Пример проведения оплаты описан и изображён ниже. В примере оплата осуществляется с платёжной формы агрегатора, технология взаимодействия с НСПК — Deep Link/Universal Link.

  1. Клиент выбирает товар или услугу на торговой площадке TCП, переходит к оплате — попадает на платёжную форму агрегатора и нажимает кнопку оплаты Mir Pay.
  2. Платёжная форма агрегатора осуществляет вызов и передачу данных в приложение Mir Pay с помощью Deep Link/Universal Link.

    Сообщение подписывается SK.MERCH_ID.

  3. Приложение Mir Pay формирует запрос на проверку подписи и НСПК проверяет подпись с помощью PK.MERCH_ID (получен на этапе выполнения сценария «Подключение ТСП агрегатора»)

  4. Клиент выбирает в приложении одну из привязанных ранее карт для оплаты заказа и подтверждает платёж.
  5. Приложение Mir Pay формирует зашифрованный пакет с токеном и данными платежа и возвращает его на сервер агрегатора. Данные шифруются с помощью публичного ключа агрегатора PK.APPREG и пописываются с помощью секретного ключа НСПК SK.NSPK.
  6. Агрегатор расшифровывает пакет с токеном и данными платежа с помощью SK.APPREG и проверяет подпись расшифрованного сообщения с помощью PK.NSPK (получены на этапе выполнения сценария «Регистрация агрегатора»).
  7. Агрегатор формирует запрос на создание платежа с оплатой Mir Pay на основе расшифрованных данных и отправляет его QIWI.

    Запрос приведён в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.

    Пример запроса
    PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
    Accept: application/json
    Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
    Content-type: application/json
    Host: api.qiwi.com
    
    {
      "amount": {
        "currency": "RUB",
        "value": 1.00
      },
      "paymentMethod" : {
          "type": "CARD",
          "pan": "4444443616621049",
          "expiryDate": "12/19",
          "external3dSec": {
              "type": "MIR_PAY",
              "cav": "3D6FC826A08C82B89780029F69670FDDCF299B",
              "transId": "5ab52487-177f-464b-b695-2954ffc44a13",
              "mid": "000000000000001",
              "media": "DL",
          },
      "flags": [ "SALE" ]
      }
    

Далее процесс соответствует описанию одношагового сценария оплаты (см. п.4).

Обратите внимание

Для аутентификации клиента с помощью 3D-Secure при оплате с помощью Mir Pay агрегатор не выполняет никаких действий — подтверждение владения картой выполняет Mir Pay.

%%{init: {
    "sequence" : {
        "wrap":true,
        "messageFontSize":14,
        "noteFontSize":12,
        "actorMargin":
        60 }}}%%
sequenceDiagram
    participant С as Клиент
    participant P as Агрегатор
    participant M as Mir Pay
    participant Q as QIWI
    С->>P: Оплата товара или услуги
    Note right of С: Mir Pay
    P->>M: Вызов приложения Mir Pay и передача данных
    Note right of P: Deep Link / Universal Link
    M->>С: Отображение привязанных карт
    С->>С: Выбор карты, подтверждение платежа
    С->>M: Подтверждение платежа
    M->>M: Формирование пакета с токеном и данными платежа
    M->>P: Зашифрованный пакет с JWE-токеном и данными платежа
    P->>P: Расшифровка
    P->>Q: Запрос на создания платежа с оплатой Mir Pay
    Note right of P: siteId, paymentId, pan, cav, transId, mid, media
    Q->>P: Ответ на запрос создания платежа
    Note left of Q: siteId, paymentId, amount, status:COMPLETED

Тестирование

Общие правила тестирования описаны в статье «Тестирование». Здесь мы расскажем об особенностях тестирования сценария проведения оплаты с помощью Mir Pay.

Агрегатор может протестировать проведение оплаты совместно с НСПК и QIWI. Детали тестирования взаимодействия с НСПК необходимо уточнить непосредственно у НСПК.

Для тестирования запроса на создание платежа с оплатой Mir Pay агрегатор использует определённые значения в качестве параметров запроса:

Результат выполнения операции определяется сроком действия карты (expiryDate).

Обратите внимание

Для тестирования взаимодействия с QIWI site_id агрегатора должен находиться в тестовом режиме.

Оплата для провайдеров платежей

Раздел в процессе написания. Скоро мы опубликуем здесь полезную информацию.