Ввод карточных данных на сайте магазина

Если ресурс мерчанта сертифицирован PCI DSS то допускается процесс оплаты при котором данные банковской карты запрашиваются у покупателя на сайте мерчанта и процесс оплаты запускается непосредственно с сервера мерчанта.

При такой форме проведения платежа платеж создается в точности так же как при обычном варианте с вводом данных карты на стороне ПС OCTO.

При создании платежа (метод /prepare_payment) важно установить поле return_url в правильное значение - это должен быть адрес страницы на вашем ресурсе, включающий в query string идентификатор платежа, по которому сайт магазина идентифицирует платеж и отобразит покупателю статус платежа.

Инициализация процесса оплаты по созданному платежу

Метод: POST https://secure.octo.uz/pay/{UUID}

Тело запроса:

{
  "pan" : "4276380012341025",
  "exp":"2006",
  "cardHolderName" : "BOB MARLEY",
  "cvc2" : "123",
  "email" : "bob@yahoo.com",
  "card_token" : "95326fe5-db59-45c9-a947-3c5ac4fc5ef5",
  "method" : "bank_card"
}

Описание полей запроса:

Поле Обязательное Описание
UUID да octo_payment_UUID полученный от ОКТО в ответе на prepare_payment
pan да / нет Номер карты - обязателен при оплате без токена
exp да / нет Дата истечения срока действия карты в формате YYMM, - обязателен при оплате без токена
cardHolderName да / нет Имя держателя карты - обязателен при оплате без токена международными картами
cvc2 да / нет трехзначный код безопасности с обратной стороны карты - обязателен для междунарожных карт
email да / нет Email для отправки покупателю чека. Обязателен в случае если при создании платежа (prepare_payment) не был установлен параметр user_data.email
card_token да / нет токен банковской карты, созданный ранее методом /bind_card, обязателен если не указаны непосредственно данные карты (pan, exp, cardHolderName)
method да / нет Метод оплаты (платежная система bank_card, uzcard, mir_card, humo), обязателен при оплате без использования токена

Ответ сервера:

{
   "error":0,
   "errMessage":"",
   "data":{
      "id":75513,
      "uuid":"dbc92b5b-00b1-4012-b80a-828f87fd82e2",
      "merchantId":242,
      "merchant":null,
      "merchantTransId":"API super pan created 1",
      "totalSum":0.1,
      "splittedSum":0.1,
      "currency":"USD",
      "selectedMethod":"bank_card",
      "createTime":1582904132109,
      "expireTime":null,
      "peyedTime":null,
      "merCreateTime":48153000,
      "description":"Super PAN 2.0",
      "autoCapture":true,
      "withoutSite":false,
      "isTest":false,
      "returnUrl":"https://merchant-site.uz/user-s-home-page",
      "redirectUrl":"https://pay2.octo.uz/uzcard/sms/bd888340-d5b4-482b-a75a-4f9bc7c28c14",
      "payMethods":[
         {
            "only":null,
            "method":"bank_card"
         },
         {
            "only":[
               "mir"
            ],
            "method":"mir_card"
         }
      ],
      "status":"wait_user_action",
      "basket":null,
      "user":null,
      "airline":null,
      "language":null,
      "tariffId":2,
      "fee":0.004,
      "transferSum":0.096,
      "refundedSum":0,
      "optionalData":null,
      "forConsideration":false,
      "riskLevel":0,
      "auditedAt":null,
      "auditorId":null
    }
}

В данном ответе существенную роль играет поле redirectUrl, куда надо перенаправить покупателя для завершения процедуры 3D Secure.

В завершении процесса оплаты ПС OCTO перенаправляет покупателя на return_url установленный при создании платежа.

Коды ошибок:

Код Описание
0 нет ошибок
1 Платеж не найден
2 Слишком частый запрос: с одинаковым uuid платежа чаще 1 раза в сек.
3 Платеж просрочен (вышло время жизни ссылки на оплату)
4 Статус платежа не позволяет проводить оплату (уже оплачен/отменен или уже в процессе оплаты)
5 Возможность оплаты с передачей карточных данных не активирована
6 неуказаны или неверно указаны обязательные поля
7 недопустимая валюта платежа
8 в настройках мерчанта не указаны данные используемого ЕПОС-терминала
9 Передан одновременно токен + карточные данные в открытом виде
10 Не удалось получить данные карты по казанному токену
12 BIN карты не соответствует диапазону номеров выбранной платежной системы (method)
13 Платеж заблокирвоан из-за подозрения на фрод
14 в настройках мерчанта не уопределен маршрут оплаты для выбранной платежной системы
15 Неверну указан expireDate или карта просрочена
16 Неверный PAN
17 Ошибка верификации OTP
500 Внутренняя ошибка сервера (ошибка настроек или логики на стороне сервера)