以文本方式查看主题
- Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2)
---- 企业微信问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159651)
|
-- 作者:aidimeng
-- 发布时间:2021/1/3 16:37:00
-- 企业微信问题
Dim UserId As String Dim UserName As String Dim sb As New StringBuilder sb.AppendLine("<meta name=\'viewport\' c>") If e.GetValues.ContainsKey("code") Then \'如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的UserId MessageBox.Show("通过授权链接进入") Dim ul As String = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}" ul = CExp(ul,Functions.Execute("GetQYAccessToken"),e.GetValues("code")) Dim hc As new HttpClient(ul) Dim jo As JObject = JObject.Parse(hc.GetData) If jo("UserId") IsNot Nothing Then UserId = jo("UserId")
程序提示 授权链接进入后 马上报
1、The underlying connection was closed: An unexpected error occurred on a send. Received an unexpected EOF or 0 bytes from the transport stream. 2、Error reading JObject from JsonReader. Path \'\', line 0, position 0.
之前还没事的,哪里出错了吗
|
-- 作者:有点蓝
-- 发布时间:2021/1/3 16:39:00
--
估计是GetQYAccessToken出错
Dim hc As new HttpClient(ul)dim res as string = hc.GetData msgbox(res) Dim jo As JObject = JObject.Parse(res)
|
-- 作者:aidimeng
-- 发布时间:2021/1/3 16:48:00
--
Static CreateTime As Date \'记录最近一次生成access_token的时间 Static AccessTocken As String \'记录最近一次生成的access_token Dim CorpID As String= Vars("qyid") \'企业号的CorpID Dim Secret As String = Vars("yysecret") \'管理组的Secret Dim tp As TimeSpan = Date.Now - CreateTime If tp.TotalSeconds > 3600 Then Dim url As String = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}" Dim hc As New HttpClient(CExp(url, CorpID, Secret)) Dim ret As String = hc.GetData() \'Dim hc As new HttpClient(ul) Dim res As String = hc.GetData msgbox(res)
If ret = "" Then \'如果失败,再尝试一次 hc.GetData() End If CreateTime = Date.Now() Dim jo As JObject = JObject.Parse(ret) If jo("errcode") IsNot Nothing Then AccessTocken = jo("access_token") Else
Dim dr As Row = Tables("报错").AddNew dr("时间") = Date.Now() dr("错误信息") = jo.Tostring dr("地址") = ret \' MessageBox.show("获取access_token失败,原因:" & vbcrlf & jo.ToString) End If End If Return AccessTocken
这里没动过,刚刚做了 提示
此主题相关图片如下:企业微信截图_16096635805228.png

|
-- 作者:有点蓝
-- 发布时间:2021/1/3 17:13:00
--
If jo("errcode") IsNot Nothing Then改为 If jo("access_token") IsNot Nothing Then
ul = CExp(ul,Functions.Execute("GetQYAccessToken"),e.GetValues("code")) msgbox(ul) Dim hc As new HttpClient(ul)
|
-- 作者:aidimeng
-- 发布时间:2021/1/3 18:13:00
--
---------------------------
--------------------------- https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=&code=4gUujiAkQ5lkcpUb60Ji7c86nvsZotN7IDlsCRR4T_o --------------------------- 确定 ---------------------------
在命令窗口 执行 有时会报错,意外中断 有时有返回值
此主题相关图片如下:企业微信截图_20210103182343.png

此主题相关图片如下:企业微信截图_20210103182438.png

access_token 值是正确的
好像程序 执行的是
ElseIf e.GetValues.ContainsKey("code") = False Then \'如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接 MessageBox.Show("1") Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&agentid={2}&state=STATE#wechat_redirect" Dim ul2 As String = UrlEncode(Vars("yyzy")) ul = CExp(ul,Vars("qyid"),ul2,Vars("yyid"))
MessageBox.Show(ul)
此主题相关图片如下:1.png

和下面的报错
The underlying connection was closed: An unexpected error occurred on a send. Received an unexpected EOF or 0 bytes from the transport stream.
[此贴子已经被作者于2021/1/3 20:22:56编辑过]
|
-- 作者:有点蓝
-- 发布时间:2021/1/3 20:20:00
--
意外中断应该是微信服务器的问题,或者网络不通
|
-- 作者:aidimeng
-- 发布时间:2021/1/3 20:25:00
--
就是跳转到 执行
ElseIf e.GetValues.ContainsKey("code") = False Then \'如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接
在ie里访问 提示要在企业微信里打开
在企业微信里打开 就 会出现
The underlying connection was closed: An unexpected error occurred on a send. Received an unexpected EOF or 0 bytes from the transport stream.
Error reading JObject from JsonReader. Path \'\', line 0, position 0.
经过报错后 企业微信 停留在
此主题相关图片如下:企业微信截图_20210103203346.png

[此贴子已经被作者于2021/1/3 20:34:39编辑过]
|
-- 作者:有点蓝
-- 发布时间:2021/1/3 20:43:00
--
测试电脑是什么操作系统?
试试 Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls11 Dim hc As New HttpClient(CExp(url, CorpID, Secret)) Dim ret As String = hc.GetData()
|
-- 作者:aidimeng
-- 发布时间:2021/1/3 22:04:00
--
服务器是win2003 ,测试电脑是64 位win10,之前还可以的。关键是我手机访问也这样,不知道发生什么了
我加上后试试 ,辛苦了
Dim url As String = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}" Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls11
Dim hc As New HttpClient(CExp(url, CorpID, Secret)) Dim ret As String = hc.GetData()
加上了 还是一样的效果
我现在换下服务器,换成win2008 r2 的 试试
换了服务器 正常了,什么原因呢? 感谢版主耐心指导
[此贴子已经被作者于2021/1/3 22:36:19编辑过]
|
-- 作者:有点蓝
-- 发布时间:2021/1/4 8:36:00
--
企业微信加密传输使用的是高版本的Tls协议,xp和2003不支持
|