首頁  >  文章  >  Java  >  Java實作微信公眾平台開發的圖文程式碼實例

Java實作微信公眾平台開發的圖文程式碼實例

黄舟
黄舟原創
2017-08-23 11:18:122606瀏覽

 微信公眾平台的開發,整體說來也是簡單的,就是先大概看下微信公眾平台介面文件

請先大概瀏覽一下API手冊,我們會發現,推送給微信伺服器的資料有兩種:xml的形式,和json的形式.

那麼什麼時候是XML格式,什麼時候是json格式呢?

 

 

#廢話不多說,先上一個流程圖:使用者傳送任何文字,我們回覆一圖文訊息:

(1)這是接收訊息--回覆訊息的模式:

 

2#標誌的xml格式:

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>


3#標誌的xml格式:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title> 
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml>==》这就说明我们想要发送图文消息出去,还要构造图文消息。需要SendMessageVo:
public class SendMessageVo {    
// 开发者微信号    
private String ToUserName;    
// 发送方帐号(一个OpenID)    
private String FromUserName;    
// 消息创建时间 (整型)    
private long CreateTime;    
// 消息类型(text/image/location/link)    
private String MsgType;    
// 图文消息个数,限制为10条以内    
private int ArticleCount;    
// 多条图文消息信息,默认第一个item为大图    
private List<ArticleVo> Articles;}
public class ArticleVo {    
// 图文消息名称    
private String Title;    
// 图文消息描述    
private String Description;    
// 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80,限制图片链接的域名需要与开发者填写的基本资料中的Url一致    
private String PicUrl;    // 点击图文消息跳转链接    
private String Url;}这些属性都是和XMl里面的元素一一对应的。通过将对象转换成xml格式,然后return就可以。
// 调用核心业务类接收消息、处理消息跟推送消息
@RequestMapping(value = "", method = RequestMethod.POST)
public void post(PrintWriter out, HttpServletRequest req, HttpServletResponse response) { 
      jsonObject str= weixinService.processRequest(req); 
      out.print(str);
}


##以上:我們接收到微信伺服器的post請求,經過解析後,獲得openid,然後建構我們自己的xml數據,回傳給微信伺服器,微信伺服器就會把我們的訊息傳送給使用者。

(2)這是單一方向發送的模式:

注意,這裡建構的不再是xml格式,而是json資料:

{
           "touser":"OPENID",
           "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
           "url":"http://weixin.qq.com/download",  
           "miniprogram":{
             "appid":"xiaochengxuappid12345",
             "pagepath":"index?foo=bar"
           },          
           "data":{
                   "first": {
                       "value":"恭喜你购买成功!",
                       "color":"#173177"
                   },
                   "keynote1":{
                       "value":"巧克力",
                       "color":"#173177"
                   },
                   "keynote2": {
                       "value":"39.8元",
                       "color":"#173177"
                   },
                   "keynote3": {
                       "value":"2014年9月22日",
                       "color":"#173177"
                   },
                   "remark":{
                       "value":"欢迎再次购买!",
                       "color":"#173177"
                   }
           }
       }标红的是必填选项。模板的内容可以在公众号中模板的模块中查看。
String putStr = JSONObject.toJSONString(sendTemplateVo);
String url = send_template_url.replace("ACCESS_TOKEN", token);JSONObject jsonObject = WeiXinHttpRequest.httpRequest(url, "POST", putStr);if (!("ok".equals(jsonObject.getString("errmsg")))) {    System.out.println("发送失败!");}
send_template_url=“https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN”可以在微信API上查看,

JSONObject 裡面的內容,可以知道發送失敗或成功:

  {
           "errcode":0,
           "errmsg":"ok",
           "msgid":200228332
    }

SendTemplateVo物件:

public class SendTemplateVo {    private String touser;
    private String template_id;
    private String url;
    private Map<String, TemplateDataVo> data;}public class TemplateDataVo {    private String value;    private String color;}

#以上:其實說白了,就是自己寫一個對象,然後建構成微信伺服器規定的格式(json),再調用微信伺服器提供的URL接口,返回jsonObject成功的話,表示微信伺服器已經幫你的訊息傳送給了使用者。

以上是Java實作微信公眾平台開發的圖文程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn