很多手机都会调用这个接口,目前观测到如下两台手机会一直fail,其他手机都是正常调用成功。
机型1为:微信版本:6.5.16 手机:1+ A0001 andriod 版本:4.3
机型2为: 微信版本:6.5.13 手机:华为M7 andriod的版本4.4.2
这是体验者版本下,都添加了体验者权限。在调用接口时一直fail,请问能否解决这一兼容问题,代码如下:
wx.showLoading({
title: ‘登录中’,
mask:true
})
//下面的url是一个全局变量,这个已经打印出来过了。
wx.request({
url: url + ‘/userInfo/activeCodeLogin?phone=’ + that.data.phone + ‘&activeCode=’ + that.data.code,
method: ‘POST’,
header:{
‘request’: ‘wechat’,
‘content-type’: ‘application/json’
},
success: function (res) {
console.log(res)
wx.hideLoading()
if (res.data.httpCode === 200) {
wx.setStorage({
key: ‘userId’,
data: res.data.data.userId,
})
wx.redirectTo({
url: ‘…/changePassword/changePassword?type=2&activeCode=’ + that.data.code + ‘&phoneNum=’ + that.data.phone,
})
} else {
that.setData({
showAlert: true, //showmodal
alertLoadInf: res.data.msg || ‘邀请码或手机号错误’ //showmodal信息
})
}
},
fail: function () {
wx.hideLoading()
that.setData({
showAlert: true, //showmodal
alertLoadInf: ‘服务器错误,请稍后重试’ //showmodal信息
})
},
complete:function(){
}
})
用这个链接检查一下你的服务端域名吧 https://www.chinassl.net/ssltools/ssl-checker.html,如果结果不是绿色的就说明 SSL 配置有误,iOS 下会微信会忽略证书错误,Android 不会所以报错了。
一般需要确认的有这么几个:
1、证书是不是自签名的,这样不行;
2、证书时间到没到期;
3、如果上了共有云尤其是上了负载均衡,检查负载均衡的SSL证书导入是否正确,比如少个换行多个空格之类的问题;另外阿里云的负载均衡比较坑,给的PEM样例里只有一段,但你的证书里有两段你就得粘两段,有三段就得粘三段,要是真的只粘一段,你证书的前置证书、前置证书的前置证书、前置证书的前置证书的前置证书……的信息就没了。