Статус: 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 '; но он вызывает ошибку: поле «Валюта» отсутствует. Некоторые могут мне помочь. –

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

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

или

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

Тот факт, что поле «Валюта» находится, было немного красной селедки.

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

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

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

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

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