我在微信上有一个调试官方帐户。我已经在提供的http://admin.wechat.com/debug/sandbox字段中输入了公共URL和令牌,还尝试使用http://admin.wechat.com/debug/调试请求

我的ASP.Net [.Net4.5] Web API应用程序的POST方法如下所示:

public HttpResponseMessage PostMessage([FromBody]Strikemedia.Api.WeChat.TextMessage value)
    {
        if (value == null)
        {
            var richMediaMessage = new RichMediaMessage();
            richMediaMessage.touser = value.FromuserName;

            //Create Article
            var item = new Article()
            {
                title = "Didn't receive anything back",
                description = "Mind entering 'test'",
                picurl = "URL",
                url = "URL"
            };
            var articles = new List<Article>();
            articles.Add(item);
            richMediaMessage.articles = articles;
            richMediaMessage.articleCount = articles.Count;
            return Request.CreateResponse(HttpStatusCode.OK, richMediaMessage, "application/json");
        }

        var exploded = value.Content.Split(' ')[0];

        var richMedia = new RichMediaMessage();
        richMedia.touser = value.FromuserName;

        //Create Article
        var article = new Article() {
            title = response.KeywordDescription,
            description = response.Response,
            picurl = "URL",
            url = "URL"
        };
        var _articles = new List<Article>();
        _articles.Add(article);
        richMedia.articles = _articles;
        richMedia.articleCount = _articles.Count;

        //Return response
        var resp = Request.CreateResponse(HttpStatusCode.OK, richMedia, "application/json");
        //resp.RequestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
        return resp;
    }


它需要以JSON格式的RichMessageType进行响应,并以XML格式接收

我是否缺少某些东西或忽略了某些东西?

最佳答案

您可以确认已将URL和令牌提交到admin.wechat.com中,并且已接受URL和令牌吗?

还要注意,您得到XML,并且以XML响应,而没有json响应。

您是否看过:http://youtu.be/kB20Zf51QWU
然后这个
http://youtu.be/_2FSzD2B2F0

这是XML的文档,可在您通过Google搜索“消息API的微信指南”时找到

因此,如果您在admin.wechat.com上提交应用程序时仍未收到成功消息,则可以在此处向我发送测试URL。要找到此网址,请检查您的访问日志,以确切了解我们正在调用的网址。然后在这里发布。请注意,当您按微信访问URL时,您仅应在屏幕上看到“回显”字样(在浏览器中查看源代码时)。没有XML没有HTML只是echostr。

还要确保在“ echostr”之后或之前没有空格或换行符。当您查看源代码时,它只能是echostr GET参数值的一行。

仅当您实际上开始响应来自用户的消息时,才会出现XML响应。目前,微信只是在确认您的安全性设置是否正确。

还要注意,如果您的服务器是负载平衡的,那么当通过echostr GET参数并且仅将“ echostr”参数回显到屏幕时,您将不得不跳过签名验证并建立您自己的验证。

10-04 19:41