以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  微信公众号问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159144)

--  作者:zhangjian222200
--  发布时间:2020/12/15 15:39:00
--  微信公众号问题
个人微信进入我的微信公众号界面,发来消息,服务器接收正常,但是,返回消息出错,如下图


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


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

[此贴子已经被作者于2020/12/15 15:43:11编辑过]

--  作者:有点蓝
--  发布时间:2020/12/15 15:48:00
--  
同步改改代码里的密钥即可

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=159081&skin=0

--  作者:zhangjian222200
--  发布时间:2020/12/15 16:11:00
--  
1.在哪同步改改代码里的密钥?因为消息加解密密钥改过,记得之前,加解密好像有个过程,只是记不住了,所以,麻烦说下去哪查加解密过程

2.加了e.WriteString("success"),与1楼一样,还是提示故障

[此贴子已经被作者于2020/12/28 11:22:51编辑过]

--  作者:有点蓝
--  发布时间:2020/12/15 16:26:00
--  
http://www.foxtable.com/mobilehelp/topics/0210.htm


                    End If
                    e.WriteString(so.ToXML)
return
            End Select
            e.WriteString("success")
        End If
[此贴子已经被作者于2020/12/15 16:38:05编辑过]

--  作者:zhangjian222200
--  发布时间:2020/12/25 18:53:00
--  
信息可以返回了,问题见下图

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

[此贴子已经被作者于2020/12/28 11:22:38编辑过]

--  作者:有点蓝
--  发布时间:2020/12/26 8:39:00
--  
httprequest完整代码发上来看看

Select Case e.Path
    Case "wefox"  \'接入HTTP服务(用户发到公众号(包括测试号)的信息,都是直接发给腾讯的微信服务器的,用于在Foxtable中接收并回复用户发来的信息)
msgbox(e.Request.HttpMethod)‘观察服务端这里弹出了几次’
        If e.Request.HttpMethod.ToUpper = "GET"
            If Functions.Execute("VerifySignature",e) Then
                e.WriteString(e.GetValues("echostr"))
            End If
        ElseIf e.Request.HttpMethod.ToUpper = "POST"
            Dim wbiz As New WXBizCrypt("wxaa*******5bdd","b**jh","5nwSIw**********llDAa4")
            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)
msgbox(xo("MsgType")) 
            Select Case xo("MsgType")
                Case "text","image","voice","video","shortvideo" \'为了简单,这里只保存文本?图片?语音和视频消息.
                    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")
                    dr.Save()
                    \'下面是被动回复文本消息的代码:
                    Dim dr_xiaoxi As DataRow \'定义,消息行
                    Dim faqiren As String = dr("FromUserName") \'定义,发起人
                    Dim so As New foxtable.XObject()
                    so("ToUserName") = xo("FromUserName")
                    so("FromUserName") = xo("ToUserName")
                    so("CreateTime") = (Date.Now - st).TotalSeconds()
                    so("MsgType")= "text"
                    \'so("Content") = "这儿是自助交友平台,特色红包与线下活动沟通功能,增加自助交友乐趣,还等什么,开始吧!使用问题,请在会员中心-基础资料,加客服微信咨询哦!"
                    If faqiren <> "" Then
                        dr_xiaoxi = DataTables("Message").SQLFind("FromUserName = \'" & faqiren & "\'")
                        If dr_xiaoxi IsNot Nothing Then
                            so("Content") = "这儿是本地交换信息平台!若未回复,请联系15*****05,谢谢!"
                        Else
                            so("Content") = "这儿是本地交换信息平台!若未回复,请联系15********05,谢谢!"
                        End If
                    End If
msgbox(so.ToXML)) 
                    e.WriteString(so.ToXML)
                    Return
            End Select
msgbox("success") 
            e.WriteString("success")
            Return
        End If
[此贴子已经被作者于2020/12/28 11:25:37编辑过]

--  作者:zhangjian222200
--  发布时间:2020/12/26 21:07:00
--  
楼上分别显示:下面的1、2、3,都只显示一次
显示1之前,5楼的错误提示已经在个人微信号上显示错误,点击下图确定按钮,消息显示在个人微信上
1.POST
2.test
3.正常显示

[此贴子已经被作者于2020/12/28 11:49:40编辑过]

--  作者:有点蓝
--  发布时间:2020/12/27 20:41:00
--  
把6楼msgbox改为使用LogText日志记录,重新测试一下,看看微信发消息的时间和日志记录的时间差是多少。

可以看看记录里:dr("CreateTime") = st.AddSeconds(xo("CreateTime"))这个CreateTime的具体时间

--  作者:zhangjian222200
--  发布时间:2020/12/28 10:37:00
--  
发送数据:4321,返回一条错误信息,然后返回消息

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

数据库记录:

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

函数记录:
2020-12-28 10:29:17.2061
POST
2020-12-28 10:29:17.2549
text
2020-12-28 10:29:17.2843
<xml><ToUserName>oOS1Es-R5h4HTR9OyPvtuB0tw24M</ToUserName><FromUserName>gh_8a580fdb5bb8</FromUserName><CreateTime>1609122557.2696424</CreateTime><MsgType>text</MsgType><Content>这儿是本地交换信息平台!若未回复,请联系1**********,谢谢!</Content></xml>

[此贴子已经被作者于2020/12/28 11:23:37编辑过]

--  作者:有点蓝
--  发布时间:2020/12/28 10:52:00
--  
这个实在看不出什么问题了。新建项目减少代码测试,比如只保留和帮助一样的测试代码。

这个时间试试这样处理

so("CreateTime") = clng((Date.Now - st).TotalSeconds())