以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 阿里云服务器部署微信公众号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154608)

--  作者:zcgmxf
--  发布时间:2020/9/20 9:51:00
--  [求助] 阿里云服务器部署微信公众号
老师,我的微信公众号服务器端在本地测试没问题,放到阿里云服务器上后获取 token 失败,
后台基本配置修改域名时也是提示获取token失败。
但是我的阿里云服务器域名是可以访问的,测试没问题。80端口也按照服务器部署打开了的。可能是什么原因?谢谢!

图片中的IP 是阿里云服务器的公网IP


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

[此贴子已经被作者于2020/9/20 10:00:06编辑过]

--  作者:浙江仔
--  发布时间:2020/9/20 10:46:00
--  
微信公众号需要配置ip白名单
--  作者:zcgmxf
--  发布时间:2020/9/21 20:34:00
--  
谢谢!阿里云服务器上可以获取token了,但在后台配置参数时用访问服务器的域名还是提示
“获取token失败”。

--  作者:有点蓝
--  发布时间:2020/9/21 20:38:00
--  
公众号有没有设置可信域名?

截图看看在怎么后台配置的参数?

--  作者:zcgmxf
--  发布时间:2020/9/21 22:40:00
--  
老师,设置了可信域名。下面这个域名是在本机上测试的,没有问题。现在放到阿里云服务器上,用另一个域名 http://dcqjkzx.top/wefox 就是那个可信域名,其它可以访问,也可以直接获取token。但是修改后台配置 为可信域名时就提示 token验证失败。


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


[此贴子已经被作者于2020/9/21 22:45:17编辑过]

--  作者:有点蓝
--  发布时间:2020/9/21 22:59:00
--  
贴出httprequest事件完整代码看看
--  作者:zcgmxf
--  发布时间:2020/9/21 23:16:00
--  
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)
    S elect Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".htm",".html",".css",".zip",".rar" \'这里加上了js扩展名
            e.WriteFile(fl)
            Return \'这里必须返回
    End Se lect
End If

S elect Case e.path
    Case "wefox"
        If e.Request.HttpMethod = "GET"
            If Functions.Execute("VerifySignature",e) Then
                e.WriteString(e.GetValues("echostr"))
            End If
        ElseIf e.Request.HttpMethod = "Post"            \'
            Dim wbiz As New WXBizCrypt("wx272e30a","dc","FXvmuyKLXZkfIxQmW19tea")
            Dim st As New Date(1970,1,1,8,0,0)
            Dim msg  As String = wbiz.DecryptMsg(e) \'解密收到的消息
            If  IsNumeric(msg) Then \'如果解密失败
                Dim err As String = wbiz.GetErorDesc(CInt(msg)) \'获取错误描述
                Return
            End If
            Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(msg)
            Se lect Case xo("MsgType")
                Case "text","image","voice","video","shortvideo"
                    If DataTables("Message").Find("MsgID = \'" & xo("MsgId").ToString() & "\'") IsNot  Nothing Then \'如果有相同MsgID的信息直接返回
                        Return
                    End If
                    Dim dr As DataRow = DataTables("Message").AddNew()
                    dr("FromUserName") = xo("FromUserName")
                    dr("CreateTime") = st.AddSeconds(xo("CreateTime"))
                    dr("MsgType") = xo("MsgType")
                    dr("MsgId") = xo("MsgId")
                    dr("MediaId") = xo("MediaId")
                    dr("ThumbMediaId") = xo("ThumbMediaId")
                    dr("PicUrl") = xo("PicUrl")
                    dr("Content") = xo("Content")
                    dr("Format") = xo("Format")
                    dr("Recognition") = xo("Recognition")
                    \'被动回复消息
                    Dim so As New Foxtable.XObject()
                    so("ToUserName") = xo("FromUserName")
                    so("FromUserName") = xo("ToUserName")
                    so("CreateTime") = (Date.Now - st).TotalSeconds()
                    so("MsgType")= "text"
                    Dim r As DataRow = DataTables("Zhishifenlei").Find("编号 = \'" & Cstr(xo("Content")) & "\'")
                    If r IsNot Nothing Then
                        so("Content") = CStr(r("内容"))
                    Else
                        If dr("Content") = Nothing Then
                            Return
                        Else
                            so("Content") = "抱歉,您查询的内容不存在,请核对输入编号是否正确!"
                        End If
                    End If
                    msg = wbiz.EncryptMsg(e,so.ToXML ) \'加密要发送的消息
                    If  IsNumeric(msg) Then \'如果加密失败
                        Dim err As String = wbiz.GetErorDesc(CInt(msg)) \'获取错误描述
                    Else
                        e.WriteString(msg)
                    End If
                Case "event" \'如果是事件
                     Functions.Execute("Guanzhushijian",xo,e)
            End Sel ect
        End If
End Se lect
[此贴子已经被作者于2020/9/21 23:20:37编辑过]

--  作者:有点蓝
--  发布时间:2020/9/22 8:34:00
--  
这个绝对不是事件完整代码。我访问http://dcqjkzx.top/wefox弹出了登录网页。
--  作者:zcgmxf
--  发布时间:2020/9/22 9:06:00
--  
老师,阿里云服务器上还有一个手机办公软件的服务端。是不是有冲突?是不是只能部署一个服务端?
[此贴子已经被作者于2020/9/22 9:06:40编辑过]

--  作者:有点蓝
--  发布时间:2020/9/22 9:08:00
--  
可以合并到一个。如果多个服务端,需要使用不同端口,把手机办公软件改为其它端口,公众号回调是必须使用80端口的