sagepay表格协议3加密e新表格错误

时间:2013-11-22 20:59:40

标签: forms encryption sagepay

我们无法使协议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);
}

2 个答案:

答案 0 :(得分:0)

您是否尝试使用模拟器帐户来处理该请求?如果是这样,版本3协议尚未与模拟器帐户一起使用,Sage Pay也不会估计它何时可用。

您需要使用测试帐户来测试完整的v3集成,否则您可以集成到v2.23,注释掉其他v3字段,并使用模拟器帐户进行测试。
然后在v3附加字段中添加,并在模拟器可用时或在测试帐户上进行测试。

答案 1 :(得分:0)

您的Test and Live帐户的加密密码会有所不同。如果您需要加密密码,请致电我们的支持热线0845 111 44​​55,他们将能够将其发送给Sage Pay帐户的注册联系人。

如果您使用的是模拟器 - 它在v3.00上不可用。以上评论是正确的,您可以使用v2.23来测试您的集成。如果没问题,请更改为v3.00,确保您正在检查正在使用的所有必填字段,并且返回响应正常。

V3.00表单协议和集成指南可用here。 Crypt字段应包含纯文本中的所有其他事务信息,Name = Value字段由'&'字符分隔。然后应使用AES / CBC / PCKS#5算法和预先注册的加密密码对该字符串进行加密,然后对Base64进行编码以允许以HTML格式安全传输。地穴必须是16个字符。

如果您需要进一步的支持,可以发送电子邮件至feedback@sagepay.com并参考此论坛帖子网址。

Sage Pay支持