Php Worldpay响应检查MAC值
我正在开发一个小的PHP应用程序,允许用户在我的网站上使用 我正在使用worldpay测试环境,我也在使用 我在我的网站上有Php Worldpay响应检查MAC值,php,xml,redirect,url-parameters,worldpay,Php,Xml,Redirect,Url Parameters,Worldpay,我正在开发一个小的PHP应用程序,允许用户在我的网站上使用 我正在使用worldpay测试环境,我也在使用 我在我的网站上有/index.php的表单,当提交表单时,它会将表单值(amount/cartId/currency/email/etc…)发布到/xml.php中,在那里我捕获这些值并将它们插入到我的xml中。我使用cURL将此XML发送到worldpay,然后将用户重定向到worldpay支付页面以完成购买。到目前为止都在工作 我已按照中所述设置自定义结果URL 在我的callback
/index.php
的表单,当提交表单时,它会将表单值(amount/cartId/currency/email/etc…)发布到/xml.php
中,在那里我捕获这些值并将它们插入到我的xml中。我使用cURL将此XML发送到worldpay,然后将用户重定向到worldpay支付页面以完成购买。到目前为止都在工作
我已按照中所述设置自定义结果URL
在我的callback.php
中,我正在检查$\u GET['paymentStatus']
并使用$\u会话['paymentStatus']
重定向到index.php
。有点像
$paymentStatus = $_GET['paymentStatus'];
if( $_SESSION['paymentStatus'] = 'success'; ){
header('Location: index.php');
exit();
}
// etc
在我的index.php
中,我正在检查$\u会话['paymentStatus']
,并相应地显示一条消息
到目前为止,在我的测试过程中,所有这些似乎都在工作,但我对此感到困惑。worldpay管理员已经为我分配了一个MAC Secret
值,但我不确定该如何使用它
我知道我需要将worldpay回复中发送的MAC值与我收到的MAC值进行比较,以确保其真实性。问题是我不知道去哪里查
当我在测试环境中提交(成功)付款时,我被重定向回我的索引页面,并显示我的自定义成功消息。当我查看控制台并查看网络选项卡时,我可以看到带有响应头的各种文件,但没有一个文件包含与示例类似的内容
我在“网络”选项卡中看到的一些文件是:
https://hpp-sandbox.worldpay.com/app/hpp/62-0/payment/result?validInputs=true&ajax=true
https://example.com/callback.php?paymentStatus=success
ddc.html
index.php
process
根据,
Worldpay指向结果URL的重定向消息包含以下内容:
参数包括:
orderKey、paymentAmount、paymentCurrency、paymentStatus
我已将以下内容添加到我的callback.php
print_r($_GET);
die();
这就是我所看到的
Array ( [paymentStatus] => success )
关于我应该在哪里检查这些参数,有什么想法吗?是否我使用的是测试环境而不是活动环境,也许这些值没有在测试环境中发送
他们的文档到处都是…mac在URL中,正如您所发布的,在
mac2
参数中。将其解析出来,按以下顺序(根据其文档)获取这些参数的值:orderKey:paymentAmount:paymentCurrency:paymentStatus
,然后运行,您应该在回调中的callback.php
中检查所有这些参数。php在$\u GET
上执行打印
,然后执行die
,你应该看到你所有的参数。您应该能够提取这四个参数,然后运行哈希\u hmac
。我现在在打电话,所以我不能写太多的代码,不幸的是,根据,你还需要进入他们的管理员界面,打开Send URL parameters
mac在URL本身,正如你所发布的mac2
参数。将其解析出来,按以下顺序(根据其文档)获取这些参数的值:orderKey:paymentAmount:paymentCurrency:paymentStatus
,然后运行,您应该在回调中的callback.php
中检查所有这些参数。php在$\u GET
上执行打印
,然后执行die
,你应该看到你所有的参数。您应该能够提取这四个参数,然后运行哈希\u hmac
。我现在在打电话,所以我不能写太多的代码,不幸的是,根据,你还需要进入他们的管理员界面,打开Send URL parameters
Array ( [paymentStatus] => success )