我们无法使协议3的表单正常工作,并收到“此协议版本不支持5068加密方法”消息。我们拥有的加密代码如下所示。谁能告诉我我们哪里出问题了?
$stuff = @pkcs5_pad($stuff, 16);
$crypt = @base64_encode(@mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $order['gateway']['transkey'], $stuff, MCRYPT_MODE_CBC, '1234567812345678'));
function pkcs5_pad ($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}发布于 2013-11-26 18:41:48
您是否正在尝试对该请求使用模拟器帐户?如果是这样,版本3协议还不能与模拟器帐户一起工作,Sage Pay也不能估计何时可以使用模拟器帐户。
您将需要使用测试帐户来测试完整的v3集成,否则您可以集成到v2.23,注释掉额外的v3字段,并使用模拟器帐户进行测试。
然后,添加v3附加字段,并在模拟器可用时或在测试帐户上进行测试。
发布于 2013-11-26 19:24:14
您的Test和Live帐户的加密密码将有所不同。如果您需要您的加密密码,请拨打我们的支持热线0845 111 4455,他们将能够将密码发送给Sage Pay帐户的注册联系人。
如果您使用的是模拟器-它在v3.00上不可用。上面的评论是正确的,你可以使用v2.23来测试你的集成。如果ok,则更改为v3.00,以确保您正在检查所有必填字段是否已使用,并且返回响应是否为ok。
V3.00格式协议和集成指南可在here上使用。加密字段应以纯文本形式包含所有其他交易信息,这些信息以‘&’字符分隔的Name=Value字段表示。然后,应该使用AES/CBC/PCKS#5算法和预先注册的加密密码对该字符串进行加密,然后对其进行Base64编码,以便在超文本标记语言表单中进行安全传输。加密必须为16个字符。
如果您需要进一步的支持,您可以向feedback@sagepay.com发送电子邮件并参考此论坛帖子URL。
Sage Pay支持
https://stackoverflow.com/questions/20154385
复制相似问题