Я отправляю тестовую оплату в PayOne (Visa Card), и мой платежный статус за 2 минуты превращается из «назначенного» в «оплаченный», поэтому процесс оплаты правильный.
Строка «TSOK», которая требуется PayOne, доставляется моим через print("TSOK")
,
Как я могу получить POST
Вары с моего URL PayOne TransactionStatus?
Документация по PayOne API здесь не очень полезна.
Я не совсем понимаю, что вы спрашиваете здесь, но я постараюсь объяснить, как это работает, из моих собственных наблюдений.
Изменения статуса отправляются на ваш TransactionStatus
URL. Это будет POST с кучей параметров.
Ваш обработчик статуса транзакции должен сохранить эти данные (все простые строки в $_POST
) в соответствующее хранилище, а затем верните «TSOK», как только это будет сделано. Он должен сделать это быстро, потому что конечный пользователь будет ждать этого ответа при использовании метода оплаты «Front end» (он же размещенная форма).
Если вы вернете что-либо, кроме «TSOK», то PAYONE сочтет это ошибкой с вашей стороны и продолжит повторную отправку сообщения с интервалами, пока оно не будет окончательно принято. Таким образом, вы не можете ничего сообщить PAYONE, когда он отправляет вам статус транзакции, кроме как сказать «получил, спасибо!».
Когда пользователи перенаправляются на внешний интерфейс, вы должны следить за тем, что происходит в сеансе сервера. У вас будет свой собственный идентификатор транзакции и идентификатор, сгенерированный PAYONE — используйте их для поиска статуса транзакции, который был сохранен в базе данных в уведомлении «обратный канал».
Последнее быстрое примечание: все данные POST, отправленные PAYONE в сообщении о состоянии транзакции, будут кодироваться в соответствии с ISO-8859-1, независимо от того, какая кодировка использовалась для отправки запроса на оплату в первую очередь. Если ваш сайт использует UTF-8 — и большинство сайтов будет в эти дни — тогда не забудьте преобразовать кодировку входящих данных. utf8_encode()
сделаю это.
Надеюсь, это поможет.
Других решений пока нет …