1、第一次需要先用工具下载证书

用微信官网推荐的工具下载:https://github.com/wechatpay-apiv3/wechatpay-php/tree/main/bin

2、配置easyWeChat 6.x,请求证书

use EasyWeChat\Pay\Application;
$config = ['mch_id' => '',// 商户证书'private_key' => __DIR__ . '/certs/apiclient_key.pem','certificate' => __DIR__ . '/certs/apiclient_cert.pem',// v3 API 秘钥'secret_key' => '32二位密钥','platform_certs' => ['/path/to/wechatpay/cert.pem',],'http' => ['throw'  => true,'timeout' => 5.0,],
];
$app = new Application($config);
$api = $app->getClient();
$response = $api->get('/v3/certificates');
$response = $response->toArray();
//获得加密证书信息
$cert = end($response['data']);

3、解密证书并替换证书

用微信支付官方文档给的解密代码解密:
https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_2.shtml

<?phpclass AesUtil
{/*** AES key** @var string*/private $aesKey;const KEY_LENGTH_BYTE = 32;const AUTH_TAG_LENGTH_BYTE = 16;/*** Constructor*/publicfunction __construct($aesKey) {if (strlen($aesKey) != self::KEY_LENGTH_BYTE) {throw new InvalidArgumentException('无效的ApiV3Key,长度应为32个字节');}$this->aesKey = $aesKey;}/*** Decrypt AEAD_AES_256_GCM ciphertext** @param string    $associatedData     AES GCM additional authentication data* @param string    $nonceStr           AES GCM nonce* @param string    $ciphertext         AES GCM cipher text** @return string|bool      Decrypted string on success or FALSE on failure*/publicfunction decryptToString($associatedData, $nonceStr, $ciphertext) {$ciphertext = \base64_decode($ciphertext);if (strlen($ciphertext) <= self::AUTH_TAG_LENGTH_BYTE) {return false;}// ext-sodium (default installed on >= PHP 7.2)if (function_exists('\sodium_crypto_aead_aes256gcm_is_available') && \sodium_crypto_aead_aes256gcm_is_available()) {return \sodium_crypto_aead_aes256gcm_decrypt($ciphertext, $associatedData, $nonceStr, $this->aesKey);}// ext-libsodium (need install libsodium-php 1.x via pecl)if (function_exists('\Sodium\crypto_aead_aes256gcm_is_available') && \Sodium\crypto_aead_aes256gcm_is_available()) {return \Sodium\crypto_aead_aes256gcm_decrypt($ciphertext, $associatedData, $nonceStr, $this->aesKey);}// openssl (PHP >= 7.1 support AEAD)if (PHP_VERSION_ID >= 70100 && in_array('aes-256-gcm', \openssl_get_cipher_methods())) {$ctext = substr($ciphertext, 0, -self::AUTH_TAG_LENGTH_BYTE);$authTag = substr($ciphertext, -self::AUTH_TAG_LENGTH_BYTE);return \openssl_decrypt($ctext, 'aes-256-gcm', $this->aesKey, \OPENSSL_RAW_DATA, $nonceStr,$authTag, $associatedData);}throw new \RuntimeException('AEAD_AES_256_GCM需要PHP 7.1以上或者安装libsodium-php');}
}

解密代码并更新

$tool = new \AesUtil($config['secret_key']);
$res = $tool->decryptToString($cert['encrypt_certificate']['associated_data'], $cert['encrypt_certificate']['nonce'], $cert['encrypt_certificate']['ciphertext']);
file_put_contents('/path/to/wechatpay/cert.pem', $res);

easyWeChat 6.X微信支付V3下载更新微信支付平台证书相关推荐

  1. java微信支付v3系列——6.微信支付查询订单API

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  2. java微信支付v3系列——1.微信支付准备工作

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  3. java微信支付v3系列——7.微信支付之申请退款

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  4. java微信支付v3系列——8.微信支付之退款成功回调

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  5. java微信支付v3系列——5.微信支付成功回调

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  6. android版本的微信更新,安卓微信8.0版本在哪里更新?安卓微信8.0下载更新教程...

    安卓微信8.0版本在哪里更新?微信的最新版已经上线,但是安卓用户却没有找到更新的地方,所以想要了解安卓微信8.0版本更新的方法,那么下面就让小编带着大家一起来了解一下微信8.0版本安卓更新的具体详情. ...

  7. 微信支付V3==>公众号支付、踩坑、简单记录

    开始! 接支付前,看了微信支付文档(有点乱),也看了一些文章,都是假V3,点进去看demo还是XML格式,坑,不过多描述. V3接起来整体还是有些坑的,不过坑不深,这里简单记录一下,避免忘了再踩! 首 ...

  8. php app微信支付demo下载,HTML5微信支付DEMO

    在微信支付已经霸占了大部分人生活习惯的年代,一个不支持微信支付的商家都不好意思开店了,程序猿们可以下载查看HTML5微信支付DEMO来帮助您熟悉微信支付的代码,马上下载查看微信h5支付 demo的内容 ...

  9. 微信支付V3 消费后轮询支付结果的方案

    1.场景 在支付中, 我们经常会遇到支付后, 支付结果没办法同步返回的情况, 也就是说用户已经支付了, 但是具体支付结果还需要等待一小段时间才能知道, 微信的支付有很多种, 小程序, app,公众号, ...

  10. android测试版微信7.0下载地址,微信7.0.17内测版怎么下载?微信安卓7.0.17内测版下载地址及更新内容...

    大家都知道,今天,腾讯微信发布最新的安卓内测版 7.0.17 更新,官方日志是解决了一些已知的问题. 软件名称:微信安卓版 V8.0.3 for Android 最新官方正式版软件大小:174MB更新 ...

最新文章

  1. UVA10534-----Wavio Sequence-----动态规划之LIS
  2. SQL Server下载安装
  3. 这个功能是怎么实现的
  4. windous和Linux桌面版的比较
  5. Blender软件的一些快捷键
  6. 显示器不能全屏及开机慢解决方案
  7. 7-25 总结 Junit 测试 和断言 /ArrayList 和LinkedList 的区别/HashCode用来存放数据.
  8. 编译原理第二版5.1答案
  9. 基于linux嵌入式课程设计报告,嵌入式linux课程设计报告.doc
  10. 神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库
  11. (转载)Delphi开发经验谈
  12. Python——程序设计:商贷月供计算器
  13. actions vuex 请求_vue中在vuex的actions中请求数据实例
  14. Android蓝牙音乐(基于Android10)
  15. 180422 3步法Windows10引导Ubuntu开机启动
  16. python中*args和**kargs得用法总结
  17. 华硕服务器 u盘安装系统,怎样用U盘给华硕电脑装系统3种教程
  18. day01.介绍python运维开发
  19. 科技热点周刊|Linux 30 周年、Horizon Workroom 发布、Humanoid Robot、元宇宙
  20. 【web自动化测试】

热门文章

  1. 洛谷P3015 [USACO11FEB] Best Parenthesis
  2. 轻量级任务调度中间件
  3. android_98_自定义DragLayout
  4. CSPS2019Day1T1(格雷码)题解
  5. 前端最常用的移动App开发方式及技术栈详解
  6. JAVA中如何计算文具店总费用,文具店的连锁属于。
  7. 大野耐一的十条管理训诫|优思学院
  8. 中国MES市场主流厂商及产品分析
  9. 又一股份制银行,菊风「视频能力平台」承包了
  10. docker X509 证书错误的终极终极终极解决