Защо е нужен тест преди стартиране
Сигурност. Скорост. Съответствие. Ако искате да вкарате платежен шлюз в живо, без да се случи “бум”, първата стъпка е да го подложите на стрес тест. Това е вашият щит срещу скрити фатални грешки.
Подготовка на средата
Тук влизат две неща – локален сървър и тестов акаунт от ePay. Първото е вашият “пясъчник”. Второто – без никакъв риск за реални средства, защото всички операции са в sandbox режим.
Създаване на тестов профил
Регистрирайте се в ePay.bg, изберете “Тестове”. Не се задоволявайте с обикновен акаунт – вземете “developer” достъп, иначе ще се чудите къде е проблемът.
Конфигуриране на API ключовете
Там има три кода: Public, Secret и Merchant ID. Копирайте ги в config файл. Имате ли ги в .env? Ако не, вие вече сте в задъненото кътче. Сега е моментът да ги проверите – един невалиден символ и всичко пада като късо съединение.
Проверката в действие
Запуснете скрипт, който имитира покупка. Първата заявка – иницииране на плащане. Трябва да получи 200 OK и ред с transaction_id. Ако има 4xx грешка, спирайте всичко. Сега е време за „callback“ проверка – ePay изпраща резултат към вашия endpoint.
Тестово уведомление (IPN)
Настройте URL за IPN в контролния панел на ePay. Той трябва да отговаря със статус 200 в рамките на 5 секунди. Забавяне? Това е вашият първи сигнал, че нещо не върви. Хванете ги с логове, а не с предпоставки.
Проверка на записите
Накрая сравнете транзакцията в базата с данните от ePay. Синхронните полета – amount, currency, status. Ако някое се различава, има проблем в трансформирането на данните. Това е вашият червен флаг.
Грешки, които обикновено се изпускат
Забравени SSL сертификати в тестовия домейн. Твърде строг CORS, който блокира POST заявките. Неправилни хешове при верификация на сигнатурите. Ако ползвате epaybgzalaganiya.com като референт, проверете дали DNS записите са свежи – кешът е вашият най-голям враг.
Финален щрих – автоматизирайте
Скриптове за CI/CD, които стартират тестове при всяко push-ване. Пишете малки unit тестове за validateSignature и за обработка на различни статуси. Нямате ли? Тогава вие просто ще се чудите защо в продукция се случва фаталната грешка.
И така – вземете готовия скрипт, настройте правилните ключове и пуснете тестова плащателна транзакция. Ако всичко отиде гладко, вашият шлюз е готов за реален свят. Започнете с един клик – проверете статус кода. Ако е 200, преминете към следващата стъпка – стартирайте живото изпълнение.
