以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 微信公众平台老是提示token验证失败 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96917) |
-- 作者:ycwk -- 发布时间:2017/3/2 12:37:00 -- 微信公众平台老是提示token验证失败 用 ngrok.cc 之前验证成功了,由于免费的不稳定,交钱升级后,改了个域名,就再也验证不成功了,郁闷至极。
|
-- 作者:有点蓝 -- 发布时间:2017/3/2 14:13:00 -- 代码,数据库和公众号管理要同步修改
先改代码,数据库。再到公众号管理页面修改验证 |
-- 作者:ycwk -- 发布时间:2017/3/2 14:54:00 -- 1首先把 服务端 的监听端口 加入: http://yc***.viphk.ngrok.org/ 2然后把服务端的 httprequest 中的 case 加也加入: yc***.viphk.ngrok.org 3再把客户端的 微信 帐号信息完善, 启动并切换至该帐号 这三步做了 再去微信平台改 回调url ,依旧报token 验证失败的错误,有做掉了哪步吗? ngrok的管理工具中报: 404 not found 用浏览器直接访问: http://yc***.viphk.ngrok.org/FoxTest?echostr=123456789 也是报404 not found ,但第一次验证成功的时候不报,不知为何。
[此贴子已经被作者于2017/3/2 15:15:05编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/3/2 15:15:00 -- 域名和ip地址绑定了吗?公众号编辑中url和微信平台回调url必须完全一致,大小写和字符一个都不能漏。注意公众号编辑中url必须以“/”结尾 |
-- 作者:有点色 -- 发布时间:2017/3/2 15:16:00 -- httprequest 加入msgbox 弹出信息。
在微信公众号设置的时候,看服务器弹出的值是否正确。 |
-- 作者:ycwk -- 发布时间:2017/3/2 15:57:00 -- 监听窗口如下: http://127.0.0.1/ http://ycy***.viphk.ngrok.org/ http://172.16.11.56/ 代码如下:
MessageBox.show(1) try Select Case e.host \'Case "192.168.1.153","127.0.0.1" \' Case "172.16.11.56","127.0.0.1","47.89.44.58" Case "172.16.11.56","127.0.0.1","ycyysf.viphk.ngrok.org" Dim dr As DataRow Dim url As String Dim wechatserv As WeChat.WeChatPublicNo If e.Path > "" Then url = "http://" & e.host & "/" & e.Path.replace("\\","/").replace("\'","\'\'").replace("""","""""") & "/" MessageBox.show(url) wechatserv = Functions.Execute("WeChat_GetServerByUrl",url) \'查询是否有此地址的微信公众号 End If If wechatserv IsNot Nothing Then \'说明是微信接口回调消息 wechatserv.ProcessMessage(e,"WeChat_ProcessRequestMsg") \'处理消息并获取返回值 \'Functions.Execute("LogText","回复=" & weRet) Else \'通用事件头 \'如果网页路径定义了中间目录,如"ordertest/logon.htm" ,则下面的fl实际就是"d:\\web\\ordertest\\weui\\weui.me.js" \'因此你需要把WeUI框架三个文件复制到"d:\\web\\ordertest\\weui"目录下 Dim fl As String = "C:\\web\\" & e.path If filesys.FileExists(fl) Dim idx As Integer = fl.LastIndexOf(".") Dim ext As String = fl.SubString(idx) Select Case ext Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar" e.WriteFile(fl) Return \'这里必须返回 End Select End If Select Case e.Path Case "gettoken" \'做为AccessToken中控服务 Dim atoken As WeChat.AccessToken = WeChat.WeChatAccessTokenController.GetServiceAccessToken(e.PlainText) e.WriteString(atoken.ToJson()) \'返回access_token的JSON数据 Case "scanlogon" \'做为AccessToken中控服务 Functions.Execute("Http_ScanLogon" ,e) Case Else If e.Path.StartsWith("ordertest\\") Then \'公众号订单测试地址前缀都统一使用这个 Functions.Execute("Order_HttpRequest",e) ElseIf e.Path.StartsWith("review\\") Then \'企业号订单审核地址前缀都统一使用这个 Functions.Execute("Order_HttpReview",e) End If End Select End If End Select \'记录接收的消息,方便分析 Dim str As new StringBuilder \'str.AppendLine("host=" & e.host) str.AppendLine("path=" & e.Path) str.AppendLine("HttpMethod=" & e.Request.HttpMethod) \'str.AppendLine("poststring=" & e.PlainText) \'str.AppendLine("ip=" & e.Request.RemoteEndPoint().Address.ToString()) For Each key As String In e.Values.Keys str.AppendLine(key & "=" & e.Values(key)) Next Functions.Execute("logText",str.ToString) catch ex As Exception Functions.Execute("LogText",ex) e.WriteString("") End Try [此贴子已经被作者于2017/3/2 21:40:35编辑过]
|
-- 作者:ycwk -- 发布时间:2017/3/2 16:19:00 -- 微信平台上的url ,第一次正确的时候留的是 http://yc****.ngrok.cc/FoxTest ,官方帮助上面也是不带/的,而且第一次也顺利通过了 ,想改成 ycy******.viphk.ngrok.org/FoxTest 死活报token验证失败,客户端的url核对了,也是现在的地址yc****.viphk.ngrok.org/FoxTest [此贴子已经被作者于2017/3/2 21:41:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/3/2 16:20:00 -- 和这个代码没有关系,服务可能没有正常启动。
到服务端项目目录下找找有没有Mmsglog.txt文件,看看日志 |
-- 作者:ycwk -- 发布时间:2017/3/2 16:37:00 -- 2017-03-02 15:49:55.1754 拒绝访问。 在 System.Net.HttpListener.AddAll() 在 System.Net.HttpListener.Start() 在 Foxtable.HttpListenter.Start() 2017-03-02 15:50:21.6127 仅允许以“/”结尾的 URI 前缀。 参数名: uriPrefix 在 System.Net.HttpListener.AddPrefix(String uriPrefix) 在 System.Net.HttpListenerPrefixCollection.Add(String uriPrefix) 在 UserCode.AYoyRb7s9PppbdnAV(ControlEventArgs e) 2017-03-02 15:54:22.7511 拒绝访问。 在 System.Net.HttpListener.AddAll() 在 System.Net.HttpListener.Start() 在 Foxtable.HttpListenter.Start() 2017-03-02 16:11:08.0875 拒绝访问。 在 System.Net.HttpListener.AddAll() 在 System.Net.HttpListener.Start() 在 Foxtable.HttpListenter.Start() 2017-03-02 16:23:20.0295 拒绝访问。 在 System.Net.HttpListener.AddAll() 在 System.Net.HttpListener.Start() 在 Foxtable.HttpListenter.Start() 2017-03-02 16:24:23.3017 拒绝访问。 在 System.Net.HttpListener.AddAll() 在 System.Net.HttpListener.Start() 在 Foxtable.HttpListenter.Start() |
-- 作者:狐狸爸爸 -- 发布时间:2017/3/2 16:40:00 -- Hello Word 我们先用一个经典的例子,来说明如何使用Foxtable实现http服务。 |