最近公司在做微信開發(fā), 現(xiàn)對一些常用技術(shù)作一些總結(jié):
推送應(yīng)用場景
微信公眾賬號內(nèi), 當(dāng)用戶某個信息發(fā)生變化時, 需要即時向用戶推送實時消息, 那么這個時候該怎么處理呢?
推送場景
實現(xiàn)方式
登陸企業(yè)版微信公眾賬號, 在模板消息中, 我們可以從微信提供的模板庫選擇我們想要的消息顯示方式:
模板消息
如果里面沒有我們想要的模板, 我們也可以自己生成模板
生成自己的模板
之后, 就可以提交自己的模板了!
設(shè)置調(diào)用的參數(shù)
具體調(diào)用方法
第一步: 獲取上面操作的模板的ID
第二步: 請求URL
- POST請求: https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
- 請求包為一個json:
{
"touser":"OPENID",
"template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
"url":"http://weixin.qq.com/download",
"topcolor":"#FF0000",
"data":{
"User": {
"value":"黃先生",
"color":"#173177"
},
"Date":{
"value":"06月07日 19時24分",
"color":"#173177"
},
"CardNumber":{
"value":"0426",
"color":"#173177"
},
"Type":{
"value":"消費",
"color":"#173177"
},
"Money":{
"value":"人民幣260.00元",
"color":"#173177"
},
"DeadTime":{
"value":"06月07日19時24分",
"color":"#173177"
},
"Left":{
"value":"6504.09",
"color":"#173177"
}
}
}
事件推送
在模版消息發(fā)送任務(wù)完成后氛驮,微信服務(wù)器會將是否送達成功作為通知坏匪,發(fā)送到開發(fā)者中心中填寫的服務(wù)器配置地址中。
- 推送成功時, 推送的xml如下:
<xml>
<ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>
<FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]&g;</FromUserName>
<CreateTime>1395658920</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
<MsgID>200163836</MsgID>
<Status><![CDATA[success]]></Status>
</xml>
- 送達由于用戶拒收(用戶設(shè)置拒絕接收公眾號消息)而失敗時宜鸯,推送的XML如下:
<xml>
<ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>
<FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>
<CreateTime>1395658984</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
<MsgID>200163840</MsgID>
<Status><![CDATA[failed:user block]]></Status>
</xml>
- 送達由于其他原因失敗時腾供,推送的XML如下:
<xml>
<ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>
<FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>
<CreateTime>1395658984</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
<MsgID>200163840</MsgID>
<Status><![CDATA[failed: system failed]]></Status>
</xml>
返回碼說明
//在調(diào)用模板消息接口后仆邓,會返回JSON數(shù)據(jù)包。正常時的返回JSON數(shù)據(jù)包示例:
{
"errcode":0,
"errmsg":"ok",
"msgid":200228332
}