1. 程式人生 > >微信開發之接收事件推送

微信開發之接收事件推送

​在微信使用者和公眾號產生互動的過程中,使用者的某些操作會使得微信伺服器通過事件推送的形式通知到開發者在開發者中心處設定的伺服器地址,從而開發者可以獲取到該資訊。其中,某些事件推送在發生後,是允許開發者回覆使用者的,某些則不允許,詳細說明請見本頁末尾的微信推送訊息與事件說明。

關注/取消關注事件

使用者在關注與取消關注公眾號時,微信會把這個事件推送到開發者填寫的URL。方便開發者給使用者下發歡迎訊息或者做帳號的解綁。

微信伺服器在五秒內收不到響應會斷掉連線,並且重新發起請求,總共重試三次

關於重試的訊息排重,推薦使用FromUserName + CreateTime 排重。

假如伺服器無法保證在五秒內處理並回復,可以直接回復空串,微信伺服器不會對此作任何處理,並且不會發起重試。

推送XML資料包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,subscribe(訂閱)、unsubscribe(取消訂閱)

掃描帶引數二維碼事件

使用者掃描帶場景值二維碼時,可能推送以下兩種事件:

  1. 如果使用者還未關注公眾號,則使用者可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。
  2. 如果使用者已經關注公眾號,則微信會將帶場景值掃描事件推送給開發者。

1. 使用者未關注時,進行關注後的事件推送

推送XML資料包示例:

<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,subscribe
EventKey 事件KEY值,qrscene_為字首,後面為二維碼的引數值
Ticket 二維碼的ticket,可用來換取二維碼圖片

2. 使用者已關注時的事件推送

推送XML資料包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[SCENE_VALUE]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,SCAN
EventKey 事件KEY值,是一個32位無符號整數,即建立二維碼時的二維碼scene_id
Ticket 二維碼的ticket,可用來換取二維碼圖片

上報地理位置事件

使用者同意上報地理位置後,每次進入公眾號會話時,都會在進入時上報地理位置,或在進入會話後每5秒上報一次地理位置,公眾號可以在公眾平臺網站中修改以上設定。上報地理位置時,微信會將上報地理位置事件推送到開發者填寫的URL。

推送XML資料包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[LOCATION]]></Event>
<Latitude>23.137466</Latitude>
<Longitude>113.352425</Longitude>
<Precision>119.385040</Precision>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,LOCATION
Latitude 地理位置緯度
Longitude 地理位置經度
Precision 地理位置精度

自定義選單事件

使用者點選自定義選單後,微信會把點選事件推送給開發者,請注意,點選選單彈出子選單,不會產生上報。

點選選單拉取訊息時的事件推送

推送XML資料包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,CLICK
EventKey 事件KEY值,與自定義選單介面中KEY值對應

點選選單跳轉連結時的事件推送

推送XML資料包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[www.qq.com]]></EventKey>
</xml>

引數說明:

引數 描述
ToUserName 開發者微訊號
FromUserName 傳送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType 訊息型別,event
Event 事件型別,VIEW
EventKey 事件KEY值,設定的跳轉URL

相關推薦

開發接收事件

​在微信使用者和公眾號產生互動的過程中,使用者的某些操作會使得微信伺服器通過事件推送的形式通知到開發者在開發者中心處設定的伺服器地址,從而開發者可以獲取到該資訊。其中,某些事件推送在發生後,是允許開發者回覆使用者的,某些則不允許,詳細說明請見本頁末尾的微信推送訊息與事件說明

C#公眾號開發接收事件與消息排重的方法

data push con 這樣的 etime ali 推薦 系列 是否 本文實例講述了C#微信公眾號開發之接收事件推送與消息排重的方法。分享給大家供大家參考。具體分析如下: 微信服務器在5秒內收不到響應會斷掉連接,並且重新發起請求,總共重試三次。這樣的話,問題就來了。有

開發事件與被動回覆

直接上程式碼,公眾號後臺基本配置: 設定URL、token、EncodingAESKey,並退出啟用改配置,後上程式碼 class TestController extends Controller { //公眾號後臺的URL的介面 public

PHP7.0公眾平臺開發4: 例項一:接收普通訊息和接收事件

<?php define("TOKEN", "peng"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr'])) { $wechatObj->responseMsg(); //呼叫respon

開發獲取openid及模板訊息

有很多的朋友再問我怎麼獲取code,openid之類的問題,在這裡我就給大家分享一下。 在做微信支付是需要獲取openid的,推送模板訊息也是需要openid包括其他一些功能分享等也都是需要的,openid是什麼呢,這裡給大家解釋一下,是使用者在公眾號中的一個標識,就相當於你資料表中的I

開發消息接收--文本消息(三)

事件 圖片 over ret ken .text tin equals char 一、消息格式 1 <xml> 2 <ToUserName>< ![CDATA[toUser] ]> 3 </ToUserNam

C#公眾平臺(二)—— 接收事件關注回撥

在C#公眾平臺(一)—— 接入配置 寫了公眾平臺的基本配置,這篇文章講的是關注回撥事件。 基礎幫助類 接收事件推送文件 接入指南 /// <summary> /// WeChatEvent 的摘要說明 /// </summary>

php開發帶參數二維碼的使用

cor odin ews json 保存 explode 想要 int gty 最近做微信PC端網頁微信相關功能的開發,從一個新手的角度來說,微信公眾號的文檔還是不好理解的,網上找的帖子大都也都基本上是復制微信公眾平臺上給的文檔,開發微信帶參數二維碼過程中還是遇到不少坑的,

開發網頁授權

個人信息 ati 關註 技術分享 lin base 定義 技術 參數 第一步:成為開發者   在自己的公眾號點擊基本配置,點擊基本配置,填寫服務器配置 Url服務器地址是微信回調地址,必須以 http://或https://開頭,端口號必須為80或443。 Token令

武漢開發小程序開發,應該從哪些方面做起?

如果 不同 你是 實踐 可能 了解 上帝 內容 簡單的 很多武漢微信開發的從業者不知道微信小程序開發應該從哪些方面做起,究其原因,大概是大多數武漢微信開發從業者都是技術出身,而不知道微信小程序開發也是應該從運營角度去考慮的。技術不懂運營,這個是所有開發類行業中的硬傷。所以,

開發消息回復--圖文消息(四)

轉換 turn ews exce 默認 nal ini equal 介紹 一、消息格式 1 <xml> 2 <ToUserName> 3 < ![CDATA[toUser] ]> 4 </T

公總號訊息

                   * 任務完成給製作者推送訊息          &nbs

服務號模板訊息

一.微信服務號新建模板   二.建立模板訊息pojo import java.util.HashMap; import net.sf.json.JSONObject; public class TemplateData { private String touser;

ThinkPHP5.0開發獲取使用者地理位置

新建一個類Location.php 我直接貼程式碼,要用大夥自己複製下就OK! <?php class Locatin{ private $appId; private $appSecret; public function __constru

php 開發 支付 v3 配置

      公司需要微信支付現不到鎮的是非常的麻煩。然後呢那個要怎麼申請我就不寫了。因為不是我負責的所以我就記錄微信支付開發就好了。自己也記錄一下以後要開發好下手 。 1. 到這裡下載sdk        版本本V3 : http

開發網頁授權取客戶資訊(測試號)

搞個賬號後 到開發者工具->公眾平臺測試賬號 第一步 設定一個域名 這個域名要外網能訪問 如果是自己測試的話 不用伺服器 就用內網對映(這裡推薦netapp) 這裡注意不用加什麼http:// 第二步 後臺寫一個介面 返回一個echostr給微

開發網站授權登入-C#

一、前言 網站微信授權登入的準備工作:官方介面文件  ,微信服務號(怎麼註冊我就不提了),準備工作做好了過後,梳理流程,切勿愣頭青,先把流程梳理好,才好帶入業務 注意:如果沒有認證的服務號,可以用測試賬號,測試賬號預設支援100個關注的微訊號。 官方文案:  網

小程式模板訊息

前言  這只是模擬一下,訊息模板功能的實現,前臺只需要蒐集fromid傳給後臺就可以, 一個fromid可以給使用者傳送一個模板訊息,有效期為7天, ​​​​​​​ 一.新增訊息模板

開發客服訊息的使用

之前的訊息傳送與接收都是使用者給微信發一條,之後微信回覆給使用者,也就是API上面所說的被動回覆訊息,那麼微信是否支援主動給關注使用者發訊息嗎,答案是肯定的,但是卻有一些限制。看下微信開發文件上怎麼說就明白了: 當用戶主動發訊息給公眾號的時候(包括髮送資訊、點選自定義選單、

開發傳送訊息介面

傳送訊息,是指使用者公眾號向用戶傳送相應形式的訊息。根據微信開發文件,由以下四種形式:被動回覆,群發介面,客服訊息介面以及模板訊息介面。本文將基於Java語言以及個人微信測試號,說明被動回覆、客服訊息介