asp.net 开发者模式下 关注公众号自动回复 有的手机能收到有的手机收不到

shenpengwei3793 2016-12-08 11:57:50
如题,用户关注公众号自动回复,结果有的手机能收到有的收不到,按照文档一步一步写的 找不到原因,查看日志的时候,不出现自动回复的手机不管是关注还是不关注 都没有日志记录。
以下是代码:
#region 微信接入


wxmessage wx = GetWxMessage();
MyMenu();



DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的时间戳

long a = (DateTime.UtcNow.Ticks - timeStamp.Ticks) / 10000;


string useropend = Comval.COMM.StringEncoding(wx.FromUserName);

LogUtil.WriteLog("加密后的opendid" + useropend);
//测试 wxmessage wx =new wxmessage ();string useropend = "o5BcZwzCfVVVjMR4Oj1KIEKFVFL0";
string res = "";

DataTable dt = service.GetUserallInfoByTopenid(wx.FromUserName);//判断信息是否存在
LogUtil.WriteLog("根据opendid查询的dt" + dt.Rows.Count);
if (dt != null && dt.Rows.Count > 0)
{
LogUtil.WriteLog("VillageName" + dt.Rows[0]["VillageName"]);
if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "subscribe")
{//刚关注时的时间,用于欢迎词
string content = "";
content = "欢迎关注!";
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content + "]]></Content><FuncFlag>0</FuncFlag></xml>";
}
else if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "CLICK")
{
if (dt.Rows[0]["Ttype"].ToString().Equals("0"))
{
string content = "";
content = "您好,您的信息暂未通过审核,不能查询相关内容!";
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA["+content+"]]></Content><FuncFlag>0</FuncFlag></xml>";
}
else
{
LogUtil.WriteLog("点击方式" + wx.EventKey);
if (wx.EventKey == "BTN_HELP")
{

StringBuilder content = new StringBuilder();
DataTable dtWater = service.GetWaterByAid(dt.Rows[0]["AId"].ToString());//根据areaID查询水费
LogUtil.WriteLog("获取房间ID" + dt.Rows[0]["AId"].ToString());
LogUtil.WriteLog("获取dtWater" + dtWater.Rows.Count);
DataTable dtElectricity = service.GetElectricityByAid(dt.Rows[0]["AId"].ToString());//根据areaID查询电费
if (dtWater != null && dtWater.Rows.Count > 0)
{
decimal num = decimal.Parse("100") - decimal.Parse(dtWater.Rows[0]["WuseAmount"].ToString());
content.Append("您好,您" + dt.Rows[0]["VillageName"] + "-" + dt.Rows[0]["fName"] + "-" + dt.Rows[0]["AreaName"] + "房间" + dtWater.Rows[0]["W1"] + "水表使用情况如下:\n上月表底" + dtWater.Rows[0]["LastMonthNum"] + ",本月表底" + dtWater.Rows[0]["ThisMonthNum"] + ",实际用量" + dtWater.Rows[0]["WuseAmount"] + "吨,剩余" + num + "吨");
}
else
{
content.Append("您好,您" + dt.Rows[0]["VillageName"] + "-" + dt.Rows[0]["fName"] + "-" + dt.Rows[0]["AreaName"] + "房间暂无水表明细\n");
}
if (dtElectricity != null && dtElectricity.Rows.Count > 0)
{
decimal num2 = decimal.Parse("100") - decimal.Parse(dtElectricity.Rows[0]["EuseAmount"].ToString());
content.Append("" + dtElectricity.Rows[0]["E1"] + "\n电表使用情况如下:\n上月表底" + dtElectricity.Rows[0]["LastMonthNum"] + ",本月表底" + dtElectricity.Rows[0]["ThisMonthNum"] + ",实际用量" + dtElectricity.Rows[0]["EuseAmount"] + "度,剩余" + num2 + "度");
}
else
{
content.Append("暂无电表明细");
}
LogUtil.WriteLog("发送内容" + content.ToString());
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content.ToString() + "]]></Content><FuncFlag>0</FuncFlag></xml>";

} if (wx.EventKey == "BTN_NEW")
{
StringBuilder content = new StringBuilder();
DataTable dtnew = service.getNoticeByncIdto1(dt.Rows[0]["Cid"].ToString());//通过小区ID 获取公告消息 最新一条
content.Append("" + dtnew.Rows[0]["ntitle"] + "(" + DateTime.Parse(dtnew.Rows[0]["ndate"].ToString()).ToString("yyyy-MM-dd") + ")\n" + dtnew.Rows[0]["ncontent"].ToString() + "");
LogUtil.WriteLog("发送内容" + content.ToString());
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content.ToString() + "]]></Content><FuncFlag>0</FuncFlag></xml>";

}
}
}
else
{
if (wx.MsgType == "text" && wx.Content == "你好")
{
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[欢迎关注!]]></Content><FuncFlag>0</FuncFlag></xml>";
}
else
{

res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[您好 未能识别此消息!]]></Content><FuncFlag>0</FuncFlag></xml>";
}
}
LogUtil.WriteLog(" 关注res:" + res);
Response.Write(res);
}
else
{
if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "subscribe")
{
LogUtil.WriteLog("刚关注时的事件");
//刚关注时的事件,用于欢迎词
string content = "";
content = "欢迎关注,进行身份绑定!绑定成功后可享受更多服务!";
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content + "]]></Content><FuncFlag>0</FuncFlag></xml>";
LogUtil.WriteLog("a标签" + res);
}
else if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "CLICK")
{
LogUtil.WriteLog("未绑定时点击方式" + wx.EventKey);


if (wx.EventKey == "BTN_HELP")
{
StringBuilder content = new StringBuilder();
content.Append("您好,您暂未绑定房间信息,进行身份绑定!绑定成功后可享受更多服务!");


LogUtil.WriteLog("发送内容" + content.ToString());
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content.ToString() + "]]></Content><FuncFlag>0</FuncFlag></xml>";

} if (wx.EventKey == "BTN_NEW")
{
StringBuilder content = new StringBuilder();
content.Append("您好,您暂未绑定房间信息,进行身份绑定!绑定成功后可享受更多服务!");
LogUtil.WriteLog("发送内容" + content.ToString());
res = "<xml><ToUserName><![CDATA[" + wx.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + wx.ToUserName + "]]></FromUserName><CreateTime>" + a + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + content.ToString() + "]]></Content><FuncFlag>0</FuncFlag></xml>";

}
}
else
{
if (wx.MsgType == "text" && wx.Content == "你好")
{
res = sendTextMessage(wx, "你好,欢迎关注!");
}
else
{
res = sendTextMessage(wx, "你好,未能识别消息!");
}
}

Response.Write(res);
}

#endregion
...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是飞云 2016-12-09
  • 打赏
  • 举报
回复
用日志,一步一步记录下,看看是在哪个位置错了。 应该是数据查询那里。
弘毅致远 2016-12-09
  • 打赏
  • 举报
回复
关注后用户主动发起交互才能推送消息
赵4老师 2016-12-09
  • 打赏
  • 举报
回复
权限 拦截 缺陷 方言 信号 ……

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧