SagePay 表单集成 V3.0 错误 - 3045:缺少货币字段


SagePay Form Integration V3.0 error - 3045 : The Currency field is missing

我在将sagepay表单集成到网站时遇到问题。

我已经生成了表单并将其发布到正确的URL,但是我得到3045:设置货币字段时缺少。

在这里可能遗漏了什么明显的东西可以检查吗?

这让我相信我的加密功能不正确?我可能是错的,但这是我用来加密数据的函数:

public function encryptAndEncode($strIn, $vendorTxCode) {
    $strIV = $this->_password;
    $strIn = $this->addPKCS5Padding($strIn);
    $strCrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->_password, $strIn, MCRYPT_MODE_CBC, $strIV);
    return "@" . bin2hex($strCrypt);
}

没有PHP的集成指南,所以如果有人知道教程/文档,他们可以指出我会很棒。

谢谢

如果加密/编码方式不正确,您将始终收到货币错误。查看我编写的简单 php 类 https://github.com/tolzhabayev/sagepayForm-php 它为您进行编码

使用Form时,如果您得到无效货币,请检查大小写是否正确,即英镑将是货币=英镑而不是Curreny=GBP。还要检查您的Sage Pay帐户是否支持货币,就像您尝试处理欧元交易(货币=EUR)一样,当您没有将该货币分配给您的商家编号和Sage Pay时,您将收到无效的货币错误。

检查是否对测试或/和实时使用了正确的加密密码,因为测试和实时的加密密码不同。加密密码区分大小写。它不应超过 16 个字符(基数为 64 编码)。

我也有同样的事情发生,并尝试了几乎所有事情,包括与 Sage 支持人员交谈。

是的,

加密密码可能是您的问题,但如果您像我一样从服务器集成转移到表单 U 可能想检查您正在使用的 URL

我的问题是以前的开发人员留给我的 git 存储库在实时站点使用表单时具有服务器集成 URL,给我留下了错误

检查您的网址,不得不更改我的网址

https://test.sagepay.com/gateway/service/vspserver-register.vsp

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

哎呀,希望对某人有帮助