我正在尝试使用“表单集成”方法将 SagePay 支付网关集成到网站中。
基本上,表单集成方法通过在网页中插入表单并将信息发布到 SagePay 的服务器,只要选择表单的提交按钮即可。在将信息发送到 SagePay 的服务器之前,必须使用 AES/CBC/PKCS#5 算法对其进行加密,然后再进行 Base 64 编码。
我有加密的基本知识,但我没有在 PHP 中使用它的经验。谁能帮我在 PHP 中制定 AES/CBC/PKCS#5 算法吗?
到目前为止,这是我的努力:
$CRYPT = "Text Goes Here";
$blocksize = 16;//Does 16 Refer To 16 Bytes Or 16 Bits? 16 Bytes = 128 Bits.
$cryptLength = strlen($CRYPT);
$cryptLengthModuloBlocksize = $cryptLength % $blocksize;
$pad = $blocksize - $cryptLengthModuloBlocksize;
$padString = str_repeat(chr($pad), $pad);
$CRYPT = $CRYPT . $padString;
$encryptionPassword = 'password';
$Encrypted_CRYPT = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $encryptionPassword, $CRYPT, MCRYPT_MODE_CBC);
$Base64_Encrypted_CRYPT = base64_encode($Encrypted_CRYPT);
echo "<form action = 'https://test.sagepay.com/gateway/service/vspform-register.vsp' method = 'POST'>
<input type = 'hidden' name = 'VPSProtocol' value = '3.00' />//
<input type = 'hidden' name = 'TxType' value = 'PAYMENT' />
<input type = 'hidden' name = 'Vendor' value = 'vendorName' />
<input type = 'hidden' name = 'Crypt' value = '" . $Base64_Encrypted_CRYPT . "' />
<input type= 'submit' value = 'Submit'>
</form>";
任何帮助深表感谢。