如何解决Worldpay响应检查MAC值
我正在开发一个小型PHP应用程序,允许用户使用worldpay hosted integration在我的网站上付款。
我正在使用https://secure-test.worldpay.com/jsp/merchant/xml/paymentService.jsp的worldpay测试环境,也正在使用test cards。
我在网站上的/index.PHP
上有一个表单,提交后它会将表单值(金额/ cartId /货币/电子邮件/等...)发布到/xml.PHP
,在其中捕获值并插入他们到我的XML。使用cURL,我将此XML发送给worldpay,然后将用户重定向到worldpay付款页面以完成购买。到目前为止一切正常。
$successURL = urlencode( "/callback.PHP?paymentStatus=success");
$failureURL = urlencode( "/callback.PHP?paymentStatus=failure" );
$pendingURL = urlencode( "/callback.PHP?paymentStatus=pending" );
$errorURL = urlencode( "/callback.PHP?paymentStatus=error" );
在我的callback.PHP
中,我正在检查$_GET['paymentStatus']
并使用index.PHP
重定向到$_SESSION['paymentStatus']
。像这样的东西
$paymentStatus = $_GET['paymentStatus'];
if( $_SESSION['paymentStatus'] = 'success'; ){
header('Location: index.PHP');
exit();
}
// etc
在我的index.PHP
中,我正在检查$_SESSION['paymentStatus']
并相应地显示一条消息。
到目前为止,在我的测试过程中,所有功能似乎都可以正常工作,但是我对securing payments with the MAC感到困惑。 worldpay管理员已为我分配了一个MAC Secret
值,但不确定如何使用它。
我知道我需要将worldpay响应中发送的MAC值与我提供的MAC值进行比较,以确保它是真实的。问题是我不知道在哪里检查their MAC response?
当我在测试环境中提交(成功)付款时,我将被重定向回到索引页面,并显示我的自定义成功消息。当我查看控制台并检查“网络”选项卡时,我可以看到带有响应标头的各种文件,但是它们都没有包含示例的内容;
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
根据their docs;
Worldpay到结果URL的重定向消息中包含许多 参数包括:
orderKey,paymentAmount,paymentCurrency,paymentStatus
print_r($_GET);
die();
这就是我所看到的;
Array ( [paymentStatus] => success )
关于应该在哪里检查这些参数的任何想法?是不是我在使用测试环境而不是实时环境,也许这些值不是在测试环境中发送的?
他们的文档到处都是...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。