藍新金流約定信用卡 API,mcrypt_encrypt 替代解法 (PHP 7.2 以上)
藍新金流的約定信用卡(不定期不定額)的 PHP 官方文件,
使用 mcrypt_encrypt 這個函式來加密,如下示。
function newebpay_creditcard_charge_encrypt__legacy($data=""){
GLOBAL $pay_auth;
return trim(bin2hex(mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
$pay_auth["key"],
newebpay_addpadding($data),
MCRYPT_MODE_CBC,
$pay_auth["iv"]
)));
}
但 mcrypt_encrypt 在 PHP 7.2 時棄用,
因此必須改用其他來代替。
爬了一些文章之後,
實測可以 openssl_encrypt 的 AES-256-CBC 直接換掉。
如下示:
function newebpay_creditcard_charge_encrypt($data=""){
GLOBAL $pay_auth;
return trim(bin2hex(openssl_encrypt(
newebpay_addpadding($data),
"AES-256-CBC",
$pay_auth["key"],
OPENSSL_RAW_DATA | OPENSSL_NO_PADDING,
$pay_auth["iv"]
)));
}
以上提供給需要的工程師大大們。
參考資料:
留言
張貼留言