Публичная оферта — «Единая касса» Wallet One

Подключение функционала и основы работы с протоколом Выплат

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

В результате генерации будет выдан код в виде 305D844C-40EC-4FD9-A2C3-5CD5D60B8A99 (GUID),

https://www.youtube.com/watch?v=ytpolicyandsafetyru

Внимание! Сохранение кода авторизации возможно только в момент его генерации, далее он предоставляется только в маскированном виде.

Authorization: Bearer 305D844C-40EC-4FD9-A2C3-5CD5D60B8A99

Срок действия кода авторизации, величина динамическая, первоначально при генерации составляющая 60 дней. В дальнейшем, при использовании кода в период, с Дата окончания действия — 60 дней/2 до Дата окончания действия, проводится изменение значения Даты окончания действия, на: Дата окончания действия = текущая дата 60 дней.

Весь процесс совершения выплат можно разбить на следующие этапы:

  • Создание платежа
  • Заполнение платежной формы реквизитами платежа
  • Подтверждение финальной формы
  • Контроль статуса платежа (при необходимости)

Публичная оферта — «Единая касса» Wallet One

В качестве примеров ниже будет приведен вывод на провайдера (поставщика услуг) с идентификатором ‘emtc’ с использованием формата данных json.

Список доступных провайдеров (поставщиков услуг) может быть индивидуальным для каждого пользователя. Для получения доступных провайдеров необходимо вызвать соответствующий метод.

Для совершения платежа по данному провайдеру необходимо передать следующие реквизиты: номер банковской карты и сумму платежа.В результате успешного платежа денежные средства с кошелька будут выведены на банковскую карту.

Получение баланса

  GET /OpenApi/balance
  GET /OpenApi/balance/{currencyId}

[
 {
    // Идентификатор валюты, согласно ISO 4217 (http://www.iso.org/iso/home/standards/currency_codes.html):
    "CurrencyId": 643,
    // Остаток:
    "Amount": 6.0000,
    // Сумма на сверхлимитном счете
    "OverLimitAmount": 6.0000,
    // Окрашенная часть остатка, на которую
    // распространяются определенные ограничения:
    "SafeAmount": 0.0000,
    // Часть остатка, заблокированная на время совершения
    // какой-либо расходной операции:
    "HoldAmount": 0.0000,
    // Доступный размер кредитного лимита:
    "Overdraft": 1.0000,
    // Сумма, доступная для совершения расходных операций:
    "AvailableAmount": 7.0000,
    // Является ли данная валюта основной:
    "IsNative": false,
    // Тип видимости
    "VisibilityType": "Always",
    // Прошел ли пользователь идентификацию в валюте
    "IsAccountIdentified": true,
    // Уровень идентификации валюты
    "IdentificationLevel": 11,
     // Филиал счета
     "BranchId": 120,
     // Истек ли срок действия удостоверения личности
     // по данной ИД
     "IdentificationExpired": false
 },
 ... // Список балансов в различных валютах
]

Получение доступных поставщиков услуг

 GET /OpenApi/providers?page={page}{amp}amp;itemsPerPage={itemsPerPage}{amp}amp;searchString={searchString}{amp}amp;currencyId={currencyId}

Обязательные параметры строки запроса:

  • page — номер страницы, начиная с 1
  • itemsPerPage — количество элементов на странице

Необязательные параметры строки запроса:

    searchString — строка для поиска по описанию поставщика услуг

    currencyId — валюта

GET /OpenApi/providers/{providerId}

Создание платежа

POST /OpenApi/payments
{
  "ProviderId":"emtc"
}

{
  "ProviderId":"emtc",
  "ExternalId":"1"
}


{
  "PaymentId": 40211382,
  "Form": {
    "FormId": "Index",
    "Fields": [
      {
        "RegEx": "^(\d |([\d\*] ))$",
        "MinLength": 16,
        "MaxLength": 19,
        "FieldType": "Scalar",
        "FieldId": "CardNumber",
        "Title": "Номер карты",
        "TabOrder": 1,
        "IsRequired": true
      },
      {
        "RegEx": "^\d (\.\d{1,4})?$",
        "MinLength": 1,
        "MaxLength": 10,
        "FieldType": "Scalar",
        "FieldId": "Amount",
        "Title": "Сумма к зачислению",
        "TabOrder": 2,
        "IsRequired": true
      },
      {
        "Value": "Перевод на новые реквизиты может занять до 24 часов",
        "FieldType": "Label",
        "FieldId": "info",
        "Title": "Обратите внимание",
        "TabOrder": 3,
        "IsRequired": false
      }
    ]
  }
}

  • PaymentId — идентификатор платежа, назначенный сервисом W1.
  • Form — платежная форма, ожидающая заполнения. При создании платежа форма всегда будет иметь идентификатор «Index». В данном случае, для заполнения Index формы необходимо предоставить 2 обязательных поля: CardNumber и Amount. Каждое поле может валидироваться по своему — за это отвечают свойства:
    • RegEx — значение поля должно соответствовать указанному регулярному выражению, иначе возникнет ошибка PAYMENT_FIELD_REGEX_ERROR
    • MinLength/MaxLength — строковое значения поля не должно выходить за рамки указанных значений, иначе возникнет ошибка PAYMENT_FIELD_MIN_LENGTH_ERROR или PAYMENT_FIELD_MAX_LENGTH_ERROR.
  • Свойство TabOrder — порядок, в котором ожидается отображение полей в пользовательском интерфейсе.
  • Свойство IsRequired — необходимость передачи поля для успешного совершения платежа.
  • Свойство FieldType — тип платежного поля. Поля с типом Label возвращаются с целью информирования пользователей о возможных особенностях провайдера. Поля с типом Scalar должны быть заполнены пользователем.

Если среди полей для заполнения присутствует поле с FieldId = ExtAccountId, то в него должен быть передан идентификатор внешнего платежного инструмента из Wallet One Checkout Host2Host API (метод «Получение списка платежных инструментов»).

Заполнение формы платежа

PUT /OpenApi/payments/{paymentId}

Заполнение формы созданного платежа с использованием идентификатора платежа W1.

PUT /OpenApi/payments?externalId={externalId}

Заполнение формы созданного платежа с использованием внешнего идентификатора.

PUT /OpenApi/payments?providerId={providerId}

Создание платежа одновременно с заполнением формы.

{
  "FormId": "Index",
  "Params": [
    {
      "FieldId": "CardNumber",
      "Value": "5555555555554444"
    },
    {
      "FieldId": "Amount",
      "Value": "33"
    }
  ]
}

  • FormId — идентификатор заполняемой формы.
  • Params — коллекция значений полей платежной формы.

{
  "PaymentId": 40211382,
  "Form": {
    "FormId": "$Final",
    "Fields": [
      {
        "Value": "555555******4444",
        "FieldType": "Label",
        "FieldId": "CardNumber",
        "Title": "Номер карты",
        "TabOrder": 1,
        "IsRequired": false
      },
      {
        "Value": "33 руб.",
        "FieldType": "Label",
        "FieldId": "Amount",
        "Title": "Сумма к зачислению",
        "TabOrder": 2,
        "IsRequired": false
      },
      {
        "Value": "50,96 руб.",
        "FieldType": "Label",
        "FieldId": "CommissionAmount",
        "Title": "Комиссия",
        "TabOrder": 100,
        "IsRequired": false
      },
      {
        "Value": "83,96 руб.",
        "FieldType": "Label",
        "FieldId": "WithdrawAmount",
        "Title": "Итого к оплате",
        "TabOrder": 101,
        "IsRequired": false
      }
    ]
  }
}

https://www.youtube.com/watch?v=upload

После заполнения Index формы клиенту будет возвращена финальная “$Final” форма, подтверждение, которой означает запуск процесса проведения платежа. При отправке финальной формы параметры значения полей передавать не нужно.

{
  "FormId": "$Final"
}

{
  "PaymentId": 40211382,
  "State": {
    "StateId": "Processing"
  }
}
Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть
Adblock detector