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