Foxtable(狐表)用户栏目专家坐堂 → 微信案例,客户端设置关注消息后,关注订阅号后没有反应。


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

主题:微信案例,客户端设置关注消息后,关注订阅号后没有反应。

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/3 13:10:00 [显示全部帖子]

vGetMsgReplyTextOperation   表里面只有两条数据, 可能是这个表里面没有匹配的规则吧,请问这个表和哪个界面关联?   我按照帮助里面完善了规则和应用,但是这个表里面的数据好像没有发生变化。

s elect * from vGetMsgReplyTextOperation    --Wechat_processMessage 函数中  规则匹配  来源的数据视图

s elect * from WeChatMsgTemplate where 1=2   消息模板表的展示数据来源


s elect * from vWeChatRuleApplication   --对应"新增应用功能"    ReplayOperationID(回复操作)


s elect * from WeChatRuleAppOperation   --对应 "管理操作"  功能


s elect * from WeChatRuleAppTextDefine   --对应什么?    

[此贴子已经被作者于2017/3/3 14:15:49编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/3 14:58:00 [显示全部帖子]

追踪到自定义函数 rule_processTextRule 里面的下面代码


Dim drs As List(Of DataRow) = DataTables(vName).Select(filter)
msgbox(vname)
msgbox(filter)
msgbox(drs.count)    '结果是0  ,把弹出的filter粘到数据库视图(vGetMsgReplyTextOperation  )查询,明明有一条数据,可是弹出的结果就是0,这是怎么回事?
If drs.Count > 0 Then
'msgbox("判断后")    '弹不出
    Return drs(0)
End If

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/3 18:40:00 [显示全部帖子]

找到 自定义函数  Msg_SendToUserByServ  中往Msg_SendMessages  表中写数据,才发消息,但是有以下提示。

{"touser":"oiam7v-6e3Q7_OcVfnVrvJaEpxKs","msgtype":"text","text":{"content":"尊敬的用户,您的订单已经收到,请留意后续的通知。如需查询订单,请回复“订单查询”。"}}


由于我用的是个人订阅号,所以不可以对客户发消息,但是可以自动回复,请教一下,自动回复post是调用的哪个函数? 

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 7:10:00 [显示全部帖子]

上面的调试方法我是知道的,但是微信案例里面用的不是这种方法,我之前就搜过很多次了,没有定位,本人粗浅,还忘明教。

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 8:39:00 [显示全部帖子]

追踪到  msg_addreplaymessage函数,但是在往 Msg_ReplyMessages插数据时报下面的错误,请问是什么问题?  

2017-03-04 08:35:56.2400
对于造型说明无效的字符值
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 System.Data.Common.DbDataAdapter.UpdateRowExecute(RowUpdatedEventArgs rowUpdatedEvent, IDbCommand dataCommand, StatementType cmdIndex)
   在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
[此贴子已经被作者于2017/3/4 8:40:23编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 9:54:00 [显示全部帖子]

wechat dll的引用说明在哪? 看代码里面的结构很吃力

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 9:56:00 [显示全部帖子]

不对吧,应该是有接口的吧? 我昨天测试 的时候 ,通过 接口返回了自定义的消息 ,但后来再也测试 不出来了,不知道 咋回事 

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 10:05:00 [显示全部帖子]

在msg_ProcessMsgQue函数中,有以下代码,中间有两处条件判断   即  If msgData.IsReply = 1     用msgbox(msgdata.isreply)弹出发现结果是-1(回复失败),搜遍全部 代码都 不见msgdata.isreply何时被修改的,请问这个条件是在什么 情况下会被修改

'处理消息队列,把消息存入"Msg_RequestMessages"表
'这里只保存,后续处理留给计划任务,因为消息回复只有4秒时间(说明见WeChat_ProcessMessage)
'msgbox(11)    '往公众号里面发消息能弹出
try
    Dim msgData As MessageData = Args(0)
    If msgData Is Nothing OrElse msgData.MsgData Is Nothing Then Return ""
    Dim sql As String = "sele ct * from Msg_RequestMessages where 1=2"
    Dim dt As DataTable = Functions.Execute("Cmd_GetDataTable","WeChat",sql,True)
    Dim dr As DataRow = dt.AddNew
    Dim RequestID = Guid.NewGuid().ToString()
    dr("RequestID") = RequestID
    dr("PubNoOpenID") = msgData.MsgData.ToUserName
    dr("AppID") = msgData.AgentID
    Dim drPub As DataRow = DataTables("WeChatPubNos").Find("OpenID='" & msgData.MsgData.ToUserName & "'")
    If drPub IsNot Nothing Then dr("PublicNoID") = drPub("PublicNoID")
    dr("RequestTime") = msgData.MsgData.GetCreateTime()
    dr("HandleFlag") = 0
    dr("OriginalData") = msgData.MsgData.InnerXml
    dr("MsgType") = msgData.MsgType
    dr("EventType") = msgData.EventType
    msgbox(msgData.IsReply & "第一次")   '弹出-1
    If msgData.IsReply = 1 Then 
        dr("ReplyTime") = Date.Now
    Else
        dr("HandleError") = msgData.ReplyData
    End If
    dr("IsRelay") = msgData.IsReply
    dr("CreateTime") = Date.Now
    dr("PublicNoType") = CInt(msgData.MsgData.Type)
    dr("HandleCount") = 0
    dr("RuleID") = msgData.RuleIDList
    dr("MsgUniqueId") = msgData.MsgData.MsgUniqueId
    msgbox(msgData.IsReply & "第二次")      '弹出-1
    If msgData.IsReply = 1 Then
      ' msgbox("已回复")     '发消息后弹不出
        '如果消息已经回复,同时保存到已回复表'
        Functions.Execute("Msg_AddReplyMessage",dr,"",msgData.MsgData.FromUserName,msgData.MsgData.ToString,1,0,msgData.ReplyData)
    End If
    dr.Save()
Catch ex As Exception
    Functions.Execute("LogText",ex)
End try

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 10:12:00 [显示全部帖子]

我知道是即时回复,即时回复用哪个函数回复的呀?  不是   Msg_ProcessMsgQueue 吗?    还有  msgData.IsReply  何时被修改的呢?

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2017/3/4 10:24:00 [显示全部帖子]

msgData.IsReply  何时被修改的?

 回到顶部
总数 31 上一页 1 2 3 4 下一页