我在将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的集成指南,所以如果有人知道教程/文档,他们可以指出我会很棒。
由于
答案 0 :(得分:3)
如果加密/编码不正确,您将始终收到货币错误。看看我写的https://github.com/tolzhabayev/sagepayForm-php简单的php类,它为你编码
答案 1 :(得分:0)
使用表格时,如果您获得无效货币,请检查套管是否正确,即Great British Pound将是Currency = GBP而不是Curreny = gbp。同时检查您的Sage Pay帐户是否支持该货币,就好像您尝试处理欧元交易(货币= EUR),如果您没有将该货币分配给您的商家编号和Sage Pay,您将收到无效的货币错误。
检查您是否正在使用TEST或/和LIVE的正确加密密码,因为加密密码因Test and Live而异。加密密码区分大小写。它不应超过16个字符(基本64位编码)。
答案 2 :(得分:0)
我有同样的事情,并尝试了几乎所有的事情,包括与圣人支持谈话。
是的,加密密码可能是您的问题,但如果您只是喜欢我从服务器集成转移到表单,您可能想检查您使用的是什么网址
我的问题是以前开发人员给我留下的git repo有了服务器集成网址,而实时网站使用的表单让我错误
检查你的网址,不得不改变我的
https://test.sagepay.com/gateway/service/vspserver-register.vsp
到
https://test.sagepay.com/gateway/service/vspform-register.vsp
doh,希望对某人有帮助