Деталь статуса: 3045: поле Валюта отсутствует

Я добавил все параметры в URL Sagepay. Но это выбрасывает ошибку валюты отсутствует.
Я не могу решить эту проблему.

Код:

$cryptString  = 'VendorTxCode='.$this->getVendorTxCode();
$cryptString.= '&ReferrerID='.$this->getReferrerID();
$cryptString.= '&Amount='.sprintf("%01.2F",($order->order_total_price-$order->order_fee));
$cryptString.= '&Currency=GBP'; //Status Detail:   3045 : The Currency field is missing.
$cryptString.= '&Description='.$this->getDescription();
$cryptString.= '&SuccessURL=https://testurl/sage/success.php';
$cryptString.= '&FailureURL=https://testurl/sage/fail.php';
$cryptString.= '&CustomerName=Customer Name';
.......

И наконец я назвал метод шифрования

$cryptedString = $this->encryptAndEncode($cryptString);

Форма тега:

<form name='sagepay' action='{$pm_sagepay_url}' method='post'>
<input type='hidden' name='VPSProtocol'  value='3.00'>
<input type='hidden' name='TxType' value= 'PAYMENT'>
<input type='hidden' name='Vendor' value= 'protxross'>
<input type='hidden' name='Crypt' value= '{$cryptedString}'>
<input type='submit' value='{!pay!}' name='submit2' alt='{!sagepay_pay!}' >
</form>

Ошибка:

  • Деталь статуса: 3045: поле Валюта отсутствует.

Кто-то может помочь мне, как решить эту проблему.

введите описание изображения здесь

Я использовал данные тестового аккаунта с этим URL: ‘test.sagepay.com/gateway/service/vspform-register.vsp«; это работает,То же, что и данные реального счета сlive.sagepay.com/gateway/service/vspform-register.vsp«; но выдает ошибку: поле Валюта отсутствует.Кто-нибудь может мне помочь. —

1

Решение

У меня была похожая проблема, моя проблема оказалась другой ключ требуется, если отправка формы на

test.sagepay.com/gateway/service/vspform-register.vsp

или же

live.sagepay.com/gateway/service/vspform-register.vsp

Тот факт, что поле Валюта было размещено, было чем-то вроде красной сельди.

Надеюсь это поможет.

2

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

Я надеюсь, что вы бы решили свою проблему. В случае, если не попробуйте следующее.

Ищи function pkcs5_pad в вашем sagepay.php, который будет помещен в папку lib. И замените содержимое внутри этой функции следующим образом:

$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);

У меня была похожая проблема, и это решило для меня. Дайте мне знать, если это поможет вам.

0

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