一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 微信公眾號開發之回復圖文消息java代碼

微信公眾號開發之回復圖文消息java代碼

2021-04-16 13:15小小漁夫 Java教程

這篇文章主要為大家詳細介紹了微信公眾號開發之回復圖文消息java代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

微信公眾號開發之回復圖文消息,供大家參考,具體內容如下

圖文消息的主要參數說明

通過微信官方的消息接口指南,可以看到對圖文消息的參數介紹,如下圖所示:

微信公眾號開發之回復圖文消息java代碼

從上圖可以了解到:

1、圖文消息的個數限制為10,也就是圖文中articlecount的值(圖文消息的個數,限制在10條以內)

2、對于圖文消息,第一條圖文的圖片顯示為大圖,其他圖文的圖片顯示為小圖。

3、第一條圖文的圖片大小建議為640*320,其他圖文的圖片建議為80*80

下面開始實現:

請求消息的基類:

java" id="highlighter_216750">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import com.thoughtworks.xstream.annotations.xstreamalias;
 
import java.io.serializable;
 
/**
 * @author inchlifc
 */
public class basemessage implements serializable {
  @xstreamalias("tousername")
  @xstreamcdata
  private string tousername;
 
  @xstreamalias("fromusername")
  @xstreamcdata
  private string fromusername;
 
  @xstreamalias("createtime")
  private long createtime;
 
  @xstreamalias("msgtype")
  @xstreamcdata
  private string msgtype;
 
  public basemessage() {
    super();
  }
 
  public basemessage(string fromusername, string tousername) {
    super();
    fromusername = fromusername;
    tousername = tousername;
    createtime = system.currenttimemillis();
  }
 
  public string gettousername() {
    return tousername;
  }
 
  public void settousername(string tousername) {
    tousername = tousername;
  }
 
  public string getfromusername() {
    return fromusername;
  }
 
  public void setfromusername(string fromusername) {
    fromusername = fromusername;
  }
 
  public long getcreatetime() {
    return createtime;
  }
 
  public void setcreatetime(long createtime) {
    createtime = createtime;
  }
 
  public string getmsgtype() {
    return msgtype;
  }
 
  public void setmsgtype(string msgtype) {
    msgtype = msgtype;
  }
}

圖文消息類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import com.thoughtworks.xstream.annotations.xstreamalias;
 
import java.util.list;
 
@xstreamalias("xml")
public class articlesmessage extends basemessage {
  @xstreamalias("articlecount")
  private int articlecount;
 
  @xstreamalias("articles")
  private list<articlesitem> articles;
 
  public int getarticlecount() {
    return articlecount;
  }
 
  public void setarticlecount(int articlecount) {
    articlecount = articlecount;
  }
 
  public list<articlesitem> getarticles() {
    return articles;
  }
 
  public void setarticles(list<articlesitem> articles) {
    articles = articles;
  }
}

圖文消息中的articles類:

?
1
2
3
4
5
6
7
import com.thoughtworks.xstream.annotations.xstreamalias;
 
import java.util.list;
@xstreamalias("articles")
public class articles {
  private list<articlesitem> articles;
}

圖文消息中的articlesitem類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import com.thoughtworks.xstream.annotations.xstreamalias;
 
import java.io.serializable;
 
@xstreamalias("item")
public class articlesitem implements serializable {
  @xstreamalias("title")
  @xstreamcdata
  private string title;
 
  @xstreamalias("description")
  @xstreamcdata
  private string description;
 
  @xstreamalias("picurl")
  @xstreamcdata
  private string picurl;
 
  @xstreamalias("url")
  @xstreamcdata
  private string url;
 
  public string gettitle() {
    return title;
  }
 
  public void settitle(string title) {
    title = title;
  }
 
  public string getdescription() {
    return description;
  }
 
  public void setdescription(string description) {
    description = description;
  }
 
  public string getpicurl() {
    return picurl;
  }
 
  public void setpicurl(string picurl) {
    picurl = picurl;
  }
 
  public string geturl() {
    return url;
  }
 
  public void seturl(string url) {
    url = url;
  }
}

service層實現方法:

封裝方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
   * 獲取博客圖文消息
   *
   * @param custermname
   * @param servername
   * @param createtime
   * @return
   */
  private articlesmessage getblogmessage(string custermname, string servername, long createtime) {
    articlesmessage outputmsg = new articlesmessage();
    outputmsg.setfromusername(servername);
    outputmsg.settousername(custermname);
    outputmsg.setcreatetime(createtime);
    outputmsg.setmsgtype(msgtype.news.getvalue());
 
    list<articlesitem> articles = new arraylist<>();
 
    articlesitem item1 = new articlesitem();
    item1.settitle("晚天吹涼風");
    item1.setdescription("點擊進入晚天吹涼風博客");
    item1.setpicurl(wechatconstant.base_server + "resources/images/wechat/a.png");
    item1.seturl("https://my.oschina.net/inchlifc/blog");
    articles.add(item1);
 
    outputmsg.setarticles(articles);
    outputmsg.setarticlecount(articles.size());
 
    return outputmsg;
  }

判斷如果輸入數字1,返回圖文消息推送

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 處理接收消息
    servletinputstream in = request.getinputstream();
    // 將post流轉換為xstream對象
    xstream xs = new xstream();
    xs = serializexmlutil.createxstream();
    xstream.setupdefaultsecurity(xs);
    xs.allowtypes(new class[]{textmessage.class, inputmessage.class, articlesmessage.class});
    xs.processannotations(inputmessage.class);
    xs.processannotations(articlesmessage.class);
    xs.processannotations(imagemessage.class);
    // 將指定節點下的xml節點數據映射為對象
    xs.alias("xml", inputmessage.class);
    // 將流轉換為字符串
    stringbuilder xmlmsg = new stringbuilder();
    byte[] b = new byte[4096];
    for (int n; (n = in.read(b)) != -1; ) {
      xmlmsg.append(new string(b, 0, n, "utf-8"));
    }
    logger.info("收到消息====" + xmlmsg.tostring());
    // 將xml內容轉換為inputmessage對象
    inputmessage inputmsg = (inputmessage) xs.fromxml(xmlmsg.tostring());
 
    // 服務端
    string servername = inputmsg.gettousername();
    // 客戶端
    string custermname = inputmsg.getfromusername();
    // 接收時間
    long createtime = inputmsg.getcreatetime();
    // 返回時間
    long returntime = calendar.getinstance().gettimeinmillis() / 1000;
    //接手文本內容
    string content = inputmsg.getcontent();
    // 取得消息類型
    string msgtype = inputmsg.getmsgtype();
 
if (msgtype.text.getvalue().equals(msgtype)) {
        //輸入1 推送博客信息
        if ("1".equals(content)) {
          logger.info("收到文本1");
          articlesmessage outputmsg = getblogmessage(custermname, servername, returntime);
          logger.info("返回博客圖文消息===" + xs.toxml(outputmsg));
          response.getwriter().write(xs.toxml(outputmsg));
        }
}

運行結果:

微信公眾號開發之回復圖文消息java代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/PreachChen/archive/2018/03/27/8655394.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 狠狠涩| 亚洲精品www久久久久久久软件 | 女人肮脏的交易中文字幕未删减版 | 欧美精品国产一区二区三区 | 男人捅女人漫画 | 国产一区国产二区国产三区 | 2020韩国三级理论在线观看 | 韩剧网3600热播剧 | 91久久精品视频 | 欧美高清在线精品一区二区不卡 | 95在线观看精品视频 | 欧美日韩综合网在线观看 | 国产成人精品视频一区二区不卡 | 亚洲444777KKK在线观看 | 日本色女 | 性色生活片在线观看 | 日本色午夜 | 日本漫画工囗全彩番在线 | 我和黑色丝袜班主任 | 亚洲国产日韩欧美mv | 精品无人乱码一区二区三区 | 我的妹妹最近有点怪免费播放 | 久久精品国产亚洲AV热无遮挡 | 国产一区二区在线免费观看 | 91chinese 永久免费 | 我的绝色岳每雯雯 | 美女扒开屁股让我桶免费 | www红色一片在线观看版 | 美女天天色| a级特黄毛片免费观看 | 色五月天天| 91视频夜色 | 国产自拍啪啪 | 三极黄色 | www.羞羞答答 | 国产午夜精品福利 | 铁牛tv 在线观看 | 免费看片黄色 | 紧身裙女教师miad711在线 | 久久精品国产在热亚洲完整版 | 免费一级毛片在线播放放视频 |