php微信退款回调通知,最新微信退款结果通知解密(php版)

本文详细介绍了微信官方提供的退款通知加密串解密步骤,包括base64解码、MD5加密和AES-256-ECB解密过程,并提供了一段可用的PHP解密代码示例。解密过程对于正确处理微信支付退款信息至关重要。
摘要由CSDN通过智能技术生成

微信官方给出的退款通知解密方法如下:

(1)对加密串A做base64解码,得到加密串B

(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )

(3)用key*对加密串B做AES-256-ECB解密

以下是自己亲测可用的解密方法

header("content-type:text/xml; charset=UTF-8");

function refund_decrypt($str, $key) {

$str = base64_decode($str);

$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB);

$block = mcrypt_get_block_size('rijndael_128', 'ecb');

$pad = ord($str[($len = strlen($str)) - 1]);

$len = strlen($str);

$pad = ord($str[$len - 1]);

return substr($str, 0, strlen($str) - $pad);

}

$str="微信同步的加密串req_info";

$key=MD5('商户key');

$data=refund_decrypt($str, $key);

echo $data;

?>注:对加密串req_info做base64解码会出现乱码,但不影响最终的解密

解密结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信退款通知中,微信会将通知以POST请求方式发送到您在商户平台设置的回调URL上。接收到退款通知后,您需要使用PHP代码解析和处理通知数据,并对重要数据进行解密。 以下是一个使用PHP处理微信退款通知解密重要数据的示例代码: ```php <?php // 获取POST请求的原始数据 $xmlData = file_get_contents("php://input"); // 将XML数据转换为关联数组 $data = simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA); $data = json_decode(json_encode($data), true); // 解密加密的重要数据 $encryptedData = $data['req_info']; // 加密的数据 $apiKey = '商户API密钥'; // 商户API密钥,需要替换为实际的密钥 // 使用AES-256-ECB算法进行解密 $decryptedData = openssl_decrypt(base64_decode($encryptedData), 'AES-256-ECB', md5($apiKey), OPENSSL_RAW_DATA); // 将解密后的数据转换为关联数组 $refundData = simplexml_load_string($decryptedData, 'SimpleXMLElement', LIBXML_NOCDATA); $refundData = json_decode(json_encode($refundData), true); // 在这里可以根据需求处理退款通知数据,比如更新订单状态、记录日志等 // 返回成功响应给微信服务器 echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>'; ?> ``` 请注意将代码中的`商户API密钥`替换为您自己的商户API密钥。此外,您还需要针对实际的业务需求进行相应的处理,比如更新订单状态、记录日志等。 重要提示:确保您的服务器使用HTTPS协议来接收和处理微信退款通知,以确保数据的安全性,同时也是微信支付服务的要求。 希望以上代码能帮助您解决问题。如果有任何进一步的疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值