Получение платежных методов
Платежный метод - сущность, которая хранит в себе всю информацию о предстоящем платеже.
Для начала работы необходимо сделать запрос на получение платежного метода, подставив id платежного метода в URL.
Swagger - подробное API платежных методов.
Механика работы
- Подключить платежные методы в системе FirstPay к своему мерчанту.
- Данные по платежному методу можно получить по запросу POST
https://{firstpay_url}/api/payment_methods/v1/{id}. - Важно!!! Запрос за получением информации о платежном методе необходимо делать каждый раз перед тем как пользователь попадет на страницу платежа.
Так как информация в платежном методе динамическая (поле
account), необходимо ее актуализировать каждый раз. То есть когда пользователь заходит на страницу платежных методов или выбирает "иконку" одного из платежных методов - необходимо послать запрос в FirstPay и получить актуальную информацию по платежному методу.
API
Для получения платежного метода по id: POST запрос https://{firstpay_url}/api/payment_methods/v1/{id}.
Таблица query параметров:
| Параметр | Тип | Обязательный | Описание | Пример |
|---|---|---|---|---|
| type | array[string] | Нет | У параметра есть два значения PAY_IN и PAY_OUT. Это тип платежного метода. Параметр не передается при запросе платежного метода по id. | .../v1?type=PAY_IN |
| locale | string | Нет | Возможные значения: en, hi, bn, az и другие. Параметр используется для локализации данных по заполняемым полям. Если не передавать параметр, то по дефолту переводы будут на en. | .../v1?locale=ru |
Таблица body параметров:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| publicKey | string | Да | Авторизация |
| merchantPaymentId | string | Да | Идентификатор платежа в системе мерчанта |
| merchantUserId | string | Да | Идентификатор пользователя в системе мерчанта |
| amount | float | Да | Сумма платежа |
| level | enum | Нет | Сообщает о виде направляемого трафика, принимает три возможных значения: FTD (first time deposit), STD (second time deposit) и TRUSTED (доверенные юзеры). О точных настройках направляемого трафика необходимо уточнить у тех.поддержки. |
| paymentPageInfo | object | Нет | Данные для конфигурации Payment Page |
| paymentPageInfo.successUrl | string | Да | Ссылка для перенаправления пользователя после успешной оплаты |
| paymentPageInfo.cancelUrl | string | Да | Ссылка для перенаправления пользователя в случае отмены |
| paymentPageInfo.pendingUrl | string | Да | Ссылка для перенаправления пользователя во время обработки платежа |
| paymentPageInfo.failUrl | string | Да | Ссылка для перенаправления пользователя после неудачной оплаты |
| paymentPageInfo.postBackUrl | string | Нет | URL для постбэка по аналогии с платежами |
| hash | string | Да | Авторизация |
Таблица возвращаемых ответов:
| code | Тело ответа | Описание |
|---|---|---|
| 200 | Платежный метод | При успешном запросе возвращаются данные по платежному методу (либо массив платежных данных, в зависимости от вызванного метода). |
| 400 | {"error": "some text here..."} | Ошибка возникает, если не удалось распарсить тело запроса и query параметры. (скорее всего они были переданы с ошибкой). |
| 401 | {"error": "NO_LOGIN"} | Ошибка возникает, если не передали в теле запроса поле publicKey. |
| 401 | {"error": "NO_TOKEN"} | Ошибка возникает, если не передали в теле запроса поле hash. |
| 401 | {"error": "NO_KEY"} | Ошибка возникает, если передан неправильный publicKey. |
| 401 | {"error": "UNAUTHORIZED"} | Ошибка возникает, если произошла ошибка при валидации publicKey и hash. |
| 404 | {"error": "ACCOUNT_NOT_FOUND"} | Ошибка возникает, когда в системе нет свободного аккаунта, куда можно отправлять средства в данный момент. |
| 404 | {"error": "NOT_FOUND"} | Ошибка возникает при запросе платежного метода по id, если такого метода нет в системе. |
| 500 | {"error": "some text here..."} | Ошибка возникает, когда сервер не смог обработать запрос и произошла какая-то не штатная ситуация. |