1

所以我们让我们的应用程序在微信调试控制台中被接受,并希望用富媒体类型的消息进行响应。来自服务器的预期请求如下:

<xml>
   <ToUserName>UserName</ToUserName>
    <FromuserName>TestUser</FromuserName>
    <CreateTime>7200</CreateTime>
    <MsgId>12302</MsgId>
    <Content>Test Message</Content>
</xml>

我们回复如下:

 <xml>
    <ToUserName>TestUser</ToUserName>
    <FromUserName>UserName</FromUserName>
    <CreateTime>7200</CreateTime>
    <MsgType>news</MsgType>
    <ArticleCount>1</ArticleCount>
    <Articles>
        <item>
             <Title>Test</Title>
             <Description>Test</Description>
             <PicUrl>http://PICURL</PicUrl>
             <Url>http://ARTICLE_URL</Url>
        </item>
    </Articles>
 </xml>

但是,应用程序似乎没有收到设置的请求,所以问题是:

  1. 请求会转到 URL 设置吗?
  2. 如果是这样,为响应提供的 xml 以及发布到提供的 url 的消息是否正确?
  3. 请求中是否存在特定的标头?
4

1 回答 1

1
  1. 是的,请求将转到您设置的 URL,并将直接 XML 帖子发送到您的脚本。
  2. 检查您的 XML,与实际系统输入和输出似乎有很多差异,还检查工作输入和输出 XML 的示例并尝试这个。显然替换了 ToUserName 和 FromUserName:

输入响应

    <xml>
        <ToUserName><![CDATA[gh_4456]]></ToUserName>
        <FromUserName><![CDATA[123abc]]></FromUserName> 
        <CreateTime>1397201326</CreateTime> 
        <MsgType><![CDATA[text]]></MsgType> 
        <Content><![CDATA[test]]></Content> 
        <MsgId>6000934001298302633</MsgId> 
    </xml> 

输出响应

    <xml> 
        <ToUserName><![CDATA[123abc]]></ToUserName> 
        <FromUserName><![CDATA[gh_4456]]></FromUserName> 
        <CreateTime>1397201781</CreateTime> 
        <MsgType><![CDATA[news]]></MsgType> 
        <ArticleCount>1</ArticleCount> 
        <Articles>
            <item> 
                <Title><![CDATA[Your test title]]></Title> 
                <Description><![CDATA[test description]]></Description> 
                <PicUrl><![CDATA[http://test.com/img.jpg]]></PicUrl> 
                <Url><![CDATA[http://test.com/]]></Url> 
            </item> 
        </Articles> 
    </xml>  
  1. 无需担心标题。

    • 对于官方 OA:我认为您的问题可能是您尚未启用开发人员模式。即使您已经设置了 URL 和 TOKEN。请确认开发者模式已启用。去 admin.wechat.com -> 登录 -> 功能 -> 高级 -> 开发者模式应该是启用的。

    • 对于沙盒帐户:始终启用开发人员模式。

    • 还要检查您的 CreateTime 这应该是一个 unix 时间戳。

    • 如果这些都不能解决,请查看您的访问日志。找到微信发帖的网址。将 URL 转到http://www.hurl.it/后,将目标类型更改为 POST 并将 URL 粘贴到那里。添加一个名为“Content-Type”的标头,其值为“text/xml”,单击添加正文并在其中发布您的输入响应。这会给你微信看到的响应。我测试了你的,发现 ToUserName 是空白的,还要确保你没有不需要的空格或换行符。

于 2014-04-11T08:25:57.337 回答