Foxtable(狐表)用户栏目专家坐堂 → 微信access_token白名单造成获取不稳定


  共有2041人关注过本帖树形打印复制链接

主题:微信access_token白名单造成获取不稳定

帅哥哟,离线,有人找我吗?
qwz405
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
微信access_token白名单造成获取不稳定  发帖心情 Post By:2017/12/1 16:29:00 [显示全部帖子]

微信新功能:  “获取access_token”接口新增IP白名单保护

我之前一直运行稳定的,昨天设置了,有获取access_token失败的记录。。。我怀疑可能是这个设置造成的。
还在观察,不知道有没有碰到相同困惑的朋友。
[此贴子已经被作者于2017/12/1 16:29:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/12/2 8:29:00 [显示全部帖子]

今天一早又碰到了此故障,我的经历如下所示,麻烦老师帮忙判断可能的原因:

获取access_token用处:获取用户地理位置,给用户发送信息等。

起因:微信更新access_token白名单保护功能(见1楼),我就设置了功能(11月/30日)。

故障:
  12月1日,早上无法获取坐标,信息发送失败。
  12月2日(今天),早上无法获取坐标,信息发送失败。

处理:
  将服务器关闭,重新启动,问题解决,而且一整天都没有再发生(这两天晚上10点多还有正常获取坐标记录)。
  但早上起来,就无法获取坐标,怀疑是0:00时候,要重新获取access_token?或者微信有做了什么设置?
  (以前都是整月全天运行,没有发生过这样有规律的故障)


故障截图:

图片点击可在新窗口打开查看此主题相关图片如下:1234.jpg
图片点击可在新窗口打开查看



以下2段代码一直在用,没有改动过:
1.获取access_token代码:
............
Dim tp As TimeSpan = Date.Now - CreateTime
Dim url As String = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"
If tp.TotalSeconds > 3600 Then
    Dim hc As New HttpClient(CExp(url,AppId,AppSecret))
    Dim ret As String = hc.GetData()
    If ret = "" Then     '如果失败,再尝试一次
        hc.GetData()
    End If
    CreateTime = Date.Now()
    Dim jo As JObject = JObject.Parse(ret)
    If jo("errcode") Is Nothing Then  
       AccessTocken = jo("access_token")
    'Else      '不屏蔽,获取失败会有弹窗,服务器停止响应。所以也就不知道获取失败的错误代码是什么?
       'MessageBox.show("获取access_token失败[access_token获取],原因:" & vbcrlf & jo("errmsg").ToString)    
    End If
End If
.......


2.获取坐标代码:
wx.ready(function () {
    //document.getElementById('scan1').onclick = function () {      //屏蔽此代码,点击页面时(登录页面时),自动获取坐标,不需要用"scan"传递值
        wx.getLocation({
            type: 'wgs84',       // 默认为'wgs84'的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
            success: function (res) {
                document.getElementById('纬度').value = res.latitude;           // 纬度,浮点数,范围为90 ~ -90
document.getElementById('经度').value = res.longitude;      // 经度,浮点数,范围为180 ~ -180。
            }
        });
    //};      //屏蔽此代码,点击页面时(登录页面时),自动获取坐标,不需要用"scan"传递值
});
wx.error(function (res) {
    //alert(res.errMsg);
});

[此贴子已经被作者于2017/12/2 8:32:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/12/2 9:08:00 [显示全部帖子]

不屏蔽失败弹窗,不断尝试,问题找到了。。。给需要的朋友。。。

错误弹窗:invalid ip ***.***(某个IP) not in whitelist hint; 

原因:两条接入光纤。
光纤A,开80端口,接微信公众号服务器;  ---设置了白名单
光纤B,开80端口,给微信测试号,我调试代码用; ---未设置白名单。

我认为光纤A进80端口才能到微信服务器,光纤B没必要设置白名单。
哎~~不懂了,微信公众号不是只有80端口能用,从光纤B进的话,应该是到不了微信公众号的?

 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2018/1/11 12:10:00 [显示全部帖子]

老师,您好。

我已将2条外网光纤都设为白名单了。

从上周六开始不能获取坐标,今天我获取到的错误如图:从早上到现在,出现2次错误,都是同一IP。

手机登录到服务器,还要通过别的IP中转来获取access_token?那白名单就没法设置了。

图片点击可在新窗口打开查看此主题相关图片如下:ip20180111.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/1/11 12:10:10编辑过]

 回到顶部