从Sage Pay 2.23升级到3.00

时间:2015-07-31 10:12:52

标签: php sagepay sage-erp

从Sage Pay 2.23升级到3.00

我目前正在其中一个项目中使用Sage Pay Server PHP Kit Includes File,而且您可能知道,Sage Pay正在弃用API版本2.23,因此我被迫升级到{{ 1}}。

我所使用的文件的更改日志,如果有兴趣的话:

3.00

我尝试将*************************************************************************************************** * Change history * ============== * * 02/04/2009 - Simon Wolfe - Updated UI for re-brand * 11/02/2009 - Simon Wolfe - Updated for VSP protocol 2.23 * 18/12/2007 - Nick Selby - New PHP version adapted from ASP *************************************************************************************************** 切换为$strProtocol="2.23",这似乎工作正常,直到我检查了Sage Pay后端。

显示以下错误: enter image description here

我知道我没有给你很多工作,但也许其他人和我一样使用同一个图书馆。

编辑:这是整个图书馆的一个粘贴框。 http://pastebin.com/91AG8nLv

2 个答案:

答案 0 :(得分:0)

我的猜测是你还没有更新签名,因此拒绝交易(因为它看起来已被篡改)。您应该根据以下值计算签名(这包括一些新字段)

{VPSTxId }+ VendorTxCode +
Status + TxAuthNo +
VendorName + AVSCV2 +
SecurityKey + AddressResult
+ PostCodeResult +
CV2Result + GiftAid +
3DSecureStatus + CAVV +
AddressStatus + PayerStatus
+ CardType + Last4Digits +
DeclineCode + ExpiryDate +
FraudResponse +
BankAuthCode

答案 1 :(得分:0)

我发现了问题并修复了它。这已经过测试并且工作正常。

还有另一个名为transaction-check.php的文件,我必须添加三个额外的字段,因为它们现在在新版本3.00中是强制性的。

$strDeclineCode = cleaninput($_REQUEST["DeclineCode"],"Text");
$strBankAuthCode = cleaninput($_REQUEST["BankAuthCode"],"Text");
$strExpiryDate = cleaninput($_REQUEST["ExpiryDate"],"Text");