easyWeChat 6.X微信支付V3下载更新微信支付平台证书
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下载更新微信支付平台证书相关推荐
- java微信支付v3系列——6.微信支付查询订单API
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——1.微信支付准备工作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——7.微信支付之申请退款
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——8.微信支付之退款成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——5.微信支付成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- android版本的微信更新,安卓微信8.0版本在哪里更新?安卓微信8.0下载更新教程...
安卓微信8.0版本在哪里更新?微信的最新版已经上线,但是安卓用户却没有找到更新的地方,所以想要了解安卓微信8.0版本更新的方法,那么下面就让小编带着大家一起来了解一下微信8.0版本安卓更新的具体详情. ...
- 微信支付V3==>公众号支付、踩坑、简单记录
开始! 接支付前,看了微信支付文档(有点乱),也看了一些文章,都是假V3,点进去看demo还是XML格式,坑,不过多描述. V3接起来整体还是有些坑的,不过坑不深,这里简单记录一下,避免忘了再踩! 首 ...
- php app微信支付demo下载,HTML5微信支付DEMO
在微信支付已经霸占了大部分人生活习惯的年代,一个不支持微信支付的商家都不好意思开店了,程序猿们可以下载查看HTML5微信支付DEMO来帮助您熟悉微信支付的代码,马上下载查看微信h5支付 demo的内容 ...
- 微信支付V3 消费后轮询支付结果的方案
1.场景 在支付中, 我们经常会遇到支付后, 支付结果没办法同步返回的情况, 也就是说用户已经支付了, 但是具体支付结果还需要等待一小段时间才能知道, 微信的支付有很多种, 小程序, app,公众号, ...
- android测试版微信7.0下载地址,微信7.0.17内测版怎么下载?微信安卓7.0.17内测版下载地址及更新内容...
大家都知道,今天,腾讯微信发布最新的安卓内测版 7.0.17 更新,官方日志是解决了一些已知的问题. 软件名称:微信安卓版 V8.0.3 for Android 最新官方正式版软件大小:174MB更新 ...
最新文章
- UVA10534-----Wavio Sequence-----动态规划之LIS
- SQL Server下载安装
- 这个功能是怎么实现的
- windous和Linux桌面版的比较
- Blender软件的一些快捷键
- 显示器不能全屏及开机慢解决方案
- 7-25 总结 Junit 测试 和断言 /ArrayList 和LinkedList 的区别/HashCode用来存放数据.
- 编译原理第二版5.1答案
- 基于linux嵌入式课程设计报告,嵌入式linux课程设计报告.doc
- 神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库
- (转载)Delphi开发经验谈
- Python——程序设计:商贷月供计算器
- actions vuex 请求_vue中在vuex的actions中请求数据实例
- Android蓝牙音乐(基于Android10)
- 180422 3步法Windows10引导Ubuntu开机启动
- python中*args和**kargs得用法总结
- 华硕服务器 u盘安装系统,怎样用U盘给华硕电脑装系统3种教程
- day01.介绍python运维开发
- 科技热点周刊|Linux 30 周年、Horizon Workroom 发布、Humanoid Robot、元宇宙
- 【web自动化测试】