Detalle del estado: 3045: falta el campo Moneda

He agregado todos los parámetros en la url de Sagepay. Pero arrojando un error de moneda faltante. No puedo resolver este problema.

Código:

$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'; ....... 

Y finalmente llamé al método de cifrado

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

Etiqueta de forma:

 

Error:

  • Detalle de estado: 3045: falta el campo Moneda.

Alguien puede por favor ayudarme a resolver este problema.

enter image description here

Tengo los detalles de la cuenta de prueba con esta url: ‘ test.sagepay.com/gateway/service/vspform-register.vsp ‘; funciona , al igual que los detalles de la cuenta real con ‘ live.sagepay.com/gateway/service/vspform-register.vsp ‘; pero arroja un error: falta el campo Moneda. Alguno puede ayudarme. –

Tuve un problema similar, mi problema resultó ser una clave diferente que se requería si publicaba un formulario para

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

o

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

El hecho de que el campo Moneda se estaba ubicando era una pista falsa.

Espero que esto ayude.

Espero que hayas resuelto tu problema. En caso de no intentar lo siguiente.

Busque la function pkcs5_pad en su sagepay.php que se colocará en la carpeta lib. Y reemplace el contenido dentro de esa función de la siguiente manera:

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

Tuve un problema similar, y esto resuelto para mí. Déjeme saber si esto le ayuda.