Обновление с Sage Pay 2.23 до 3.00

Обновление с 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

2

Решение

Я предполагаю, что вы не обновили подпись, поэтому отклоняете транзакцию (так как похоже, что она была подделана). Вы должны рассчитывать подпись на основе значений ниже (это включает в себя несколько новых полей)

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

Другие решения

Я обнаружил проблему и исправил ее. Это было проверено и работает отлично.

Там еще один файл называется transaction-check.php, Мне пришлось добавить три дополнительных поля, так как они теперь являются обязательными в новой версии 3.00,

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

По вопросам рекламы [email protected]