解决方案

微信小程序商户API证书的常见问题及解决方法

作者:仙宝云 | 发布时间:2021-07-05 16:00:26 | 阅读:541

最常见的错误有以下四种:

(一)【错误码含义】

招致nginx未正确剖析到证书序列号,logicsvr获得到证书序列为空

【可能的缘由】

  • 商户提倡请求不时没指定API证书
  • 商户倡议请求常常指定的API证书文件有误

a) 证书文件途径错误(若是:运用curl命令行工具经常中少了./ 等)

b) 证书文件和私钥文件不匹配

c) p12证书与密码不对

d) API证书不是微信支付签发的

e)证书文件的内容破坏

  • API证书文件的权限设置不当,程序回天乏术访问
  • 开发人员直接调用logicsvr的CGI,恳求未经过nginx

【解决措施】

但是按下面的步调排查:

1. 恳求中指定API证书,并确认程序有访问API证书的权限

2. 确认pem格式的证书文件(压缩包中的 apiclient_cert.pem )和私钥文件(压缩包中的 apiclient_cert.key)是匹配的

运行命令行 openssl pkcs12 -export -out test.p12 -in ./apiclient_cert.pem -inkey ./apiclient_key.pem -passout pass:test

能正常生成 test.p12,则说明证书文件和私钥文件是匹配的,且证书文件内容未被破坏

3. 运用p12格式的证书文件常常,需要传入正确的密码(默认密码是:mchcode)

4. p12格式的证书文件在windows下但是双击打开如果回天乏术打开,说明文件被破坏需要找商户号的超管获得正确的证书

(apiclient_key.pem文件大小为 1.7k左右, apiclient_key.pem文件大小为 1.5k左右, apiclient_cert.p12文件大小为 2.8k左右)

5. 查看证书的签发者,确认证书文件是微信支付签发的

运行命令行 openssl x509 -text -in ./apiclient_cert.pem |grep Issuer |awk -F, ‘{print $NF}’

合法的签发者有两个:

① 权威CA签发的证书:CN=MmpaymchCA/emailAddress=mmpaymch@tencent

② 微信支付签发的证书:CN=Tenpay.com Root CA

6. 开发人员自测cgi经常,必须指定nginx服务器的ip和443端口nignx负责解析证书信息,并http header传送给logicsvr

(二)【错误码含义】

商户号与API证书不匹配

【可能的缘由】

恳求报文中的商户号A,但倡议请求常常却用了商户号B的证书

【解决措施】

每个API证书中都有商户号信息,不同商户号的API证书文件是独立的,不能混用

1. 确保恳求中指定的API证书,是属于xml报文中商户号的

2. 运转以下命令行,但是到查看证书文件中的商户号信息

openssl x509 -text -in ./apiclient_cert.pem |grep Subject |grep -i ‘tencent’ |awk -F, ‘{print $1,$NF}’

会面有以下两种格式:

① 权威CA签发的证书:Subject: CN=1900006031 L=ShenZhen (CN字段中内容为mchcode)

② 微信支付签发的证书:Subject: C=CN SN=14767152 (SN字段中内容为merchantId)

(三)【错误码含义】

API证书已经逾期

【可能的缘由】

恳求报文中的商户号A,但倡议请求不时却用了商户号B的证书。

【解决方法】

API证书的有效期默认为1年,证书逾期后,有两种解决措施:

1. 续期证书(逾期30天内利用)

2. 改换证书 (改换后的证书有效期为1年)

(特地提醒:1. 证书逾期前1个月,平台会晤多次发送提示通知超等管理员续期证书由于商户可能未按通知及时续期证书 为了给商户预留处理工夫,服务器会晤按比例阻挡利用过期证书的恳求 证书到期第一天会面有10%的失败,第二天会见有20%的失败 , 到第十天100%失败所以在证书逾期的10天内,局部恳求见面成功,局部请求会见被拦阻

2. 证书的过期工夫以商户平台展示的日期为准命令行的输出结果并不是实际:

openssl x509 -text -in ./apiclient_cert.pem | grep ‘Not After’ |awk -F’ : ‘ ‘{print $2}’)

(四)【错误码含义】

API证书已经作废,不能继承应用

【可能的缘由】

商户改换了API证书,但未及时将新证书安排到服务器上,招致程序中仍在运用老证书

【解决措施】

1. 将最新的API证书安排到服务器

2. 商户平台上可以查看到新证书的序列号运转以下命令行,但是查看到证书文件中的序列号

但是先运转第一个下令,若结果为空,再运转第二个下令

①微信支付自签证书:

openssl x509 -text -in ./apiclient_cert.pem |grep Serial 非空不时,输出结果为 5-10位数字

② 权威CA签发的证书:

openssl x509 -text -in ./apiclient_cert.pem |grep Serial -A 1 |grep -v Serial | tr [a-z] [A-Z] | tr -d :

非空经常,输出结果为“40个字符,数字和字母”

本文源于微信小程序开发文档官网,此文仅供应大家学习,如有侵权恳求及时奉告删除!


<仙宝云(www.szztz.com)是国内著名商城体系及商城网站建设提供商,为企业级商家提供零售商城、B2B2C多用户商城系统、仙宝云商城体系、微信分销体系、小程序商城、微分销体系等多端商城网站建设解决方案>

申明:本网站局部文章和图片起源网络编辑,如有侵权及时沟通删除,神仙宝商城原创文章,转载恳求注明根源

智慧商业服务商仙宝云欢迎您!

请加微信: 18962171986 (宋经理)

在线咨询