0

我在将 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 没有集成指南,所以如果有人知道教程/文档,他们可以指出我会很棒。

谢谢

4

3 回答 3

3

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

于 2013-12-22T09:59:06.470 回答
0

我也有同样的情况,几乎尝试了一切,包括与圣人支持交谈。

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

我的问题是以前的开发人员留给我的 git repo 有服务器集成 url,而实时站点正在使用表单,这给我留下了错误

检查你的网址,不得不改变我的

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

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

哦,希望对某人有所帮助

于 2015-04-21T12:22:32.550 回答
0

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

检查您是否为 TEST 或/和 LIVE 使用了正确的加密密码,因为 Test 和 Live 的加密密码不同。加密密码区分大小写。它不应超过 16 个字符(base 64 编码)。

于 2013-10-29T12:52:43.393 回答