Сделайте несколько проверок для ответов HTTP POST в PHP

0

У меня есть страница, на которой клиент может делать несколько платежей. Каждый платеж производится через https во внешний источник, который в конце отправляет ответ HTTP POST. Ответ отправляется после того, как пользователь завершил процесс оплаты.

Я искал всюду, и я нашел много методов, которые решают проблему с curl, php://input, но я не могу понять, как сделать несколько проверок. С завитом я пробовал этот подход:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);

Это не сработало; Я не использовал

curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

поскольку почтовые поля отправляются на сервер изначально через скрытую форму, которая автоматически отправляется через JQuery.

Я хотел бы знать, как можно сделать несколько проверок, чтобы узнать, завершил ли пользователь процесс оплаты.

  • 0
    Вы должны получить обратный звонок от поставщика услуг, нет?
  • 0
    Вы должны заглянуть в официальный API для вашей клиентской платежной системы. Однако, если вы настаиваете на том, чтобы сделать свой собственный с нуля, вы можете сделать это с помощью заявления for
Показать ещё 1 комментарий
Теги:
curl

1 ответ

0

Если вы делаете несколько звонков одновременно, я бы предложил настроить какой-то тип очереди. Например, когда вы отправляете форму, она фактически отправляет информацию в скрипт, который ставит в очередь обрабатываемые платежи. Затем вы можете опросить очередь с помощью AJAX и показать индикатор выполнения или другой эффект пользовательского интерфейса во время обработки очереди. Как только он завершится, и очередь пуста, страница отражает, что все платежи успешны, а также отображают любые сообщения об ошибках.

Наличие системы очередей также решает проблему состояния, которое не сохраняется между запросами, и будет продолжать обрабатываться, даже если пользователь закрыл браузер до его завершения.

  • 0
    Я думал об этом, но это было бы возможно? Когда я отправляю форму, информация отправляется в собственную систему Банка, поэтому я не могу сделать запрос о состоянии платежа только после его завершения.
  • 0
    это моя точка зрения. Не отправляйте его напрямую в банк из формы. Отправьте его в очередь и используйте задание cron для отправки платежей в банк. Вы можете использовать что-то вроде ZMQ или Pheanstalk, или вы можете написать что-то довольно простое, чтобы сделать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню