磊磊虫 發表於 2020-1-19 14:50:00

微信公众号开发之回复图文消息(十一)

<p><span style="font-family: 黑体">有时候我们希望用户点击我们的菜单时候,微信公众号给他回复我们自定义的图文消息,先看开发文档接口</span></p>
<h2 id="回复图文消息"><span style="font-family: 黑体">回复图文消息</span></h2>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="15">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;code&amp;quot;:&amp;quot;&amp;lt;xml&amp;gt;\n&amp;lt;ToUserName&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/ToUserName&amp;gt;\n&amp;lt;FromUserName&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/FromUserName&amp;gt;\n&amp;lt;CreateTime&amp;gt;12345678&amp;lt;/CreateTime&amp;gt;\n&amp;lt;MsgType&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/MsgType&amp;gt;\n&amp;lt;ArticleCount&amp;gt;1&amp;lt;/ArticleCount&amp;gt;\n&amp;lt;Articles&amp;gt;\n    &amp;lt;item&amp;gt;\n      &amp;lt;Title&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/Title&amp;gt;\n      &amp;lt;Description&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/Description&amp;gt;\n      &amp;lt;PicUrl&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/PicUrl&amp;gt;\n      &amp;lt;Url&amp;gt;&amp;lt;!]&amp;gt;&amp;lt;/Url&amp;gt;\n    &amp;lt;/item&amp;gt;\n&amp;lt;/Articles&amp;gt;\n&amp;lt;/xml&amp;gt;\n\n&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="hljs">&lt;xml&gt;
&lt;ToUserName&gt;&lt;!]&gt;&lt;/ToUserName&gt;
&lt;FromUserName&gt;&lt;!]&gt;&lt;/FromUserName&gt;
&lt;CreateTime&gt;12345678&lt;/CreateTime&gt;
&lt;MsgType&gt;&lt;!]&gt;&lt;/MsgType&gt;
&lt;ArticleCount&gt;1&lt;/ArticleCount&gt;
&lt;Articles&gt;
    &lt;item&gt;
      &lt;Title&gt;&lt;!]&gt;&lt;/Title&gt;
      &lt;Description&gt;&lt;!]&gt;&lt;/Description&gt;
      &lt;PicUrl&gt;&lt;!]&gt;&lt;/PicUrl&gt;
      &lt;Url&gt;&lt;!]&gt;&lt;/Url&gt;
    &lt;/item&gt;
&lt;/Articles&gt;
&lt;/xml&gt;

</code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<table class=" cke_show_border">
<thead>
<tr><th><span style="font-family: 黑体">参数</span></th><th><span style="font-family: 黑体">是否必须</span></th><th><span style="font-family: 黑体">说明</span></th></tr>
</thead>
<tbody>
<tr>
<td><span style="font-family: 黑体">ToUserName</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">接收方帐号(收到的OpenID)</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">FromUserName</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">开发者微信号</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">CreateTime</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">消息创建时间 (整型)</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">MsgType</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">消息类型,图文为news</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">ArticleCount</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">图文消息个数;当用户发送文本、图片、视频、图文、地理位置这五种消息时,开发者只能回复1条图文消息;其余场景最多可回复8条图文消息</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">Articles</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">图文消息信息,注意,如果图文数超过限制,则将只发限制内的条数</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">Title</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">图文消息标题</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">Description</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">图文消息描述</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">PicUrl</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200</span></td>
</tr>
<tr>
<td><span style="font-family: 黑体">Url</span></td>
<td><span style="font-family: 黑体">是</span></td>
<td><span style="font-family: 黑体">点击图文消息跳转链接</span></td>
</tr>
</tbody>
</table>
<p><span style="font-family: 黑体">先定义我们的发送体POJO,一个是Article,一个是NewsMessage</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="14"><img class="has cke_widget_element lazyload" alt="" width="1200" height="744" src="https://img-blog.csdnimg.cn/20200113114222893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113114222893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;744&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113114222893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="13"><img class="has cke_widget_element lazyload" alt="" width="1200" height="747" src="https://img-blog.csdnimg.cn/20200113114142831.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113114142831.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;747&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113114142831.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="12">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;Article.java\n&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">Article.java
</code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="11">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;package com.xu.wemall.pojo.message;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport lombok.NoArgsConstructor;\n/**\n &nbsp;*&nbsp;\n &nbsp;* @Description: 图文model\n &nbsp;* @Parameters:&nbsp;\n &nbsp;* @Return:&nbsp;\n &nbsp;* @Create Date:&nbsp;\n &nbsp;* @Version: V1.00\n &nbsp;* @author: 来日可期\n &nbsp;*/\n@Data\n@AllArgsConstructor\n@NoArgsConstructor\n@EqualsAndHashCode(callSuper = false)\npublic class Article {\n\n    //图文消息名称\n    private String Title;\n\n    //图文消息描述\n    private String Description;\n\n    //图片链接,支持JPG、PNG格式,较好的效果为大图640像素*320像素,小图80像素*80像素\n    private String PicUrl;\n\n    //点击图文消息跳转链接\n    private String Url;\n\n}\n\n&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">package com.xu.wemall.pojo.message;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
&nbsp;*&nbsp;
&nbsp;* @Description: 图文model
&nbsp;* @Parameters:&nbsp;
&nbsp;* @Return:&nbsp;
&nbsp;* @Create Date:&nbsp;
&nbsp;* @Version: V1.00
&nbsp;* @author: 来日可期
&nbsp;*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class Article {

    //图文消息名称
    private String Title;

    //图文消息描述
    private String Description;

    //图片链接,支持JPG、PNG格式,较好的效果为大图640像素*320像素,小图80像素*80像素
    private String PicUrl;

    //点击图文消息跳转链接
    private String Url;

}

</code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="10">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;NewsMessage.java&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">NewsMessage.java</code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="9">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;package com.xu.wemall.pojo.message;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport lombok.NoArgsConstructor;\n\nimport java.util.List;\n\n/**\n *\n * @Description: 图文消息\n * @Parameters:\n * @Return:\n * @Create Date:\n * @Version: V1.00\n * @author: 来日可期\n */\n@Data\n@AllArgsConstructor\n@NoArgsConstructor\n@EqualsAndHashCode(callSuper = false)\npublic class NewsMessage extends BaseMessage {\n\n    //图文消息个数,限制为10条以内\n    private int ArticleCount;\n\n    //多条图文消息信息,默认第一个item为大图\n    private List&amp;lt;Article&amp;gt; Articles;\n\n}\n&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">package com.xu.wemall.pojo.message;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
*
* @Description: 图文消息
* @Parameters:
* @Return:
* @Create Date:
* @Version: V1.00
* @author: 来日可期
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class NewsMessage extends BaseMessage {

    //图文消息个数,限制为10条以内
    private int ArticleCount;

    //多条图文消息信息,默认第一个item为大图
    private List<span class="hljs-tag">&lt;<span class="hljs-name">Article&gt; Articles;

}
</span></span></code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<p><span style="font-family: 黑体">定义一个方法回复图文消息</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="8"><img class="has cke_widget_element lazyload" alt="" width="1200" height="922" src="https://img-blog.csdnimg.cn/20200113114459458.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113114459458.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;922&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113114459458.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="7">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;/**\n * 回复文本图片\n * @param toUserName\n * @param fromUserName\n * @param articles\n * @return\n */\npublic String replyForArticles(String toUserName, String fromUserName, List&amp;lt;Article&amp;gt; articles) throws Exception{\n\n    log.info(\&amp;quot;这是图文消息回复!\&amp;quot;);\n    NewsMessage newsMessage = new NewsMessage();\n    //必填\n    newsMessage.setFromUserName(toUserName);\n    //必填\n    newsMessage.setToUserName(fromUserName);\n    //必填\n    newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);\n    //必填\n    newsMessage.setCreateTime( LocalDateTime.now().toInstant(ZoneOffset.of(\&amp;quot;+8\&amp;quot;)).toEpochMilli());\n\n    //当用户发送文本、图片、视频、图文、地理位置这五种消息时,开发者只能回复1条图文消息\n    newsMessage.setArticleCount(1);\n\n    if (!articles.isEmpty()) {\n      newsMessage.setArticles(articles);\n      String xmlString = MessageUtil.newsMessageToXml(newsMessage);\n      log.info(xmlString);\n\n      return xmlString;\n    }\n    return null;\n}&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">/**
* 回复文本图片
* @param toUserName
* @param fromUserName
* @param articles
* @return
*/
public String replyForArticles(String toUserName, String fromUserName, List<span class="hljs-tag">&lt;<span class="hljs-name">Article&gt; articles) throws Exception{

    log.info("这是图文消息回复!");
    NewsMessage newsMessage = new NewsMessage();
    //必填
    newsMessage.setFromUserName(toUserName);
    //必填
    newsMessage.setToUserName(fromUserName);
    //必填
    newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);
    //必填
    newsMessage.setCreateTime( LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli());

    //当用户发送文本、图片、视频、图文、地理位置这五种消息时,开发者只能回复1条图文消息
    newsMessage.setArticleCount(1);

    if (!articles.isEmpty()) {
      newsMessage.setArticles(articles);
      String xmlString = MessageUtil.newsMessageToXml(newsMessage);
      log.info(xmlString);

      return xmlString;
    }
    return null;
}</span></span></code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<p><span style="font-family: 黑体">这里有个MessageUtil.newsMessageToXml(newsMessage)方法</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="6"><img class="has cke_widget_element lazyload" alt="" width="1200" height="582" src="https://img-blog.csdnimg.cn/20200113114638917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113114638917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;582&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113114638917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="5">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;/**\n * @param newsMessage\n * @return xml\n * @Description: 图文消息对象转换成xml\n * @date 2016-12-01\n */\n\npublic static String newsMessageToXml(NewsMessage newsMessage) {\n    xstream.alias(\&amp;quot;xml\&amp;quot;, newsMessage.getClass());\n    xstream.alias(\&amp;quot;item\&amp;quot;, new Article().getClass());\n    return xstream.toXML(newsMessage);\n}&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">/**
* @param newsMessage
* @return xml
* @Description: 图文消息对象转换成xml
* @date 2016-12-01
*/

public static String newsMessageToXml(NewsMessage newsMessage) {
    xstream.alias("xml", newsMessage.getClass());
    xstream.alias("item", new Article().getClass());
    return xstream.toXML(newsMessage);
}</code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<p><span style="font-family: 黑体">现在测试一下我们的代码,我们需要在我们的菜单里触发我们的方法,我们这里采用</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="4"><img class="has cke_widget_element lazyload" alt="" width="1119" height="592" src="https://img-blog.csdnimg.cn/20200113114852572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113114852572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1119&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;592&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113114852572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<p><span style="font-family: 黑体">如果需要重新生成菜单,请重新生成一次,然后我们在微信接入的核心controller中写我们的响应代码</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="3"><img class="has cke_widget_element lazyload" alt="" width="1200" height="837" src="https://img-blog.csdnimg.cn/2020011311501357.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/2020011311501357.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;837&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/2020011311501357.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="代码段" data-cke-widget-id="2">
<pre class="has cke_widget_element" data-cke-widget-data="{&amp;quot;lang&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;package com.xu.wemall.controller.weixin;\n\nimport com.alibaba.fastjson.JSONObject;\nimport com.xu.wemall.commons.utils.CheckUtil;\nimport com.xu.wemall.components.weixin.MessageUtil;\nimport com.xu.wemall.components.weixin.WeiXinUserUtil;\nimport com.xu.wemall.pojo.message.Article;\nimport io.swagger.annotations.Api;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.io.PrintWriter;\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 类名称: LoginController\n * 类描述: 与微信对接登陆验证\n *\n * @author RonnieXu\n * 创建时间:2017年12月5日上午10:52:13\n */\n@Slf4j\n@RestController\n@Api(tags = \&amp;quot;接入验证接口\&amp;quot;)\n@RequestMapping(value = \&amp;quot;/weChart\&amp;quot;)\npublic class WeiXinController {\n\n    @Autowired\n    private WeiXinUserUtil weiXinUserUtil;\n\n    @Autowired\n    private MessageUtil messageUtil;\n\n    @RequestMapping(value = \&amp;quot;/connect\&amp;quot;, method = RequestMethod.GET)\n    public String connect(@RequestParam(value = \&amp;quot;signature\&amp;quot;) String signature,\n                        @RequestParam(value = \&amp;quot;timestamp\&amp;quot;) String timestamp,\n                        @RequestParam(value = \&amp;quot;nonce\&amp;quot;) String nonce,\n                        @RequestParam(value = \&amp;quot;echostr\&amp;quot;) String echostr) {\n\n      log.info(\&amp;quot;-----开始校验签名-----\&amp;quot;);\n      PrintWriter out = null;\n      if (CheckUtil.checkSignature(signature, timestamp, nonce)) {\n            log.info(\&amp;quot;-----签名校验通过-----\&amp;quot;);\n            return echostr;\n      } else {\n            log.info(\&amp;quot;-----校验签名失败-----\&amp;quot;);\n            return null;\n      }\n\n    }\n\n    @RequestMapping(value = \&amp;quot;connect\&amp;quot;, method = RequestMethod.POST)\n    public String dopost(HttpServletRequest request, HttpServletResponse response) throws Exception {\n\n      response.setCharacterEncoding(\&amp;quot;utf-8\&amp;quot;);\n\n      //将微信请求xml转为map格式,获取所需的参数\n      Map&amp;lt;String, String&amp;gt; map = MessageUtil.parseXml(request);\n      String ToUserName = map.get(\&amp;quot;ToUserName\&amp;quot;);\n      String FromUserName = map.get(\&amp;quot;FromUserName\&amp;quot;);\n      String MsgType = map.get(\&amp;quot;MsgType\&amp;quot;);\n      String Content = map.get(\&amp;quot;Content\&amp;quot;);\n      String Event = map.get(\&amp;quot;Event\&amp;quot;);\n      String EventKey = map.get(\&amp;quot;EventKey\&amp;quot;);\n\n      if(MessageUtil.REQ_MESSAGE_TYPE_EVENT.equals(MsgType)){\n\n            if(MessageUtil.EVENT_TYPE_SUBSCRIBE.equals(Event)){\n                String xmlString = messageUtil.subscribeForText(ToUserName,FromUserName);\n\n                //关注了公众号,调用接口获得用户的详细信息并保存到后台\n                JSONObject jsonObject = weiXinUserUtil.handdleWeixinUserInfo(FromUserName);\n                log.info(\&amp;quot;获取用户的详细信息:{}\&amp;quot;,jsonObject.toJSONString());\n\n                return xmlString;\n\n            }else if(MessageUtil.EVENT_TYPE_UNSUBSCRIBE.equals(Event)){\n\n                String xmlString = messageUtil.unsubscribeForText(ToUserName,FromUserName);\n                return xmlString;\n\n            }else if(MessageUtil.EVENT_TYPE_SCAN.equals(Event)){\n                JSONObject jsonObject = weiXinUserUtil.handdleWeixinUserInfo(FromUserName);\n                log.info(\&amp;quot;获取用户的详细信息:{}\&amp;quot;,jsonObject.toJSONString());\n\n            }\n\n      }\n\n      //处理文本类型,实现输入1,回复相应的封装的内容\n      if (MessageUtil.REQ_MESSAGE_TYPE_TEXT.equals(MsgType)) {\n            String xmlString = messageUtil.replyForText(ToUserName,FromUserName,\&amp;quot;你发送的是:\&amp;quot; + Content);\n            log.info(xmlString);\n            return xmlString;\n\n      }\n\n      if (MessageUtil.REQ_MESSAGE_TYPE_IMAGE.equals(MsgType)) {\n\n            String filePath = \&amp;quot;C:\\\\Users\\\\RonnieXu\\\\Pictures\\\\2.jpg\&amp;quot;;\n            String xmlString = messageUtil.replyForImage(ToUserName,FromUserName,filePath);\n            return xmlString;\n      }\n\n      if (\&amp;quot;1\&amp;quot;.equals(EventKey)) {\n\n            List&amp;lt;Article&amp;gt; articles = new ArrayList&amp;lt;&amp;gt;();\n            Article article = new Article();\n            article.setTitle(\&amp;quot;Hello, Ronnie\&amp;quot;);\n            article.setDescription(\&amp;quot;这是一条描述,这是一条描述\&amp;quot;);\n            article.setPicUrl(\&amp;quot;https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super\&amp;quot;);\n            article.setUrl(\&amp;quot;https://www.baidu.com/\&amp;quot;);\n            articles.add(article);\n\n            String xmlString = messageUtil.replyForArticles(ToUserName,FromUserName,articles);\n            return xmlString;\n      }\n\n      return null;\n    }\n\n}\n&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"><span style="font-family: 黑体"><code class="language-html hljs">package com.xu.wemall.controller.weixin;

import com.alibaba.fastjson.JSONObject;
import com.xu.wemall.commons.utils.CheckUtil;
import com.xu.wemall.components.weixin.MessageUtil;
import com.xu.wemall.components.weixin.WeiXinUserUtil;
import com.xu.wemall.pojo.message.Article;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
* 类名称: LoginController
* 类描述: 与微信对接登陆验证
*
* @author RonnieXu
* 创建时间:2017年12月5日上午10:52:13
*/
@Slf4j
@RestController
@Api(tags = "接入验证接口")
@RequestMapping(value = "/weChart")
public class WeiXinController {

    @Autowired
    private WeiXinUserUtil weiXinUserUtil;

    @Autowired
    private MessageUtil messageUtil;

    @RequestMapping(value = "/connect", method = RequestMethod.GET)
    public String connect(@RequestParam(value = "signature") String signature,
                        @RequestParam(value = "timestamp") String timestamp,
                        @RequestParam(value = "nonce") String nonce,
                        @RequestParam(value = "echostr") String echostr) {

      log.info("-----开始校验签名-----");
      PrintWriter out = null;
      if (CheckUtil.checkSignature(signature, timestamp, nonce)) {
            log.info("-----签名校验通过-----");
            return echostr;
      } else {
            log.info("-----校验签名失败-----");
            return null;
      }

    }

    @RequestMapping(value = "connect", method = RequestMethod.POST)
    public String dopost(HttpServletRequest request, HttpServletResponse response) throws Exception {

      response.setCharacterEncoding("utf-8");

      //将微信请求xml转为map格式,获取所需的参数
      Map<span class="hljs-tag">&lt;<span class="hljs-name">String, <span class="hljs-attr">String&gt; map = MessageUtil.parseXml(request);
      String ToUserName = map.get("ToUserName");
      String FromUserName = map.get("FromUserName");
      String MsgType = map.get("MsgType");
      String Content = map.get("Content");
      String Event = map.get("Event");
      String EventKey = map.get("EventKey");

      if(MessageUtil.REQ_MESSAGE_TYPE_EVENT.equals(MsgType)){

            if(MessageUtil.EVENT_TYPE_SUBSCRIBE.equals(Event)){
                String xmlString = messageUtil.subscribeForText(ToUserName,FromUserName);

                //关注了公众号,调用接口获得用户的详细信息并保存到后台
                JSONObject jsonObject = weiXinUserUtil.handdleWeixinUserInfo(FromUserName);
                log.info("获取用户的详细信息:{}",jsonObject.toJSONString());

                return xmlString;

            }else if(MessageUtil.EVENT_TYPE_UNSUBSCRIBE.equals(Event)){

                String xmlString = messageUtil.unsubscribeForText(ToUserName,FromUserName);
                return xmlString;

            }else if(MessageUtil.EVENT_TYPE_SCAN.equals(Event)){
                JSONObject jsonObject = weiXinUserUtil.handdleWeixinUserInfo(FromUserName);
                log.info("获取用户的详细信息:{}",jsonObject.toJSONString());

            }

      }

      //处理文本类型,实现输入1,回复相应的封装的内容
      if (MessageUtil.REQ_MESSAGE_TYPE_TEXT.equals(MsgType)) {
            String xmlString = messageUtil.replyForText(ToUserName,FromUserName,"你发送的是:" + Content);
            log.info(xmlString);
            return xmlString;

      }

      if (MessageUtil.REQ_MESSAGE_TYPE_IMAGE.equals(MsgType)) {

            String filePath = "C:\\Users\\RonnieXu\\Pictures\\2.jpg";
            String xmlString = messageUtil.replyForImage(ToUserName,FromUserName,filePath);
            return xmlString;
      }

      if ("1".equals(EventKey)) {

            List<span class="hljs-tag">&lt;<span class="hljs-name">Article&gt; articles = new ArrayList<span class="hljs-tag">&lt;&gt;();
            Article article = new Article();
            article.setTitle("Hello, Ronnie");
            article.setDescription("这是一条描述,这是一条描述");
            article.setPicUrl("https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super");
            article.setUrl("https://www.baidu.com/");
            articles.add(article);

            String xmlString = messageUtil.replyForArticles(ToUserName,FromUserName,articles);
            return xmlString;
      }

      return null;
    }

}
</span></span></span></span></span></span></code></span></pre>
<span class="cke_reset cke_widget_drag_handler_container" style="font-family: 黑体"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="></span></div>
<p><span style="font-family: 黑体">点击我们的微信公众号子菜单,触发我们的方法,可以看到我们收到了一个titile是“Hello,Ronnie”的图文消息</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="1"><img class="has cke_widget_element lazyload" alt="" width="1166" height="859" src="https://img-blog.csdnimg.cn/20200113115206663.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113115206663.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1166&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;859&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113115206663.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<p><span style="font-family: 黑体">点击这个图文消息,我们就进入我们设置的URL页面,这里我们设置是百度首页,呵呵呵(捂脸中)</span></p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected" style="font-family: 黑体" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="0"><img class="has cke_widget_element lazyload" alt="" width="1200" height="1022" src="https://img-blog.csdnimg.cn/20200113115343962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/20200113115343962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;1200&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;1022&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:{&amp;quot;has&amp;quot;:1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image" data-src="https://img-blog.csdnimg.cn/20200113115343962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjEyMjA=,size_16,color_FFFFFF,t_70"><span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" alt="" width="15" height="15" data-cke-widget-drag-handler="1" data-src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​</span></span></span></p>
<p><span style="font-family: 黑体">今天的内容到此为止,谢谢观看,下回再见!</span></p>
<p>&nbsp;</p>
<h3>如果您觉得此文有帮助,可以小小打赏一下,持续更新更有动力哟!</h3>
<p>&nbsp;</p>
<p><img alt="" width="218" height="274" data-src="https://img2020.cnblogs.com/blog/1501920/202004/1501920-20200402133129576-79870337.png"><img src="https://img2020.cnblogs.com/blog/1501920/202004/1501920-20200402133221455-2112921293.png"></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/xulijun137/p/12213663.html
頁: [1]
查看完整版本: 微信公众号开发之回复图文消息(十一)