怎么还这么多问平台证书和公钥入口的啊,再写一遍
为什么新商户号,申请平台证书报错:无可用的平台证书,请在商户平台-API安全申请使用微信支付密钥??
为什么我的微信商户里找不到 微信支付公钥入口??
平台证书要过期了怎么办?没法重新申请平台证书,也没有切换公钥的入口,怎么办??
支付公钥灰度期间请求中Wechatpay-Serial是平台证书的ID??
为什么有得新注册得商户有微信支付公钥有的只有平台证书??
微信公钥验签错误怎么办??
如何从平台证书切换成微信支付公钥??
后台应答比例怎么不到100%??比例怎么不变一直是0??
商户证书、平台证书、公钥文件、v2和v3密钥都是干嘛的,傻傻分不清??
1、首先,【平台证书】有效期是5年会过期,微信支付差不多去年2024年底时间推出【微信支付公钥】(公钥不会过期)代替平台证书进行 v3接口的响应验签/回调验签,敏感信息加密(如果只接v2接口的人不用问啦)
快速区分:(或者自己看文档)https://pay.weixin.qq.com/doc/v3/merchant/4012153196
公钥ID格式类似:PUB KEY ID 0118000800002025034698789500000000
平台证书序列号格式类似(和商户api证书序列号格式一样):9751DF27C233F665E033BBDBFFB7E85DAC8B
平台证书下载后的文件名类似于wechatpay_471986577B4AFWI67102B44B65E04B9751CE12.pem
2、其次,
a、新商户:有的一申请后台就有公钥,直接商户后台下载使用就行。
有的一申请没有公钥,还是平台证书入口。可以选择:1、继续接口下载平台证书,快过期时切换公钥模式; 2、直接切换公钥模式(如何获取切换看下一条)
b、旧商户:平台证书未过期的话,想提前切换公钥模式(看下一条),或者已经过期了,还没入口(看下一条);
不想换公钥,想换回平台证书?不行(刚开始不行,现在又可以了hhhhh,因为很多人系统一开始就是平台证书,新拓展商户号不愿意用公钥,然后支付侧出了个商户号可以后台申请退回平台证书模式https://pay.weixin.qq.com/doc/v3/merchant/4015419357)
3、如何切换公钥?
后台有公钥入口,就找直接【申请下载】按钮即可
后台没有公钥入口,找人工申请,找人工申请,找人工申请!!!(后来好像有优化 可以生成商户API证书时 直接展示公钥入口了 可以自己尝试下载了。没有入口的接着找人工)
在线人工:https://support.pay.weixin.qq.com/online-service?from=wechatpay
或者私信联系质量助手(这个是专门负责证书切换的助手号,可能回复的慢一些):https://developers.weixin.qq.com/community/personal/oCJUsww_D7fM-yG9ntSW-DlVBCU0
4、公钥验签报错?先检查下验签用的哪个证书吧,特别是切换期间的,用之前平台证书那一套的就容易弄混。自己先把响应和回调的头部信息Wechatpay-Serial打印出来看看先。如果证书也对应的话,再按其他签名错误用文档验签工具和指引排查哈,这里只是说切换期间可以重点看看验签用的证书/公钥是否对应
5、后台比例一直是0,代表一直走的平台证书,特别是切换的情景,v3请求时要自己带上请求头Wechatpay-Serial为公钥ID
后台灰度比例一直不到100%,见:应答使用公钥比例=近7天用微信支付公钥调接口次数/近7天v3接口总调用次数(这部分的规则文档都有,不懂想详细理解的可以去看文档https://pay.weixin.qq.com/doc/v3/merchant/4012154180)
6、回调灰度比例的话 文档写啦 不能快进的
7、商户API证书、平台证书/微信支付公钥、v2密钥、v3密钥,可参考看下面区分:
【商户API证书】:(商户后台申请https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 申请后包含:apiclient_key.pem文件、apiclient_cert.pem文件、apiclient_cert.p12文件);用途:v2只有退款发红包等出资接口要用、v3所有接口请求都要用。5年有效期,过期后要自己要重新申请替换,否则就不能调接口了,所以商户自己要注意自己这个证书的部署和替换
【平台证书】:用于响应验签和敏感信息加密。必须用接口请求下载的(sdk的话底层会自动帮你去下载),
平台证书序列号格式类似(和商户api证书序列号格式一样):9751DF27C233F665E033BBDBFFB7E85DAC8B,下载后可以自己保存成一个.pem文件
有效期5年,过期需更换
【微信支付公钥】:功能和平台证书一模一样,就是为了替换平台证书的。没有有效期,商户后台下载,比平台证书好维护一些。
公钥ID格式类似:PUB KEY ID 0118000800002025034698789500000000,下载完就是个.pem文件
【v2密钥/v3密钥】后台设置、不能查看、只能重置。所以设置完注意自己和配套商户号保存好。不然后续已经在使用了,换员工了啥的密钥又不知道去哪里了,又要换密码就要注意对线上的影响
v2的签名算法是必须v2密钥的,回调也需要v2密钥解密,比较简单
v3接口请求不需要v3密钥的,因为v3密钥是用来加/解密回调或者证书内容的,所以有人以为自己下单请求和支付都成功了,回调也不应该受v3密钥影响,肯定v3密钥已设置,但实际上没设置v3密钥不影响接口请求,但是回调需要用v3密钥加密成密文后才会发回调,所以不设置v3密钥,微信侧无法加密密文,也不会发回调,商户就会收不到回调。

我是新手,想问一下, 微信支付回调,如果不同商户下单, 回调到同一个回调接口, 怎么进行验签。
所有商户的微信支付公钥 跟 微信支付公钥ID 是都一样的, 还是说 不同商户之间相互独立且唯一的。能不能根据 微信支付公钥ID 搞一套配置, 然后 维护对应的 商户ID,公钥,私钥,API证书序列号等信息。 然后通过 回调head 中的Wechatpay-Serial 获取到对应的商户信息, 然后进行操作。
商户可提前自行将所有商户号的微信支付平台证书序列号/公钥ID和商户号进行一对一存储,在收到回调报文时,通过HTTP头部Wechatpay-Serial中的微信支付平台证书序列号/公钥ID,与现已存储好的微信支付平台证书序列号/公钥ID进行对比,就可以得到回调对应的商户号从而获取到对应的APIV3Key进行解密
兄弟,微信支付公钥下载下来是一个证书文件和一个公钥keyId么,我的po就只给我一个key说没有公钥文件,我人都麻了,她说她也没权限去点再下载一遍。我现在就想知道是不是真的只有一个keyId
老项目用的是 v2 也就是平台证书 现在 我新项目 打算用 v3 但是今天 composer exec 的时候报错 {"code": "RESOURCE_NOT_EXISTS","message": "无可用的平台证书,请在商户平台-API安全申请使用微信支付公钥。"}然后资料说建议你从平台证书模式切换到公钥模式。那么我新项目确实可以重新开发公钥模式 但是老项目我不想改行不行??? 因为老项目找不到人维护了也不好改
请问,我是新的香港服务商,后台没有微信公钥下载的任何按钮,并且尝试下载证书,提示无可用证书,让使用微信公钥。麻烦老师帮忙看下:
上面的在线人工点进去是ai,发送人工也不能切换到人工
感谢老哥答疑解惑