Оплата по QR-коду

Общая информация

Вы можете запросить у JetPay QR-код, чтобы пользователь по этому QR-коду мог перейти на страницу оплаты и оплатить. После того как пользователь откроет страницу оплаты, оплата будет проходить как описано в разделе Оплата с использованием Payment Page.

Шаги оплаты по QR-коду

Чтобы выполнить оплату с использованием QR-кода:

  1. Создайте и отправьте по URL-адресу https://paymentpage.jetpay.kz/payment/generate-qr запрос на оплату с использованием QR-кода.
  2. Примите от платежной платформы ответ (response) в формате HTTP-сообщения с данными для отображения QR-кода пользователю.
  3. Примите от платежной платформы оповещение (callback) с результатом проведения оплаты.

Запрос

В запросе на создание QR-кода для отображения страницы оплаты укажите необходимые параметры:

Табл. 1. Базовые параметры запроса на создание QR-кода

strictly required — параметр обязательно должен присутствовать в начальном запросе.

Параметр Описание

project_id
integer
strictly required

Идентификатор проекта, полученный от JetPay при интеграции.

Пример: 123

payment_id
string
strictly required

Идентификатор платежа, уникальный в рамках проекта.

Пример: payment_47

payment_currency
string
strictly required

Код валюты оплаты в формате ISO-4217 alpha-3.

Пример: KZT

payment_amount
integer
strictly required

Сумма оплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют.

Пример: 100,00 KZT передается как 10000

customer_first_name
string
strictly required

Имя пользователя.

Пример: John

customer_last_name
string
strictly required

Фамилия пользователя.

Пример: Doe

customer_email
string
strictly required

Адрес электронной почты пользователя.

Пример: johndoe@example.com

customer_id
string
strictly required

Идентификатор пользователя, уникальный в рамках проекта.

Пример: customer_123

signature
string
strictly required

Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Подписывание и проверка подписи.
При необходимости добавьте в запрос необязательные параметры из числа доступных для работы с Payment Page. Подробнее о параметрах запросов в Payment Page см. Параметры открытия платежной страницы Payment Page.

Вот пример параметров из запроса на оплату по QR-коду:

EPayWidget.run(
    {
        project_id: 123,
        payment_id: 'payment_47',
        customer_id: 'customer_123',
        customer_first_name: 'John',
        customer_last_name: 'Doe',
        customer_email: 'johndoe@example.com',
        payment_currency: 'KZT',
        payment_amount: 10000,  
        signature: 'kUi2x9dKHAVNU0FYldJrxh4yo...UCwX6R\/ekpZhkIQg=='
    }
)

Рис.: Пример GET-запроса на оплату по QR-коду

https://paymentpage.jetpay.kz/payment/generate-qr?payment_currency=KZT&language_code=ru&project_id=123&payment_amount=10000&customer_id=customer_123&payment_id=payment_47&signature=J5EVIByEojBn...etmdMozpECuRxOw%3D%3D

Ответ

После отправки запроса вы получите от платежной платформы ответ в формате HTTP-сообщения с данными для отображения QR-кода пользователю. Подробнее об ответах см. Ответ.

В ответе в параметре img_src содержатся данные в формате base64, которые надо преобразовать в изображение с QR-кодом. Разместите это изображение на странице своего сайта или мобильного приложения, чтобы пользователь мог его просканировать и выполнить оплату.

Рис.: Пример ответа с данными для преобразования в QR-код

{
    "img_src": "data:image/png;base64,iVBORw0KGgoAAAC+CAIi...2zk8HAU1QkMAAAORK5CYII="
}

Оповещение (callback)

Результат оплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения (callbacks) в Payment Page.

Рис.: Пример тела оповещения об успешно выполненной оплате

{
    "project_id": 123,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "mobile",
        "sum": {
            "amount": 10000,
            "currency": "KZT"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b085636c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 10000,
            "currency": "KZT"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "KZT"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhM...oB3cs9CRd4xeYG2Q=="
}