微信支付变更安全认证方式:平台证书改用公钥
创作时间:
2025-01-21 23:17:13
作者:
@小白创作中心
微信支付变更安全认证方式:平台证书改用公钥
问题说明
微信支付对于新申请商户号以及平台证书过期的商户,已不再签发平台证书,需要更换使用微信支付平台公钥进行敏感信息加密和通知回调签名验证。因此,此类商户号在调用获取平台证书接口时,会出现"证书不存在"或者"系统繁忙"的错误提示。
解决方案
目前会存在两种情况:
- 新申请的商户号在商户后台没有"平台证书"管理入口
- 存量商户存在有效期内的平台证书或平台证书已过期未签发
对于第一种情况,可以直接在商户后台启用"微信支付公钥"。下面的教程主要以存量商户切换公钥为例进行说明。
1.1 获取商户对应的平台公钥
商户后台 -> 账户中心 -> API安全 -> 申请"微信支付公钥",在点击申请时会提示查看指引,需要点击查看才能进行公钥申请。
下载公钥:
点击"下载公钥"后会自动下载文件名为'pub_key.pem'的公钥,并在后台生成以"PUB_KEY_ID"开头的公钥ID(如果丢失,可以在后台重复下载,公钥ID不变)。
1.2 接口开发
下面的示例说明均使用官方SDK,仅供参考。
PHP示例
// 从本地文件中加载「微信支付平台证书」或者「微信支付平台公钥」,用来验证微信支付应答的签名,这里直接使用前面从后台获取的微信支付平台公钥;
$platformCertificateOrPublicKeyFilePath = 'file:///path/to/wechatpay/certificate_or_publickey.pem';
$platformPublicKeyInstance = Rsa::from($platformCertificateOrPublicKeyFilePath, Rsa::KEY_TYPE_PUBLIC);
// 「微信支付平台证书」的「证书序列号」或者是「微信支付平台公钥ID」
// 「平台证书序列号」及/或「平台公钥ID」可以从 商户平台 -> 账户中心 -> API安全 直接查询到,这里直接写前面从后台获取的微信支付平台公钥ID,注意要带上'PUB_KEY_ID_'
$platformCertificateSerialOrPublicKeyId = 'PUB_KEY_ID_0114232134912410000000000000';
Java示例
// 可以根据实际情况使用publicKeyFromPath或publicKey加载公钥
Config config =
new RSAPublicKeyConfig.Builder()
.merchantId(merchantId)
.privateKeyFromPath(privateKeyPath)
.publicKeyFromPath(publicKeyPath)
.publicKeyId(publicKeyId)
.merchantSerialNumber(merchantSerialNumber)
.apiV3Key(apiV3Key)
.build();
Go示例
var (
wechatpayPublicKeyID string = "PUB_KEY_ID_0114232134912410000000000000" // 微信支付公钥ID
)
wechatpayPublicKey, err = utils.LoadPublicKeyWithPath("/path/to/wechatpay/pub_key.pem")
if err != nil {
panic(fmt.Errorf("load wechatpay public key err:%s", err.Error()))
}
// 初始化 Client
opts := []core.ClientOption{
option.WithWechatPayPublicKeyAuthCipher(
mchID,
mchCertificateSerialNumber, mchPrivateKey,
wechatpayPublicKeyID, wechatpayPublicKey),
}
client, err := core.NewClient(ctx, opts...)
// 初始化 notify.Handler
handler := notify.NewNotifyHandler(
mchAPIv3Key,
verifiers.NewSHA256WithRSAPubkeyVerifier(wechatpayPublicKeyID, *wechatPayPublicKey))
1.3 不使用SDK的情况
可以参考以下链接内的示例:点击查看
1.4 开发对接完成后
在商户后台更换验签方式。此操作需要超管进行操作并进行安全验证,更换以后回调灰度进度由平台控制在7天内完成,应答进度由商户请求参数控制。更换完成后才可以进行平台证书作废操作。
热门推荐
油性皮肤中药调理与疗效评价
看看汉朝有庙号的七位皇帝,你就知道含金量有多高?
入睡困难用什么泡脚好?助眠泡脚用什么最好
股票大涨前的15个特征
欧冠惊魂夜!曼城2-4遭巴黎逆转,崩盘之谜与破局之路!
反向链接如何提升你的网站排名
孩子可以喝茶、喝咖啡、吃巧克力嗎?咖啡因對小孩的影響是什麼?營養師替父母解惑。
透视A股新质生产力:六大特征浮现 四大产业迎增长周期
雅鲁藏布江源头在哪里? 雅鲁藏布江源头是哪里
中国战略价值最大的领土,被称为世界屋脊的青藏高原,有多重要?
这就是课本上的传奇——珍·古道尔!
天天象棋攻略心得:中盘的灵活变招策略
A-Level放榜季 解锁香港名校申请秘籍:港籍VS非港籍生申请优势全解析
让人深度睡眠叫不醒的药
青少年饮品指南:选择适合的茶类及其健康益处
脾虚,为什么越补越虚?专家分享正确的健脾方法,做好3事很关键
青藏高原隆起的地质时间线——附高清图解
快速申请日本永驻权方法:高度人才签证加分校|日本留学
枸橼酸坦度螺酮片适应症是什么?孕妇能吃枸橼酸坦度螺酮片么
约克夏常见病症及治疗方法(保护宠物健康,远离疾病)
玻璃罐头打不开怎么办?超实用「5招开盖技巧」不靠蛮力不用敲
油性皮肤怎么改善
《异形》系列大女主蕾普莉,如何从“异形克星”变成了“异形女皇”之母?
6G 时代即将来临:全球竞争与技术创新的新前沿
为什么胸口会“刺痛”几秒?是猝死的前兆,还是心脏病?答案来了
许美静演唱会被指"注水",南京市文化综合执法总队开始行政处罚调查
一文看懂华为制裁史:从“限芯”到“断供”再到重“芯”出发
鸡内金怎么服用
多次梦到犯罪:是生因还是心理因素?解析梦境背后的真相
越来越多的青少年开始使用ChatGPT完成学校作业 尽管该技术存在缺陷