У меня есть интегрированный шлюз оплаты. Я не получил никакого ответа от payfast после перенаправления страницы успеха и оповещения. Каковы параметры ответа и как хранить данные транзакции в базе данных?
PayFast вернет свои возвращаемые переменные в вашу систему через обратный вызов ITN после успешной оплаты.
Эти возвращаемые переменные будут возвращены только на ваш notify_url
если он возвращает ответ header 200
в соответствии с их документацией .
Получите платежную информацию от PayFast, а затем сообщите PayFast, что эта страница достижима путем запуска заголовка 200, механизм оплаты совершит несколько попыток, один сразу, а затем один через 10 минут, затем экспоненциально с более длинными интервалами, пока он не получит OK 200 с вашего веб-сервера.
Вы сможете получить доступ к возвращаемым значениям через переменную $_POST
и использовать их для обновления базы данных.
// Notify PayFast that information has been received header( 'HTTP/1.0 200 OK' ); flush(); // Posted variables from ITN $pfData = $_POST; //update db switch( $pfData['payment_status'] ) { case 'COMPLETE': // If complete, update your application, email the buyer and process the transaction as paid break; case 'FAILED': // There was an error, update your application break; default: // If unknown status, do nothing (safest course of action) break; }
Здесь вы можете просмотреть образец кода PHP ITN для PayFast.