PreAuth and Completion NodeJS SDK
PREAUTH дозволяє заморозити кошти на картці клієнта без їх фактичного списання. Кошти утримуються до моменту виконання COMPLETION або закінчення терміну дії авторизації.
Попередня авторизація (PREAUTH)
Для ініціювання передайте hppPayType: 'PREAUTH' у метод createOrder. SDK автоматично встановить preAuthExpDate — поточний час плюс 2 години 30 секунд — якщо поле не передано явно.
Приклад ініціювання PREAUTH:
const orderData = {
coinAmount: 25000, // Сума в копійках
hppPayType: 'PREAUTH',
paymentMethods: ['CARD'],
successUrl: 'https://your-site.com/success',
failUrl: 'https://your-site.com/fail',
statusPageType: 'STATUS_TIMER_PAGE',
customerData: { senderCustomerId: 'customer_id_1' },
};
try {
const response = await client.createOrder(orderData);
console.log('Redirect to payment page:', response.redirectUrl);
console.log('HPP Order ID:', response.hppOrderId);
} catch (error) {
console.error('PREAUTH order creation failed:', error);
}Після успішної авторизації сервіс надішле callback з operation.type === 'PREAUTH'. Збережіть operation.operationId з callback — він знадобиться для виконання COMPLETION.
Завершення авторизації (COMPLETION)
COMPLETION списує кошти, заморожені попередньою PREAUTH-операцією. Сума списання може відрізнятися від суми попередньої авторизації не більше ніж на ±20%.
Метод createCompletion приймає два аргументи:
об'єкт із
originalOperationId,coinAmountта опціональнимnotificationUrl;originalCoinAmount— суму оригінальної PREAUTH-операції в копійках для перевірки допустимого діапазону.
SDK автоматично додає merchantId, merchantRequestId та date.
Приклад виконання COMPLETION:
Останнє оновлення