.net怎么写微信接口 带例子

分类:应用接口| 发布:佚名| 查看: | 发表时间:2013/12/26

.net 微信接口(如何使用微信接口--做过的请进)
想做一个程序通过微信发信息。
有人做过吗?是怎么实现的。 
-------------------------------------------------------------------
我找的参考代码,有人知道实现不步骤吗?
<%@ WebHandler Language="C#" CodeBehind="MessageReceiveHandler.ashx.cs" Class="MessageReceiveHandler" %>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Web.UI.HtmlControls;
using System.IO;
using Tencent.WeiXin;
    /// <summary>
    /// MessageReceiveHandler 的摘要说明
    /// </summary>
    public class MessageReceiveHandler : IHttpHandler
    {

        private static readonly string Token = "Opzoon-ITservice";
        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.RequestType == "GET")
            {
                if (CheckSignature(context))
                {
                    context.Response.Write(context.Request.QueryString["echostr"]);
                }
                return;
            }
            var messageBase=MessageBase.Parse(context.Request.InputStream, context.Request.ContentEncoding);
            Tencent.WeiXin.TextReplyMessage text = new Tencent.WeiXin.TextReplyMessage();
            text.Content = "我收到了";
            switch (messageBase.Type)
            {
                case MessageType.Text:
                    text.Content += string.Format("文本消息“{0}”",((TextMessage)messageBase).Content);break;

case MessageType.Image:
                    text.Content += string.Format("图片消息“{0}”", ((ImageMessage)messageBase).PicUrl); break;
                case MessageType.Link:
                    text.Content += string.Format("链接消息“{0}”", ((LinkMessage)messageBase).Url); break;
                case MessageType.Location:
                    text.Content += string.Format("地图消息“X:{0}Y:{1}C{2}L{3}”", ((LocationMessage)messageBase).X,((LocationMessage)messageBase).Y,((LocationMessage)messageBase).Scale,((LocationMessage)messageBase).Label); break;
                case MessageType.Event:
                    text.Content += string.Format("时间推送消息“{0}”", ((EventMessage)messageBase).EventType); break;
            }
            text.Init(messageBase);
            text.Write(context.Response.Output);
            //context.Response.Write(mess.ToString());
            context.Response.ContentType = "text/xml";
            context.Response.Flush();
        }
        protected virtual bool CheckSignature(HttpContext context)
        {
            List<string> list = new List<string>();
            list.Add(context.Request.QueryString["timestamp"]);
            list.Add(context.Request.QueryString["nonce"]);
            list.Add(Token);
            list = list.OrderBy(t => t).ToList();

var sha1 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(list[0] + list[1] + list[2], "SHA1");
            var signature = context.Request.QueryString["signature"];
            //var signature = "testtesttest";
            return signature.Equals(sha1, StringComparison.OrdinalIgnoreCase);
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

微信 接口


------解决方案--------------------
看看这个upload/2013/12/201312261202261154.jpg" alt="" >


不是有接收用户信息么

------解决方案--------------------
楼主的代码是用来接收的,不是发送的。
如果想通过电脑发出信息到对方手机的微信上。那么需要知道微信的通信协议和地址。否则连待接收手机的地址都不能知道,实现不了发送。另外微信的协议是加密的。
需要知道这些

------解决方案--------------------
不管是消息推送还是消息回复都应该是xml把,我也没做过
------解决方案--------------------
关注中,希望这个帖子有个好的结果!!
------解决方案--------------------
前几天做这个了,
整体流程是:
1.用户发消息给微信服务器》2.微信服务器收到用户消息》3.微信服务器把消息发给你》4.你解析消息》5.返回给微信服务器》6.微信服务器发消息给用户
------解决方案--------------------

        /// <summary>
        /// 处理文本消息
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        private static string DoTextMsg(XmlDocument xml)
        {
            //微信服务器发过来xml
            //TODO 取出内容
            string touser = xml.SelectSingleNode("xml/ToUserName").InnerText;
            string fromuser = xml.SelectSingleNode("xml/FromUserName").InnerText;
 
            //下面就是如何处理xml
            xml.SelectSingleNode("xml/ToUserName").InnerText = fromuser;//设置接受消息的用户
            xml.SelectSingleNode("xml/FromUserName").InnerText = touser;//消息来自谁
            xml.SelectSingleNode("xml/Content").InnerText = "这是回复的内容";//这里是你回复的内容,字符串的怎么写都可以
 
            return xml.OuterXml;//以字符串形式返回
        }

via

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/790.html

相关文章