Повернення після checkout
Навігація покупця не підтверджує оплату.
У налаштуваннях проєкту задайте HTTPS successUrl, cancelUrl і точні домени allowedRedirectDomains.
Для сесій v2 checkout додає sessionId і status у нижньому регістрі. Для рахунків v1 — invoiceId і status. Наявні однойменні параметри замінюються, решта зберігається; кодування може нормалізуватися.
Після серверного PAID виконується автоматичний перехід на successUrl. Інші стани пропонують ручне повернення на cancelUrl. Завершення локального таймера не змінює серверний статус і не спричиняє автоматичного повернення: своєчасний переказ ще може підтверджуватися. Вихід зі сторінки не скасовує переказ.
Приклад v1: https://shop.example/payment/success?source=checkout&invoiceId=INVOICE_ID&status=paid. Для v2 замість invoiceId використовується sessionId. Не додавайте секрети або особисті дані в URL. BramaPay не передає в URL externalId, суму чи підпис як доказ оплати.
Збережені адреси повернення фіксуються під час створення. Зміна проєкту впливає на нові платежі; за відсутності URL checkout не вигадує адресу.
На сервері знайдіть збережений зв’язок платежу із замовленням поточного покупця. Перевірте підпис події та/або авторизований статус відповідного API й вимагайте PAID. Виконуйте замовлення ідемпотентно. Якщо повернення прийшло раніше за подію, покажіть очікування; не оголошуйте оплату чи остаточну відмову лише за URL.