如何用JAVA开发微信订餐系统呢?

  如何用JAVA开发微信订餐系统呢?

  现在很多人吃饭的时候都懒得去外面小餐馆里吃了,现在比如各种外卖呀什么的,最近微信也开通了订餐系统,有很多人问小编微信订餐系统怎么开发呢?下面小编就给大家介绍一下。

  还是先交代下背景:所谓“微信点餐”,其实就是用户通过微信app,关注公众号,发送指定类型的信息,如地理位置信息,网站返回相关链接到微信上,通过这些链接进入wap或者html5网站,然后开始选择商家、点餐、提交订单等。关于微信app,与订餐网站的关系,我简单的画了一个图,比较潦草,请别喷得太厉害了,说简单点:微信app通过微信服务器,传给订餐网站(申请公众号时,会输入一个地址,微信服务器就是通过此地址post,get消息的),网站根据收到的消息,返回具体信息,再通过某些信息的链接进入wap或者html5站点。

  如何用JAVA开发微信订餐系统呢?

  BaseNotice.cs,此类表示消息基类,因为每个消息都有几个字段是相同的,如ToUserName、FromUserName、CreateTime、MsgType等,所有抽象出一个基类,此类还有一个抽象方法LoadXml,根据xml返回类的对像的实例。其他具体消息继承此类,加上自己特定的信息。

  text.cs ,此类表示文本消息类,除了有BaseNotice中有的属性外,还有一个Content,表示文本信息内容。且实现LoadXml方法,返回一个text实例,代码如下:

  View Code

  ///

  /// 文本消息

  ///

  public class text : BaseNotice

  {

  ///

  /// 根据xml返回对像

  ///

  ///

  ///

  public override BaseNotice LoadXml(string xml)

  {

  text notice = new text();

  //

  System.Xml.XmlDocument d = new System.Xml.XmlDocument();

  d.LoadXml(xml);

  System.Xml.XmlCDataSection n = d.SelectSingleNode("/xml/ToUserName").FirstChild as System.Xml.XmlCDataSection;

  notice.ToUserName = n.Value;

  n = d.SelectSingleNode("/xml/FromUserName").FirstChild as System.Xml.XmlCDataSection;

  notice.FromUserName = n.Value;

  //n = d.SelectSingleNode("/xml/CreateTime").FirstChild as System.Xml.XmlCDataSection;

  //notice.CreateTime = n.Value;

  n = d.SelectSingleNode("/xml/MsgType").FirstChild as System.Xml.XmlCDataSection;

  notice.MsgType = n.Value;

  n = d.SelectSingleNode("/xml/Content").FirstChild as System.Xml.XmlCDataSection;

  notice.Content = n.Value;

  //n = d.SelectSingleNode("/xml/MsgId").FirstChild as System.Xml.XmlCDataSection;

  //notice.MsgId = n.Value;

  return notice;

  }

  ///

  /// 消息内容

  ///

  public string Content

  {

  get;

  set;

  }

  }

  location.cs,此类表示地理位置消息类,除了有BaseNotice中有的属性外,还有Location_X(纬度),Location_Y(经度)等信息。实现代码与text.cs差不多,这里就不再贴了。

  BaseHandler.cs,表示处理消息的基类,定义了一个抽象方法HandleNotice,由具体处理类,去实现,代码比较简单,如下:

  //

  /// 文本信息处理类

  ///

  public class TextHandler : BaseHandler

  {

  public TextHandler(BaseNotice _notice)

  : base(_notice)

  {

  }

  ///

  /// 文本信息处理方法,如果文本信息 = d,返回今天订单

  ///

  ///

  public override string HandleNotice()

  {

  StringBuilder backmsg = new StringBuilder();

  text model = (text)base.notice;

  backmsg.Append(" ");

  return backmsg.ToString();

  }

  通过以上的描述你是否了解如何用JAVA开发微信订餐系统呢?这样如此全面、有效、简单的恢复方法,你学会了吗?




卖贝商城更多商品介绍:商城网站     万网域名怎么样    天极网游戏新闻源推广