爲了識別用戶,每一個用戶針對每一個公衆號會產生一個安全的OpenID,若是須要在多公衆號、移動應用之間作用戶共通,則需前往微信開放平臺,將這些公衆號和應用綁定到一個開放平臺帳號下,綁定後,一個用戶雖然對多個公衆號和應用有多個不一樣的OpenID,但他對全部這些同一開放平臺帳號下的公衆號和應用,只有一個UnionID,能夠在用戶管理-獲取用戶基本信息(UnionID機制)文檔瞭解詳情。api
用戶向公衆號發送消息時,公衆號方收到的消息發送者是一個OpenID,是使用用戶微信號加密後的結果,每一個用戶對每一個公衆號有一個惟一的OpenID。安全
此外,因爲開發者常常有需在多個平臺(移動應用、網站、公衆賬號)之間共通用戶賬號,統一賬號體系的需求,微信開放平臺(open.weixin.qq.com)提供了UnionID機制。開發者可經過OpenID來獲取用戶基本信息,而若是開發者擁有多個應用(移動應用、網站應用和公衆賬號,公衆賬號只有在被綁定到微信開放平臺賬號下後,纔會獲取UnionID),可經過獲取用戶基本信息中的UnionID來區分用戶的惟一性,由於只要是同一個微信開放平臺賬號下的移動應用、網站應用和公衆賬號,用戶的UnionID是惟一的。換句話說,同一用戶,對同一個微信開放平臺賬號下的不一樣應用,UnionID是相同的。服務器
公衆平臺以access_token爲接口調用憑據,來調用接口,全部接口的調用須要先獲取access_token,access_token在2小時內有效,過時須要從新獲取,但1天內獲取次數有限,開發者需自行存儲,詳見獲取接口調用憑據(access_token)文檔。微信
公衆平臺接口調用僅支持80端口。app
一、公衆號消息會話工具
1)羣發消息:公衆號能夠以必定頻次(訂閱號爲天天1次,服務號爲每個月4次),向用戶羣發消息,包括文字消息、圖文消息、圖片、視頻、語音等。 2)被動回覆消息:在用戶給公衆號發消息後,微信服務器會將消息發到開發者預先在開發者中心設置的服務器地址(開發者須要進行消息真實性驗證),公衆號能夠在5秒內作出回覆,能夠回覆一個消息,
也能夠回覆命令告訴微信服務器這條消息暫不回覆。被動回覆消息能夠設置加密(在公衆平臺官網的開發者中心處設置,設置後,按照消息加解密文檔來進行處理。其餘3種消息的調用由於是API調用而不是對請求的返回,因此不須要加解密)。 3)客服消息:在用戶給公衆號發消息後的48小時內,公衆號能夠給用戶發送不限數量的消息,主要用於客服場景。用戶的行爲會觸發事件推送,某些事件推送是支持公衆號據此發送客服消息的,詳見微信推送消息與事件說明文檔。 4)模板消息:在須要對用戶發送服務通知(如刷卡提醒、服務預定成功通知等)時,公衆號能夠用特定內容模板,主動向用戶發送消息。
二、公衆號內網頁網站
1)網頁受權獲取用戶基本信息:經過該接口,能夠獲取用戶的基本信息(獲取用戶的OpenID是無需用戶贊成的,獲取用戶的基本信息則需用戶贊成) 2)微信JS-SDK:是開發者在網頁上經過JavaScript代碼使用微信原生功能的工具包,開發者可使用它在網頁上錄製和播放微信語音、監聽微信分享、上傳手機本地圖片、拍照等許多能力。
公衆號每次調用接口時,可能得到正確或錯誤的返回碼,開發者能夠根據返回碼信息調試接口,排查錯誤。ui
全局返回碼說明以下:加密
返回碼 | 說明 |
---|---|
-1 | 系統繁忙,此時請開發者稍候再試 |
0 | 請求成功 |
40001 | 獲取access_token時AppSecret錯誤,或者access_token無效。請開發者認真比對AppSecret的正確性,或查看是否正在爲恰當的公衆號調用接口 |
40002 | 不合法的憑證類型 |
40003 | 不合法的OpenID,請開發者確認OpenID(該用戶)是否已關注公衆號,或是不是其餘公衆號的OpenID |
40004 | 不合法的媒體文件類型 |
40005 | 不合法的文件類型 |
40006 | 不合法的文件大小 |
40007 | 不合法的媒體文件id |
40008 | 不合法的消息類型 |
40009 | 不合法的圖片文件大小 |
40010 | 不合法的語音文件大小 |
40011 | 不合法的視頻文件大小 |
40012 | 不合法的縮略圖文件大小 |
40013 | 不合法的AppID,請開發者檢查AppID的正確性,避免異常字符,注意大小寫 |
40014 | 不合法的access_token,請開發者認真比對access_token的有效性(如是否過時),或查看是否正在爲恰當的公衆號調用接口 |
40015 | 不合法的菜單類型 |
40016 | 不合法的按鈕個數 |
40017 | 不合法的按鈕個數 |
40018 | 不合法的按鈕名字長度 |
40019 | 不合法的按鈕KEY長度 |
40020 | 不合法的按鈕URL長度 |
40021 | 不合法的菜單版本號 |
40022 | 不合法的子菜單級數 |
40023 | 不合法的子菜單按鈕個數 |
40024 | 不合法的子菜單按鈕類型 |
40025 | 不合法的子菜單按鈕名字長度 |
40026 | 不合法的子菜單按鈕KEY長度 |
40027 | 不合法的子菜單按鈕URL長度 |
40028 | 不合法的自定義菜單使用用戶 |
40029 | 不合法的oauth_code |
40030 | 不合法的refresh_token |
40031 | 不合法的openid列表 |
40032 | 不合法的openid列表長度 |
40033 | 不合法的請求字符,不能包含\uxxxx格式的字符 |
40035 | 不合法的參數 |
40038 | 不合法的請求格式 |
40039 | 不合法的URL長度 |
40050 | 不合法的分組id |
40051 | 分組名字不合法 |
40117 | 分組名字不合法 |
40118 | media_id大小不合法 |
40119 | button類型錯誤 |
40120 | button類型錯誤 |
40121 | 不合法的media_id類型 |
40132 | 微信號不合法 |
40137 | 不支持的圖片格式 |
41001 | 缺乏access_token參數 |
41002 | 缺乏appid參數 |
41003 | 缺乏refresh_token參數 |
41004 | 缺乏secret參數 |
41005 | 缺乏多媒體文件數據 |
41006 | 缺乏media_id參數 |
41007 | 缺乏子菜單數據 |
41008 | 缺乏oauth code |
41009 | 缺乏openid |
42001 | access_token超時,請檢查access_token的有效期,請參考基礎支持-獲取access_token中,對access_token的詳細機制說明 |
42002 | refresh_token超時 |
42003 | oauth_code超時 |
42007 | 用戶修改微信密碼,accesstoken和refreshtoken失效,須要從新受權 |
43001 | 須要GET請求 |
43002 | 須要POST請求 |
43003 | 須要HTTPS請求 |
43004 | 須要接收者關注 |
43005 | 須要好友關係 |
44001 | 多媒體文件爲空 |
44002 | POST的數據包爲空 |
44003 | 圖文消息內容爲空 |
44004 | 文本消息內容爲空 |
45001 | 多媒體文件大小超過限制 |
45002 | 消息內容超過限制 |
45003 | 標題字段超過限制 |
45004 | 描述字段超過限制 |
45005 | 連接字段超過限制 |
45006 | 圖片連接字段超過限制 |
45007 | 語音播放時間超過限制 |
45008 | 圖文消息超過限制 |
45009 | 接口調用超過限制 |
45010 | 建立菜單個數超過限制 |
45015 | 回覆時間超過限制 |
45016 | 系統分組,不容許修改 |
45017 | 分組名字過長 |
45018 | 分組數量超過上限 |
45047 | 客服接口下行條數超過上限 |
46001 | 不存在媒體數據 |
46002 | 不存在的菜單版本 |
46003 | 不存在的菜單數據 |
46004 | 不存在的用戶 |
47001 | 解析JSON/XML內容錯誤 |
48001 | api功能未受權,請確認公衆號已得到該接口,能夠在公衆平臺官網-開發者中心頁中查看接口權限 |
48004 | api接口被封禁,請登陸mp.weixin.qq.com查看詳情 |
50001 | 用戶未受權該api |
50002 | 用戶受限,多是違規後接口被封禁 |
61451 | 參數錯誤(invalid parameter) |
61452 | 無效客服帳號(invalid kf_account) |
61453 | 客服賬號已存在(kf_account exsited) |
61454 | 客服賬號名長度超過限制(僅容許10個英文字符,不包括@及@後的公衆號的微信號)(invalid kf_acount length) |
61455 | 客服賬號名包含非法字符(僅容許英文+數字)(illegal character in kf_account) |
61456 | 客服賬號個數超過限制(10個客服帳號)(kf_account count exceeded) |
61457 | 無效頭像文件類型(invalid file type) |
61450 | 系統錯誤(system error) |
61500 | 日期格式錯誤 |
65301 | 不存在此menuid對應的個性化菜單 |
65302 | 沒有相應的用戶 |
65303 | 沒有默認菜單,不能建立個性化菜單 |
65304 | MatchRule信息爲空 |
65305 | 個性化菜單數量受限 |
65306 | 不支持個性化菜單的賬號 |
65307 | 個性化菜單信息爲空 |
65308 | 包含沒有響應類型的button |
65309 | 個性化菜單開關處於關閉狀態 |
65310 | 填寫了省份或城市信息,國家信息不能爲空 |
65311 | 填寫了城市信息,省份信息不能爲空 |
65312 | 不合法的國家信息 |
65313 | 不合法的省份信息 |
65314 | 不合法的城市信息 |
65316 | 該公衆號的菜單設置了過多的域名外跳(最多跳轉到3個域名的連接) |
65317 | 不合法的URL |
9001001 | POST數據參數不合法 |
9001002 | 遠端服務不可用 |
9001003 | Ticket不合法 |
9001004 | 獲取搖周邊用戶信息失敗 |
9001005 | 獲取商戶信息失敗 |
9001006 | 獲取OpenID失敗 |
9001007 | 上傳文件缺失 |
9001008 | 上傳素材的文件類型不合法 |
9001009 | 上傳素材的文件尺寸不合法 |
9001010 | 上傳失敗 |
9001020 | 賬號不合法 |
9001021 | 已有設備激活率低於50%,不能新增設備 |
9001022 | 設備申請數不合法,必須爲大於0的數字 |
9001023 | 已存在審覈中的設備ID申請 |
9001024 | 一次查詢設備ID數量不能超過50 |
9001025 | 設備ID不合法 |
9001026 | 頁面ID不合法 |
9001027 | 頁面參數不合法 |
9001028 | 一次刪除頁面ID數量不能超過10 |
9001029 | 頁面已應用在設備中,請先解除應用關係再刪除 |
9001030 | 一次查詢頁面ID數量不能超過50 |
9001031 | 時間區間不合法 |
9001032 | 保存設備與頁面的綁定關係參數錯誤 |
9001033 | 門店ID不合法 |
9001034 | 設備備註信息過長 |
9001035 | 設備申請參數不合法 |
9001036 | 查詢起始值begin不合法 |