微信支付变更安全认证方式:平台证书改用公钥
创作时间:
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天内完成,应答进度由商户请求参数控制。更换完成后才可以进行平台证书作废操作。
热门推荐
简易零失败萝卜糕食谱!3款正宗港式萝卜糕做法、传统新派素食的好滋味
过滤器精度微米和目数怎么换算?
新人工作压力大?职场过来人分享5大建议,教你如何适应新环境!
电子防潮箱,你心爱相机的好保姆!
母亲探秘:打探孩子隐私,犯法吗?
法律咨询税点:法律服务行业的税务风险与合规管理
革命性的家庭效率提升:印度推动BLDC风扇
316不锈钢保温杯与305哪个好?答案可能出乎你的意料!
新能源汽车车牌怎么区分前后的
二手拖拉机上路出售合同:法律要点与签订注意事项
把家里的盐换一换,能省很多看病钱!但这2类人需要注意!
串口服务器在工业控制领域的应用:深度解析与前沿实践
Dshot协议 | 飞控与电调的数字通信协议
午休时间多久合适?专家建议20至30分钟最佳
步入仕途的林士章(探花)
Excel中计算平均动脉压(MAP)的完整指南
学篮球明星投篮技巧提升你的精准度与爆发力训练方法分析
英雄联盟新手攻略:无闪现英雄玩法指南
狗身上有跳蚤怎么办?用对药很关键!
天柱穴的准确位置图,艾灸按摩天柱穴的作用及功效
低空经济“四张网”
公司破产时物业如何处理?破产清算物业费由谁承担?
租赁税的征收方式是什么?
减脂期间可以吃辣椒吗?适量食用对减肥有积极作用
珊瑚砂,珊瑚骨,珊瑚石是什么,有什么区别?
怎么看懂你的验光结果?
阿司匹林与氯吡格雷:能互相替代和联用,但不能交替服用
职业规划不止是找工作:探索兴趣、技能与价值观的契合点,成就理想职业生涯
职场学习能力提升:如何持续学习与成长?
双相情感障碍心理咨询:家有双相患者,感觉生活也陷入混乱——双相陪伴指南