2

从 Sage Pay 2.23 升级到 3.00

我目前正在我Sage Pay Server PHP Kit Includes File的一个项目中使用,你可能知道,Sage Pay 正在弃用 API 版本2.23,所以我被迫升级到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"$strProtocol="3.00",这似乎工作正常,直到我检查了 Sage Pay 后端。

显示此错误: 在此处输入图像描述

我知道我没有给你太多的工作,但也许其他人正在使用与我相同的库。

编辑:这是整个库的粘贴箱。http://pastebin.com/91AG8nLv

4

2 回答 2

0

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

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

$strDeclineCode = cleaninput($_REQUEST["DeclineCode"],"Text");
$strBankAuthCode = cleaninput($_REQUEST["BankAuthCode"],"Text");
$strExpiryDate = cleaninput($_REQUEST["ExpiryDate"],"Text");
于 2015-07-31T11:45:16.520 回答
0

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

{VPSTxId }+ VendorTxCode +
Status + TxAuthNo +
VendorName + AVSCV2 +
SecurityKey + AddressResult
+ PostCodeResult +
CV2Result + GiftAid +
3DSecureStatus + CAVV +
AddressStatus + PayerStatus
+ CardType + Last4Digits +
DeclineCode + ExpiryDate +
FraudResponse +
BankAuthCode
于 2015-07-31T10:39:15.517 回答