Перейти к основному содержимому

Касса (Checkout)

Создайте безопасную ссылку для оплаты на размещенной странице. Это снижает вашу нагрузку по соблюдению требований PCI, так как PayPorter обрабатывает данные карт.

Сгенерируйте уникальный URL кассы для перенаправления вашего клиента.

POST/api/checkout

Параметры запроса (Request Parameters)

ПараметрОбязателенТипОписание
orderIdДаstringНомер заказа клиента для отслеживания (например, ORD-12345).
amountДаnumberСумма транзакции (например, 100.50).
currencyДаstringКод валюты ISO (например, TRY).
descriptionНетstringКраткое описание покупки.
callbackДаstringURL, который будет вызван после обработки платежа.
customerIdНетstringНеобязательный уникальный идентификатор клиента.
maxInstallmentCountНетnumberМаксимальное количество разрешенных рассрочек (по умолчанию: 1).
interestPaidByCustomerНетbooleanОплачиваются ли проценты за рассрочку клиентом (по умолчанию: false).

Ответ (Response)

ПолеТипОписание
checkoutIdstringУникальный идентификатор кассы (UUID).
redirectUrlstringURL для перенаправления пользователя для завершения оплаты.

2. Перенаправление пользователя

После получения redirectUrl перенаправьте пользователя для безопасного завершения оплаты на размещенной странице PayPorter.

3. Обработка обратного вызова (Callback Processing)

После обработки платежа (успешной или нет) PayPorter отправит POST-запрос на ваш callback URL с checkoutId в качестве данных формы.

4. Получение статуса кассы

Получите окончательный статус транзакции, используя checkoutId.

GET/api/checkout/{checkoutId}

Параметры пути (Path Parameters)

ПараметрТипОписание
checkoutIdstringUUID, полученный в обратном вызове.

Ответ (Response)

Возвращает объект ApiPaymentResponse с деталями платежа (идентичен ответу Direct Payment).


Поток оплаты через кассу (Checkout Flow)

  1. Генерация ссылки: Вызовите эндпоинт /api/checkout.
  2. Перенаправление: Отправьте пользователя на redirectUrl.
  3. Ожидание: Слушайте POST-запрос на вашем callback URL.
  4. Извлечение: Получите checkoutId из данных формы обратного вызова.
  5. Проверка: Вызовите эндпоинт /api/checkout/{checkoutId}, чтобы получить окончательный статус.
  6. Подтверждение: Считайте платеж успешным только если статус — SUCCESS.

Пример реализации (JavaScript)

// 1. Создание ссылки на оплату
const createCheckout = async (orderDetails) => {
const response = await fetch('https://api.example.com/api/checkout', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'your_api_key_here',
'X-API-SECRET': 'your_api_secret_here'
},
body: JSON.stringify(orderDetails)
});
const data = await response.json();
return data.redirectUrl;
};

// 2. Обработчик обратного вызова (пример на Express)
app.post('/payment-callback', async (req, res) => {
const checkoutId = req.body.checkoutId;
const checkoutStatus = await getCheckoutStatus(checkoutId);

if (checkoutStatus.status === 'SUCCESS') {
// Обработка успешного платежа
console.log('Платеж успешен');
} else {
// Обработка неудачного платежа
console.log('Платеж не удался');
}

res.sendStatus(200);
});

// 3. Получение статуса кассы
const getCheckoutStatus = async (checkoutId) => {
const response = await fetch(`https://api.example.com/api/checkout/${checkoutId}`, {
method: 'GET',
headers: {
'X-API-KEY': 'your_api_key_here',
'X-API-SECRET': 'your_api_secret_here'
}
});
return await response.json();
};