Ответное сообщение не принимается WeChat

Итак, мы получили наше приложение, принятое в консоли отладки wechat, и хотим ответить мультимедийными сообщениями. запрос, ожидаемый от сервера, выглядит следующим образом:

<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. Есть ли в запросе конкретные заголовки?

person Cipher    schedule 11.04.2014    source источник


Ответы (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 -> логин -> функция -> расширенный -> режим разработчика должен быть ВКЛЮЧЕН.

    • ДЛЯ УЧЕТНОЙ ЗАПИСИ SANDBOX: режим разработчика всегда включен.

    • Также проверьте свой CreateTime, это должна быть отметка времени unix.

    • Если ничего из этого не решает, идите и посмотрите свои журналы доступа. Найдите URL-адрес, на который ведет публикацию wechat. Как только вы получите URL-адрес http://www.hurl.it/, измените тип назначения на POST и вставьте туда URL. Добавьте заголовок «Content-Type» со значением «text/xml», нажмите «Добавить тело» и опубликуйте там свой входной ответ. Это даст вам ответ, который видит WeChat. Я проверил ваш и обнаружил, что ToUserName был пустым, также убедитесь, что у вас нет ненужных пробелов или новых строк.

person DeveloperX    schedule 11.04.2014
comment
Хорошо, я считаю, что раньше нам не хватало тегов CDATA, и мы добавили их слишком много в конце. Теперь XML отправляется как: ‹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› И мы получаем ответы - person Cipher; 11.04.2014
comment
Спасибо за ответ! - person DeveloperX; 11.04.2014
comment
@DeveloperX, можете ли вы предоставить мне рабочий пример интеграции API в чате, где мы получаем ответ другого пользователя в нашем приложении, - person Rohit; 13.05.2014
comment
Официально в настоящее время доступен только пример PHP: admin.wechat.com/wiki/index.php ?title=Guide_for_Message_API -› прокрутите вниз или перейдите по ссылке от 26 мая 2014 г. admin.wechat.com/mpres/htmledition/res/wx_sample.zip - person DeveloperX; 26.05.2014