sagepay表单集成 - 无法解密返回的$ _GET ['crypt']字符串

时间:2014-10-22 13:33:06

标签: zen-cart sagepay

我使用以下加密方式进行了测试交易 -

<?php
function pkcs5_pad($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}

function encryptFieldData($input)
{
$key = "use your SagePAY encryption key here";
$iv = $key;

$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, "", MCRYPT_MODE_CBC, "");
if (mcrypt_generic_init($cipher, $key, $iv) != -1)
{
    $cipherText = mcrypt_generic($cipher,$input );
    mcrypt_generic_deinit($cipher);

    $enc = bin2hex($cipherText);
}
return $enc;
}
$str = "Currency=GBP";
$datapadded = pkcs5_pad($str,16);
$cryptpadded = "@" . encryptFieldData($datapadded);
?>
<html>
<form name="pp_form" action="SagePay test url" method="post">
<input name="VPSProtocol" type="hidden" value=3.00 />
<input name="TxType" type="hidden" value=PAYMENT />
<input name="Vendor" type="hidden" value="YOUR SAGEPAY ACCOUNT NAME HERE"     />
<input name="Crypt" type="hidden" value=<?php echo $cryptpadded;?> />
<p>Click here to submit 
    <input type="submit" value="here">
</p>
</form>
</html>

但是当SagePay返回加密字符串时,我不知道如何解密这些加密数据,因为我们必须在最后创建订单时对其进行解密。有人可以帮忙吗?

提前致谢。

0 个答案:

没有答案