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

Для инициации платежа по картам нужно передать запрос на https://api.1payment.com/init_payment
со следующими параметрами:

см. формат запросов к API

  • partner_id - 1234 (ID партнера)
  • payment_type - card
  • project_id - 5678 (ID проекта)
  • account - 4111111111111111 (номер банковской карты)
  • card_holder - имя держателя банковской карты (как указано на карте)
  • year - год окончания действия банковской карты, две последние цифры (пример: 21)
  • month - месяц окончания срока действия банковской карты (пример: 01)
  • cvc - cvv/cvc проверочный код банковской карты
  • ip - ip адрес плательщика (опционально)
  • amount - 50 (сумма в валюте проекта)
  • description - описание платежа (опционально)
  • destination - номер карты для пополнения (опционально в случае p2p)
  • return_url - https://test.com/success (url возврата плательщика после оплаты, опционально)
  • user_data - уникальное значение, например, идентификатор платежа на стороне партнера
  • shop_url - URL сайта источника платежа (опционально)
  • ext_notification_url - Адрес, на который возвращается плательщик после 3ds (TermUrl), используется для 3DS v2.x
  • ext_browser_accept_header - содержимое HTTP-заголовка Accept. Макс 2048 символов, используется для 3DS v2.x
  • ext_browser_color_depth - Битовая глубина цветовой палитры браузера, используется для 3DS v2.x
  • ext_browser_ip - IP-адрес браузера, используется для 3DS v2.x
  • ext_browser_language - Язык браузера, IETF BCP47. Макс – 8 символов, используется для 3DS v2.x
  • ext_browser_screen_height - Высота (в пикселях) экрана браузера (window.screen.heigh). Макс – 6 символов, используется для 3DS v2.x
  • ext_browser_screen_width - Ширина (в пикселях) экрана браузера (window.screen.width). Макс – 6 символов, используется для 3DS v2.x
  • ext_browser_tz - Разница во времени в минутах между временем по UTC и местным временем браузера плательщика. Макс – 5 символов, используется для 3DS v2.x
  • ext_browser_user_agent - Содержимое HTTP-заголовка User-Agent. Макс – 2048 символов, используется для 3DS v2.x
  • ext_browser_java_enabled - Включен или выключен JavaScript в браузере плательщика. Возможные значения: true, false, используется для 3DS v2.x
  • ext_window_width - Ширина окна браузера (в пикселях, window.innerWidth), используется для 3DS v2.x
  • ext_window_height - Высота окна браузера (в пикселях, window.innerHeight), используется для 3DS v2.x
  • sign - (подпись)

Пример:

https://api.1payment.com/init_payment?partner_id=1234&payment_type=card&project_id=5678&account=4111111111111111&card_holder=TEST&year=22&month=01&cvс=111&amount=50&description=test_payment&sign=d724e1e6453a43397bb2aa6d6be9cc06

Подпись (sign) рассчитывается так: md5 от строки "init_payment + конкатенация всех параметров = значение в алфавитном порядке по возрастанию с разделителем & + секретный API Key" (кроме параметра sign)
Для запроса выше строка, от которой будет браться md5, имеет вид:

init_paymentaccount=4111111111111111&amount=50&card_holder=TEST&cvс=111&description=test_payment&month=01&partner_id=1&payment_type=card&project_id=5678&year=22[API_Key]

В ответ система выдаст в JSON вида:

{"order_id":"8p3brmb19gfg0sg8gcwhws8kgc748s87","3ds_url":"https:\/\/testsite.com","pa_req":"eJxVUl1TExYM=","md":"1234"}

Где:

  • order_id - Это id этого платежа, по нему можно будет узнать статус
  • redirect_url - URL на который необходимо отправить плательщика для завершения платежа (опционально)
  • 3ds_url - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds (опционально)
  • pa_req - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds v1.x (опционально)
  • creq - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds v2.x (опционально)
  • md - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds (опционально)

В ответе могут содержаться либо параметр redirect_url, либо параметры для прохождения 3-D Secure аутентификации.

Если в ответе содержится параметр redirect_url, то необходимо отправить плательщика на url, содержащийся в этом параметре.

Если для проведения платежа необходимо пройти 3-D Secure аутентификацию, то нужно отправить плательщика на ACS URL банка-эмитента, содержащийся в параметре 3ds_url, и передать в POST запросе параметры в зависимости от версии 3DS используемой банком эмитентом. Параметры для передачи описаны в разделе 3-D Secure аутентификация.

После прохождения 3-D Secure аутентификация банк-эмитент отправляет плательщика на TermUrl с параметрами PARes/cres и MD, содержащимися в POST.
Для продолжения обработки платежа вам необходимо отправить параметры PARes/cres  и MD на апи обработки платежа после 3-D Secure аутентификации
В случае, если в момент инициации платежа система не смогла получить данные о 3-D Secure аутентификации, то в ответе будет отсутствовать параметры 3ds_url, pa_req/creq и md. Тогда эти параметры поступят позже на ваш notify_url в промежуточном статусе (см ниже)

После получения статуса по оплате на ваш notify_url, указанный в настройках проекта, будет отправлено уведомление. Формат уведомления POST JSON со следующими параметрам:

  • payment_type - тип платежа (см. таблицу типы платежей)
  • order_id - идентификатор платежа
  • project_id - ID проекта
  • status - состояние платежа (2 - ожидание платежа, 3 - успешный платеж, 4 - отказ в платеже)
  • status_description - текстовое описание статуса (PENDING, SUCCESS или FAILURE, соответственно)
  • redirect_url - параметр присутствует, если для проведения платежа требудется отправить плательщика на соответствующий url
  • 3ds_url - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds
  • pa_req - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds v1.x
  • creq - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds v2.x
  • md - параметр присутствует, если для проведения платежа требуется отправить плательщика на ACS банка для прохождения 3ds
  • init_time - время создания платежа
  • status_time - время получения статуса о платеже
  • merchant_price - сумма платежа
  • user_price - отчисления партнера
  • currency - валюта платежа (трехбуквенный код ISO 4217 )
  • account - маска номера карты
  • status_code - поле будет содержать код ошибки (если это возможно) в случае отказа в платеже (опционально)
  • token - при успешном платеже содержит идентификатор сохраненной карты (для включения параметра обратитесь к менеджеру)
  • user_data - идентификатор, переданный при создании платежа
  • test - присутствует в случае тестирования, принимает значение 1
  • sign - Подпись (sign), рассчитывается так: md5 от строки "конкатенация всех параметров = значение в алфавитном порядке по возрастанию с разделителем & + секретный API Key" (кроме параметра sign)

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

Номер карты: 4111111111111111 - Успешная оплата
Номер карты: 4111111111111112 - Неуспешная оплата

CARD HOLDER: TEST
EXP: 01/01
CVС: 123