在 PHP 中对 HTTP POST 响应进行多次检查



我有一个页面,客户可以从中进行多次付款。每次付款都通过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);

因为postfields最初通过隐藏表单发送到服务器,该表单通过JQuery自动提交。

我想知道如何进行多次检查以查看用户是否已完成付款过程。

如果您同时进行多个调用,我建议您设置某种类型的队列。 例如,当您提交表单时,它实际上将信息发送到一个脚本,该脚本将要处理的付款排队。 然后,可以使用 AJAX 轮询队列,并在处理队列时显示进度表或其他 UI 效果。 完成后,并且队列为空,页面将反映付款全部成功,并显示报告的任何错误。

拥有队列系统还可以解决请求之间未保存状态的问题,并且即使用户在完成之前关闭了浏览器,也会继续处理。

最新更新