从 PHP 中的异步 HTTP POST 调用获取参数
Getting parameter from asynchronous HTTP POST call in PHP
我正在尝试将银行的虚拟支付系统集成到我的网站中。
银行系统对我定义的 URL(PHP 文档)进行异步 HTTP 调用,然后我尝试从那里获取订单 ID 并将订单标记为已付款。
我面临的问题是,仅通过 HTTP 调用我似乎无法获得此 ID 参数,因为预期的结果(couchdb 文档被标记为已付款)不存在。
但是,当我浏览到我的文档并在其后粘贴 HTTP 调用的内容时,它就起作用了,如下所示:
http://example.com/crud.php?Ds_SignatureVersion=xxx&Ds_MerchantParameters=xxx&Ds_Signature=xxx
在我的 crud.php
上,我执行以下操作:
$test = $_GET['Ds_MerchantParameters'];
为什么我在浏览 URL 时设法获取此参数,但在银行系统发出 HTTP POST 调用时却没有?
如果银行系统向您的站点发出 POST 请求,则传递的参数不在 $_GET
中,而是在 $_POST
中。所以改变
$test = $_GET['Ds_MerchantParameters'];
到
$test = $_POST['Ds_MerchantParameters'];
如果您希望能够对页面同时使用 GET 和 POST 请求,您还可以使用 $_REQUEST:
$test = $_REQUEST['Ds_MerchantParameters'];
我正在尝试将银行的虚拟支付系统集成到我的网站中。
银行系统对我定义的 URL(PHP 文档)进行异步 HTTP 调用,然后我尝试从那里获取订单 ID 并将订单标记为已付款。
我面临的问题是,仅通过 HTTP 调用我似乎无法获得此 ID 参数,因为预期的结果(couchdb 文档被标记为已付款)不存在。
但是,当我浏览到我的文档并在其后粘贴 HTTP 调用的内容时,它就起作用了,如下所示:
http://example.com/crud.php?Ds_SignatureVersion=xxx&Ds_MerchantParameters=xxx&Ds_Signature=xxx
在我的 crud.php
上,我执行以下操作:
$test = $_GET['Ds_MerchantParameters'];
为什么我在浏览 URL 时设法获取此参数,但在银行系统发出 HTTP POST 调用时却没有?
如果银行系统向您的站点发出 POST 请求,则传递的参数不在 $_GET
中,而是在 $_POST
中。所以改变
$test = $_GET['Ds_MerchantParameters'];
到
$test = $_POST['Ds_MerchantParameters'];
如果您希望能够对页面同时使用 GET 和 POST 请求,您还可以使用 $_REQUEST:
$test = $_REQUEST['Ds_MerchantParameters'];