php5.6 微信退款回调处理(AES-256-ECB+PKCS7Padding)

本文详细介绍了如何处理微信退款回调中的req_info字段解密。解密过程包括:base64解码加密串,使用MD5处理商户key得到32位解密key,然后进行AES-256-ECB解密(PKCS7Padding)。提供了一个名为WxEncrypt.php的解密类及其使用方法,要求PHP环境中必须安装mcrypt加密模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信退款的回调中有个字段是req_info。该字段微信官方给的解密方法是:

解密步骤如下: 

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

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

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

解密方法如下:

WxEncrypt.php:

<?php
/**
 * 微信退款回调参数解密类
 * User Demo
 * Data 2018-07-18
 */
namespace App\Services\Payment\wxpay;
use Exception;

class WxEncrypt {
 
    //解密秘钥,默认应该为用户的秘钥key
    private $key = '';

    //加密的串
    private $encStr = "";

  
    public function __construct($str, $key) {

        if (empty($str) || empty($key)) {
            throw new Exception('解密参数错误!');
        }
        $this->encStr = base64_decode($str);
        $this->key = md5($key);
    }

    /**
     * 获取解密的串
     */
    public function getDecStr() {
        return $this->decrypt($this->encStr);
    }

    /**
     * 对密文进行解密
     * @param string $encrypted 需要解密的密文
     * @return string 解密得到的明文
     */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值