系列教程一目录:返利助手原理

系列教程二目录:返利助手开放文档以及帐号申请地址

系列教程三目录:返利助手开发(1)API介绍

系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令

系列教程五目录:返利助手开发(3)淘口令如何通过API转换为链接

系列教程六目录:返利助手开发(4)如果通过淘口令解析的出来的地址获得返利信息

系列教程七目录:返利助手开发(5)如何将优惠券地址转为淘口令

系列教程八目录:微信号对接

系列教程九目录:编写一个vue页面用于复制淘口令

微信公众号分为订阅号和公众号
经过博主测试如果没有资料申请公众号的人可以自行申请订阅号代替
订阅号一样可以使用接口自动回复,只是订阅号没有红包发送,获取用户信息,公众号菜单等功能的权限

微信开发的我们首先得得获取的到微信公众号的APPID和APPSecrest

还需要将服务器配置启用服务器地址就是你你对接接受微信消息并处理的接口地址
Token就是你自定义的密码,微信在访问你接口的时候你要返回这里配置的token微信验证成功后才会运行访问
EncodingAESKey微信加密密钥开启后自动生成

然后在程序中开发,由于为了便捷我这里使用了盛派微信的dll流程如下:

微信公众号自动回去不仅仅需要APPID和APPsecret
还需要以下参数
“Token”: “自己设置一个自定义的密码”,
“EncodingAESKey”: “微信中获取”,
“AppId”: “微信中获取”,
“Appsecrest”: “微信中获取”

配置完成后我们进行开发
首先是微信验证的,因为只有微信验证成功了才会将消息推送给我们
代码如下:

     public static readonly string Token = SiteConfig.GetSite("Token");//与微信公众账号后台的Token设置保持一致,区分大小写。public static readonly string EncodingAESKey = SiteConfig.GetSite("EncodingAESKey");//与微信公众账号后台的EncodingAESKey设置保持一致,区分大小写。public static readonly string AppId = SiteConfig.GetSite("AppId");//与微信公众账号后台的AppId设置保持一致,区分大小写。private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(WeixinController));/// <summary>/// 微信后台验证地址(使用Get),微信后台的“接口配置信息”的Url填写如:http://sdk.weixin.senparc.com/weixin/// </summary>[HttpGet]public object Get(string signature, string timestamp, string nonce, string echostr){bool istrue = CheckSignature(signature, timestamp, nonce);if (istrue){return echostr; //返回随机字符串则表示验证通过}else{log.Info("如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");return Content("如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。"); //返回随机字符串则表示验证不通过}}#region/// <summary>/// 验证微信签名/// </summary>/// <returns></returns>/// * 将token、timestamp、nonce三个参数进行字典序排序/// * 将三个参数字符串拼接成一个字符串进行sha1加密/// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。private bool CheckSignature(string signature, string timestamp, string nonce){string access_token = Token;string[] ArrTmp = { access_token, timestamp, nonce };Array.Sort(ArrTmp);     //字典排序string tmpStr = string.Join("", ArrTmp);tmpStr = MD5Util.SHA1(tmpStr);if (tmpStr.ToLower() == signature){return true;}else{return false;}}#endregion

微信验证写完之后就是处理微信消息的接口了:
如下所示:

   /// <summary>/// 用户发送消息后,微信平台自动Post一个请求到这里,并等待响应XML/// PS:此方法为常规switch判断方法,从v0.3.3版本起,此Demo不再更新/// </summary>[HttpPost]public object Post(string signature, string timestamp, string nonce, string echostr){if (!CheckSignature(signature, timestamp, nonce)){return Content("参数错误!");}XDocument requestDoc = null;try{var syncIOFeature = HttpContext.Features.Get<IHttpBodyControlFeature>();if (syncIOFeature != null){syncIOFeature.AllowSynchronousIO = true;}requestDoc = XDocument.Load(Request.Body);var requestMessage = RequestMessageFactory.GetRequestEntity(new DefaultMpMessageContext(), requestDoc);requestDoc.Save(ServerUtility.ContentRootMapPath("~/App_Data/" + SystemTime.Now.Ticks + "_Request_" + requestMessage.FromUserName + ".txt"));//测试时可开启,帮助跟踪数据ResponseMessageBase responseMessage = null;switch (requestMessage.MsgType){case RequestMsgType.Text://文字{var strongRequestMessage = requestMessage as RequestMessageText;Dictionary<string, string> dic = new Dictionary<string, string>();string resultmessage = "";resultmessage = strongRequestMessage.Content;if (resultmessage.Length <= 12){var strongresponseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);strongresponseMessage.Content = string.Format("你发送的消息是{0}", strongRequestMessage.Content);responseMessage = strongresponseMessage;}else (resultmessage.Length >= 12){try{//返利信息处理查询代码}catch (Exception e){log.Info("Message"+e.Message);log.Info("InnerException" + e.InnerException.Message);var strongresponseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);strongresponseMessage.Content = string.Format("此商品暂无优惠", strongRequestMessage.Content);responseMessage = strongresponseMessage;}}//TODO:交给Service处理具体信息,参考/Service/EventSercice.cs 及 /Service/LocationSercice.csbreak;}case RequestMsgType.Location://位置{var strongRequestMessage = requestMessage as RequestMessageText;var strongresponseMessage =ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);strongresponseMessage.Content =string.Format("您刚才发送了位置信息,暂不支持位置信息",strongRequestMessage.Content);responseMessage = strongresponseMessage;break;}case RequestMsgType.Image://图片{//TODO:交给Service处理具体信息var strongRequestMessage = requestMessage as RequestMessageImage;var strongresponseMessage =ResponseMessageBase.CreateFromRequestMessage<ResponseMessageNews>(requestMessage);strongresponseMessage.Articles.Add(new Article(){Title = "您刚才发送了图片信息",Description = "您刚才发送了图片信息",PicUrl = strongRequestMessage.PicUrl,Url = "http://www.baidu.com"});responseMessage = strongresponseMessage;break;}case RequestMsgType.Voice://语音{//TODO:交给Service处理具体信息var strongRequestMessage = requestMessage as RequestMessageVoice;var strongresponseMessage =ResponseMessageBase.CreateFromRequestMessage<ResponseMessageMusic>(requestMessage);strongresponseMessage.Music.MusicUrl = "http://sdk.weixin.senparc.com/Content/music1.mp3";responseMessage = strongresponseMessage;break;}case RequestMsgType.Event://事件{var strongRequestMessage = requestMessage as RequestMessageEvent;var strongresponseMessage =ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);log.Info(JsonConvert.SerializeObject(strongRequestMessage));switch (strongRequestMessage.EventName){//关注case "subscribe":strongresponseMessage.Content =string.Format("感谢你关注我的微信号");responseMessage = strongresponseMessage;break;//取消关注case "unsubscribe":strongresponseMessage.Content =string.Format("如果你有那些建议,请及时返回,我争取做得更好");responseMessage = strongresponseMessage;break;//默认事件default:break;}break;}default:throw new ArgumentOutOfRangeException();}var responseDoc = Senparc.NeuChar.Helpers.EntityHelper.ConvertEntityToXml(responseMessage);responseDoc.Save(ServerUtility.ContentRootMapPath("~/App_Data/" + SystemTime.Now.Ticks + "_Response_" + responseMessage.ToUserName + ".txt"));//测试时可开启,帮助跟踪数据return Content(responseDoc.ToString());//如果不需要记录responseDoc,只需要://return Content(responseMessage.ConvertEntityToXmlString());}catch (Exception ex){log.Info("Message:" + ex.Message);log.Info("InnerException:" + ex.InnerException.Message);return Content("");}}

我们可以看到微信回复的事件里面包含,文字信息,语音信息,图片信息,位置信息和事件信息

其中事件信息又分为,关注事件,取消关注事件,如果是有自定义菜单的用户可能还有菜单点击事件

我们通过判断不同类型都消息类型对不同类型的信息进行分析处理

到这里之后只需要发布到服务器配置好之后微信公众号就能按照你编写的代码自动回复了

博主这里无聊对接了1个测qq凶吉的接口喜欢的朋友可以通过
回复
QQ:QQ号
来测凶吉

C# 淘宝商品微信返利助手开发-(八)微信号对接相关推荐

  1. C# 淘宝商品微信返利助手开发-(三)返利助手开发(1)API介绍

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  2. C# 淘宝商品微信返利助手开发-(七)返利助手开发(5)如何将优惠券地址转为淘口令

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  3. C# 淘宝商品微信返利助手开发-(六)返利助手开发(4)如何通过淘口令解析的出来的地址获得返利信息

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  4. C# 淘宝商品微信返利助手开发-(九)编写一个vue页面用于复制淘口令

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  5. C# 淘宝商品微信返利助手开发-(五)返利助手开发(3)淘口令如何通过API转换为链接

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  6. C# 淘宝商品微信返利助手开发-(四)返利助手开发(2)淘宝分享的内容如何只取淘口令

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  7. C# 淘宝商品微信返利助手开发-(二)返利助手开放文档以及帐号申请地址

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  8. 把微信做成找券机器人,淘宝查券返利小助手实现方法分享

    把微信做成找券机器人,淘宝查券返利小助手实现方法,淘宝自动查券找券返利机器人实现方法分享 一.淘客CMS网站 全面打通PC和手机端,只需简单部署一下,就可以拥有属于自己的优惠券cms淘客网站,查券返利 ...

  9. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

最新文章

  1. IPv4_数据报文首部格式
  2. tomcat安装_基于CentOS 一键安装tomcat脚本
  3. 【Python】用 Highcharts 绘制饼图,也很强大
  4. 关于Jeecg互联网化dubbo改造方案(上)
  5. Arthas实践--快速排查Spring Boot应用404/401问题
  6. FCKEditor 打开页面总是得到焦点问题处理 FCKConfig.StartupFocus=false;
  7. Django2.0 path 正则匹配不出url的解决方法
  8. Android WebView学习
  9. lopatkin俄大神精简中文系统Windows 7 Enterprise SP1 7601.23934 x86-x64 ZH-CN PIP
  10. 数字音频水印技术的matlab代码,数字水印技术dct算法matlab源代码
  11. 优酷1080p的kux格式文件转码
  12. c语言看门狗指令pic,PIC单片机之看门狗_看门狗定时器工作原理
  13. 【你不知道的】win10 “你的手机” 正确打开方式:无缝连接手机电脑
  14. 面向对象的三大特征:封装、继承和多态的简单概述
  15. JVM——深入理解类加载器
  16. ORACLE经验汇总
  17. log4j漏洞分析及总结
  18. 计算机考证二级(全)
  19. 【拜读】HTTPS和SSL/TLS 协议
  20. Pjsip笔记之pjsip使用示例

热门文章

  1. 几个留待认真研究的问题,开源tt
  2. ue4物品审视功能及景深效果
  3. 超融合一体机与一体机的区别
  4. android volte功能,VOLTE功能介绍
  5. Python对接api接口爬取音乐
  6. 块元素和行内元素(初步)
  7. 计算机怎样去掉语音,如何关闭word语音识别 (数据丢失 - 电脑使用小技巧 - 电子发烧友网...
  8. host切换工具——SwitchHosts
  9. 《自动驾驶行业交流(微信)群》及公约
  10. matlab程序模拟微信抢红包,js模拟微信抢红包算法的讨论