Foxtable(狐表)用户栏目专家坐堂 → 微信公众号问题


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

主题:微信公众号问题

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
微信公众号问题  发帖心情 Post By:2020/12/15 15:39:00 [只看该作者]

个人微信进入我的微信公众号界面,发来消息,服务器接收正常,但是,返回消息出错,如下图


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


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

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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/15 15:48:00 [只看该作者]

同步改改代码里的密钥即可

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

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2020/12/15 16:11:00 [只看该作者]

1.在哪同步改改代码里的密钥?因为消息加解密密钥改过,记得之前,加解密好像有个过程,只是记不住了,所以,麻烦说下去哪查加解密过程

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

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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2020/12/25 18:53:00 [只看该作者]

信息可以返回了,问题见下图

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

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

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2020/12/26 21:07:00 [只看该作者]

楼上分别显示:下面的1、2、3,都只显示一次
显示1之前,5楼的错误提示已经在个人微信号上显示错误,点击下图确定按钮,消息显示在个人微信上
1.POST
2.test
3.正常显示

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

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/27 20:41:00 [只看该作者]

把6楼msgbox改为使用LogText日志记录,重新测试一下,看看微信发消息的时间和日志记录的时间差是多少。

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

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/28 10:52:00 [只看该作者]

这个实在看不出什么问题了。新建项目减少代码测试,比如只保留和帮助一样的测试代码。

这个时间试试这样处理

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

 回到顶部
总数 12 1 2 下一页