小程序开发|人人商城小程序获取用户信息失败问题

小程序开发

小程序开发

 

人人商城小程序原来调试好好的突然出现获取用户信息失败问题

问题在于

微信公众平台将于2018年8月23日更换 api.weixin.qq.com 的HTTPS服务器证书,少部分服务器上可能没有部署对应的根证书,将导致获取token、群发消息等接口无法使用,请各位开发者于2018年8月23日之前配合做以下检查或变更。

第一步:验证证书

经过测试,目前绝大部分操作系统和执行环境中已经内置了该根证书,开发者服务器(非用户浏览器)不需要做任何变更。

微信公众平台的服务器证书支持多域名,即API域名(api.weixin.qq.com)与API容灾域名(api2.weixin.qq.com)使用同一张证书,正常情况下请使用api.weixin.qq.com域名,新证书与旧证书的证书链区别如下:(左边新,右边旧)

小程序开发

可以通过以下方法验证:

1)linux服务器

通过 curl -v "https://api2.weixin.qq.com/testcert?appid=xxxxxx"自测,查看证书issuer是否为CN=GeoTrust RSA CA 2018,OU=www.digicert.com,O=DigiCert Inc,C=US,如果issuer匹配,请求结果返回 “Certificate test passed!” 则表示证书不需要更新处理。如果issuer不匹配或是出现其他异常没有返回 “Certificate test passed!” 则需要第二步进行修正。

2)windows服务器

可通过IE浏览器访问 https://api2.weixin.qq.com/testcert?appid=xxxxxx, 如果证书显示正常,页面返回 “Certificate test passed!”,则不需要更新根证书。

或者在控制台窗口运行certmgr.msc,在操作菜单栏中打开查找证书,在所有颁发给域中搜索包含Baltimore,如果显示有颁发给BaltimoreCyberTrustRoot的证书则不需要更新证书。

小程序开发

如果出现异常请参考第二步的修正指引。

第二步:修正指引

如果上述检查步骤自测通过,则下面安装证书步骤可以跳过。

如需安装证书,请点击下载,也可移步官网下载证书:https://dl.cacerts.digicert.com/BaltimoreCyberTrustRoot.crt

部分服务器操作系统证书安装指引:

1)centos系统

wget https://dl.cacerts.digicert.com/BaltimoreCyberTrustRoot.crt
openssl x509 -inform der -in BaltimoreCyberTrustRoot.crt >> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
update-ca-trust

2)ubuntu系统

sudo cp BaltimoreCyberTrustRoot.crt /usr/local/share/ca-certificates/BaltimoreCyberTrustRoot.crt
sudo update-ca-certificates

3)windows系统

下载更证书文件后,直接打开文件按照提示操作安装即可。
其他环境请参考网络。

注意:业务代码中不要指定证书。当程序中不指定根证书时,会使用系统自带的根证书。绝大部分系统中已内置了api.weixin.qq.com的根证书,所以删除掉指定根证书的代码,不会影响到你的现有业务,后续兼容性也更好。

微信团队
2018年07月13日

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/261330.html

(0)
上一篇 2022年5月24日
下一篇 2022年5月24日

相关推荐

发表回复

登录后才能评论