微信支付变更安全认证方式:平台证书改用公钥
创作时间:
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天内完成,应答进度由商户请求参数控制。更换完成后才可以进行平台证书作废操作。
热门推荐
南昌行政区划大变局:新建区和南昌县崛起
双重威胁:解析游戏中的僵尸恐龙组合
植物合成加神兽养成,<恐龙大战僵尸>重塑经典塔防玩法
塔防新作“恐龙大战僵尸”:融合创新题材与深度策略
四成老年人存在抑郁情绪,如何守护他们的心理健康?
5种头皮按摩法,轻松缓解头耳疼痛
重庆市沙坪坝区人民医院儿科:区域医疗中心的守护者
沙坪坝区人民医院发布冬季防疫指南:科学防护,共筑健康防线
沙坪坝区人民医院开展痴呆健康教育活动,助力全民科学素质提升
离婚后如何找到靠谱的心理咨询?
沈阳房价普跌:和平区跌15%,沈河区跌破万元
交通事故责任划分:从证据收集到赔偿计算的完整指南
沈阳二手房市场:挂牌价虚高,实际成交已跌两成
麻辣烤鱼的做法及配方
椒盐九肚鱼
冬季咳嗽克星:蜂蜜水、梨子、姜茶、鸡汤
中医妙招:告别凌晨咳嗽烦恼
冬季夜间咳嗽加重怎么办?
述职报告助力团队管理:从问题发现到持续改进
一文详解:年终述职报告与工作总结的区别与写法
西藏定日县地震为何造成重大人员伤亡?救援最需要哪些物资?
国家安全生产应急救援队伍——以“演”筑防 以“练”备战
自驾游穷游党必看:床车VS房车,究竟哪种方式能让你笑到最后
广西防城港至云南风情之旅:全方位自驾与自助游攻略指南
家暴不是家务事:报警取证,依法维权
健康的生活方式、合理饮食和充分体育锻炼,可减少约40%癌症发生率与死亡率
哺乳期被辞退可获双倍赔偿,女职工维权有法可依
民法典明确:这些情况下,祖孙有抚养赡养义务
美国大选关键时刻:亚利桑那州、内华达州和宾夕法尼亚州的决战
掌握“2放2不放”,轻松炖出完美排骨汤