成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微信企業(yè)號(hào)開發(fā)之加密方案與全局返回碼說明

移動(dòng)開發(fā) 移動(dòng)應(yīng)用
本文包含了企業(yè)號(hào)回調(diào)企業(yè)時(shí)加解密的詳細(xì)方案、庫和示例代碼的下載,以及企業(yè)號(hào)api接口返回的錯(cuò)誤碼。

本文包含了企業(yè)號(hào)回調(diào)企業(yè)時(shí)加解密的詳細(xì)方案、庫和示例代碼的下載,以及企業(yè)號(hào)api接口返回的錯(cuò)誤碼。

一、關(guān)于加解密方案的詳細(xì)說明

1、術(shù)語及說明

開啟回調(diào)模式時(shí),有以下術(shù)語需要了解:

1)msg_signature是簽名,用于驗(yàn)證調(diào)用者的合法性

2)EncodingAESKey用于消息體的加密,長度固定為43個(gè)字符,從a-z, A-Z, 0-9共62個(gè)字符中選取,是AESKey的Base64編碼。解碼后即為32字節(jié)長的AESKey

3)AESKey=Base64_Decode(EncodingAESKey + “=”),是AES算法的密鑰,長度為32字節(jié)。AES采用CBC模式,數(shù)據(jù)采用PKCS#7填充;IV初始向量大小為16字節(jié),取AESKey前16字節(jié)。具體詳見:http://tools.ietf.org/html/rfc2315

4)msg為消息體明文,格式為XML

5)msg_encrypt = Base64_Encode( AES_Encrypt[random(16B) + msg_len(4B) + msg + $CorpID] ),是對(duì)明文消息msg加密處理后的Base64編碼

2、消息體簽名

為了驗(yàn)證調(diào)用者的合法性,微信在回調(diào)url中增加了消息簽名,以參數(shù)msg_signature標(biāo)識(shí),企業(yè)需要驗(yàn)證此參數(shù)的正確性后再解密。驗(yàn)證步驟:

1)企業(yè)計(jì)算簽名:dev_msg_signature=sha1(sort(Token、timestamp、nonce、msg_encrypt))。sort的含義是將參數(shù)按照字母字典排序,然后從小到大拼接成一個(gè)字符串

2)比較dev_msg_signature和msg_signature是否相等,相等則表示驗(yàn)證通過。

3、加解密方案說明

  • 對(duì)明文msg加密的過程如下:

msg_encrypt = Base64_Encode( AES_Encrypt[random(16B) + msg_len(4B) + msg + $CorpID] )

AES加密的buf由16個(gè)字節(jié)的隨機(jī)字符串、4個(gè)字節(jié)的msg長度、明文msg和$CorpID組成。其中msg_len為msg的字節(jié)數(shù),網(wǎng)絡(luò) 字節(jié)序;$CorpID為企業(yè)號(hào)的CorpID。經(jīng)AESKey加密后,再進(jìn)行Base64編碼,即獲得密文msg_encrypt。

  • 對(duì)應(yīng)于加密方案,解密方案如下:

1)對(duì)密文BASE64解碼:aes_msg=Base64_Decode(msg_encrypt)

2)使用AESKey做AES解密:rand_msg=AES_Decrypt(aes_msg)

3)驗(yàn)證解密后$CorpID、msg_len

4)去掉rand_msg頭部的16個(gè)隨機(jī)字節(jié),4個(gè)字節(jié)的msg_len,和尾部的$CorpID即為最終的消息體原文msg。

#p#

二、加解密庫下載和返回碼

1、加解密庫的返回碼

返回碼 說明
0 請(qǐng)求成功
-40001 簽名驗(yàn)證錯(cuò)誤
-40002 xml解析失敗
-40003 sha加密生成簽名失敗
-40004 AESKey 非法
-40005 corpid 校驗(yàn)錯(cuò)誤
-40006 AES 加密失敗
-40007 AES 解密失敗
-40008 解密后得到的buffer非法
-40009 base64加密失敗
-40010 base64解密失敗
-40011 生成xml失敗

2、加解密庫下載及示例

注意事項(xiàng):

1)WXBizMsgCrypt.h聲明了WXBizMsgCrypt類,提供用戶接入企業(yè)微信的三個(gè)接口。WXBizMsgCrypt.cpp文件提供了三個(gè)接口的實(shí)現(xiàn)。Sample.cpp文件提供了如何使用這三個(gè)接口的示例。

2)WXBizMsgCrypt類封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url,收到用戶回復(fù)消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.cpp文件。

3)加解密協(xié)議請(qǐng)參考企業(yè)微信官方文檔。

4)加解密過程使用了開源的openssl和tinyxml2庫,請(qǐng)開發(fā)者自行安裝之后使用。

   *openssl的版本號(hào)是openssl-1.0.1h,http://www.openssl.org/

   *tinyxml2的版本號(hào)是tinyxml2-2.1.0,https://github.com/leethomason/tinyxml2

注意事項(xiàng):

1)WXBizMsgCrypt.py文件封裝了WXBizMsgCrypt接口類,提供了用戶接入企業(yè)微信的三個(gè)接口,Sample.py文件提供了如何使用這三個(gè)接口的示例,ierror.py提供了錯(cuò)誤碼。

2)WXBizMsgCrypt封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url、接收消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.py文件。

3)本代碼用到了pycrypto第三方庫,請(qǐng)開發(fā)者自行安裝此庫再使用。

注意事項(xiàng):

1)WXBizMsgCrypt.php文件提供了WXBizMsgCrypt類的實(shí)現(xiàn),是用戶接入企業(yè)微信的接口類。Sample.php提供了 示例以供開發(fā)者參考。errorCode.php, pkcs7Encoder.php, sha1.php, xmlparse.php文件是實(shí)現(xiàn)這個(gè)類的輔助類,開發(fā)者無須關(guān)心其具體實(shí)現(xiàn)。

2)WXBizMsgCrypt類封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url、接收消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.php文件。

注意事項(xiàng):

1)com\qq\weixin\mp\aes目錄下是用戶需要用到的接入企業(yè)微信的接口,其中WXBizMsgCrypt.java文件提供的 WXBizMsgCrypt類封裝了用戶接入企業(yè)微信的三個(gè)接口,其它的類文件用戶用于實(shí)現(xiàn)加解密,用戶無須關(guān)心。sample.java文件提供了接口 的使用示例。

2)WXBizMsgCrypt封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url、接收消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.java文件。

3)請(qǐng)開發(fā)者使用jdk1.7以上的版本。針對(duì)org.apache.commons.codec.binary.Base64,需要導(dǎo)入jar包c(diǎn)ommons-codec-1.9(或comm ons-codec-1.8等其他版本),我們有提供,官方下載地址:

http://commons.apache.org/proper/commons-codec/download_codec.cgi

4)異常java.security.InvalidKeyException:illegal Key Size的解決方案:

在官方網(wǎng)站下載JCE無限制權(quán)限策略文件(JDK7的下載地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

下載后解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安裝了JRE, 將兩個(gè)jar文件放到%JRE_HOME% \lib\security目錄下覆蓋原來的文件,如果安裝了JDK,將兩個(gè)jar文件放到%JDK_HOME%\jre\lib\security目錄 下覆蓋原來文件。

注意事項(xiàng):

1)Cryptography.cs文件封裝了AES加解密過程,用戶無須關(guān)心具體實(shí)現(xiàn)。WXBizMsgCrypt.cs文件提供了用戶接入企業(yè)微信的三個(gè)接口,Sample.cs文件提供了如何使用這三個(gè)接口的示例。

2)WXBizMsgCrypt.cs封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url、接收消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.cs文件。

#p#

三、全局返回碼說明

企業(yè)號(hào)每次調(diào)用接口時(shí),可能獲得正確或錯(cuò)誤的返回碼,企業(yè)可以根據(jù)返回碼信息調(diào)試接口,排查錯(cuò)誤。

全局返回碼說明如下:

返回碼 說明
-1 系統(tǒng)繁忙
0 請(qǐng)求成功
40001 獲取access_token時(shí)Secret錯(cuò)誤,或者access_token無效
40002 不合法的憑證類型
40003 不合法的UserID
40004 不合法的媒體文件類型
40005 不合法的文件類型
40006 不合法的文件大小
40007 不合法的媒體文件id
40008 不合法的消息類型
40013 不合法的corpid
40014 不合法的access_token
40015 不合法的菜單類型
40016 不合法的按鈕個(gè)數(shù)
40017 不合法的按鈕類型
40018 不合法的按鈕名字長度
40019 不合法的按鈕KEY長度
40020 不合法的按鈕URL長度
40021 不合法的菜單版本號(hào)
40022 不合法的子菜單級(jí)數(shù)
40023 不合法的子菜單按鈕個(gè)數(shù)
40024 不合法的子菜單按鈕類型
40025 不合法的子菜單按鈕名字長度
40026 不合法的子菜單按鈕KEY長度
40027 不合法的子菜單按鈕URL長度
40028 不合法的自定義菜單使用員工
40029 不合法的oauth_code
40031 不合法的UserID列表
40032 不合法的UserID列表長度
40033 不合法的請(qǐng)求字符,不能包含\uxxxx格式的字符
40035 不合法的參數(shù)
40038 不合法的請(qǐng)求格式
40039 不合法的URL長度
40040 不合法的插件token
40041 不合法的插件id
40042 不合法的插件會(huì)話
40048 url中包含不合法domain
40054 不合法的子菜單url域名
40055 不合法的按鈕url域名
40056 不合法的agentid
40057 不合法的callbackurl
40058 不合法的紅包參數(shù)
40059 不合法的上報(bào)地理位置標(biāo)志位
40060 設(shè)置上報(bào)地理位置標(biāo)志位時(shí)沒有設(shè)置callbackurl
40061 設(shè)置應(yīng)用頭像失敗
40062 不合法的應(yīng)用模式
40063 紅包參數(shù)為空
40064 管理組名字已存在
40065 不合法的管理組名字長度
40066 不合法的部門列表
40067 標(biāo)題長度不合法
40068 不合法的標(biāo)簽ID
40069 不合法的標(biāo)簽ID列表
40070 列表中所有標(biāo)簽(用戶)ID都不合法
40071 不合法的標(biāo)簽名字,標(biāo)簽名字已經(jīng)存在
40072 不合法的標(biāo)簽名字長度
40073 不合法的openid
40074 news消息不支持指定為高保密消息
41001 缺少access_token參數(shù)
41002 缺少corpid參數(shù)
41003 缺少refresh_token參數(shù)
41004 缺少secret參數(shù)
41005 缺少多媒體文件數(shù)據(jù)
41006 缺少media_id參數(shù)
41007 缺少子菜單數(shù)據(jù)
41008 缺少oauth code
41009 缺少UserID
41010 缺少url
41011 缺少agentid
41012 缺少應(yīng)用頭像mediaid
41013 缺少應(yīng)用名字
41014 缺少應(yīng)用描述
41015 缺少Content
41016 缺少標(biāo)題
41017 缺少標(biāo)簽ID
41018 缺少標(biāo)簽名字
42001 access_token超時(shí)
42002 refresh_token超時(shí)
42003 oauth_code超時(shí)
42004 插件token超時(shí)
43001 需要GET請(qǐng)求
43002 需要POST請(qǐng)求
43003 需要HTTPS
43004 需要接收者關(guān)注
43005 需要好友關(guān)系
43006 需要訂閱
43007 需要授權(quán)
43008 需要支付授權(quán)
43009 需要認(rèn)證
43010 需要處于回調(diào)模式
43011 需要企業(yè)授權(quán)
44001 多媒體文件為空
44002 POST的數(shù)據(jù)包為空
44003 圖文消息內(nèi)容為空
44004 文本消息內(nèi)容為空
45001 多媒體文件大小超過限制
45002 消息內(nèi)容超過限制
45003 標(biāo)題字段超過限制
45004 描述字段超過限制
45005 鏈接字段超過限制
45006 圖片鏈接字段超過限制
45007 語音播放時(shí)間超過限制
45008 圖文消息超過限制
45009 接口調(diào)用超過限制
45010 創(chuàng)建菜單個(gè)數(shù)超過限制
45015 回復(fù)時(shí)間超過限制
45016 系統(tǒng)分組,不允許修改
45017 分組名字過長
45018 分組數(shù)量超過上限
46001 不存在媒體數(shù)據(jù)
46002 不存在的菜單版本
46003 不存在的菜單數(shù)據(jù)
46004 不存在的員工
47001 解析JSON/XML內(nèi)容錯(cuò)誤
48002 Api禁用
50001 redirect_uri未授權(quán)
50002 員工不在權(quán)限范圍
50003 應(yīng)用已停用
50004 員工狀態(tài)不正確(未關(guān)注狀態(tài))
50005 企業(yè)已禁用
60001 部門長度不符合限制
60002 部門層級(jí)深度超過限制
60003 部門不存在
60004 父親部門不存在
60005 不允許刪除有成員的部門
60006 不允許刪除有子部門的部門
60007 不允許刪除根部門
60008 部門名稱已存在
60009 部門名稱含有非法字符
60010 部門存在循環(huán)關(guān)系
60011 管理員權(quán)限不足,(user/department/agent)無權(quán)限
60012 不允許刪除默認(rèn)應(yīng)用
60013 不允許關(guān)閉應(yīng)用
60014 不允許開啟應(yīng)用
60015 不允許修改默認(rèn)應(yīng)用可見范圍
60016 不允許刪除存在成員的標(biāo)簽
60017 不允許設(shè)置企業(yè)
60102 UserID已存在
60103 手機(jī)號(hào)碼不合法
60104 手機(jī)號(hào)碼已存在
60105 郵箱不合法
60106 郵箱已存在
60107 微信號(hào)不合法
60108 微信號(hào)已存在
60109 QQ號(hào)已存在
60110 部門個(gè)數(shù)超出限制
60111 UserID不存在
60112 成員姓名不合法
60113 身份認(rèn)證信息(微信號(hào)/手機(jī)/郵箱)不能同時(shí)為空
60114 性別不合法
責(zé)任編輯:閆佳明 來源: 51CTO
相關(guān)推薦

2014-09-24 11:11:08

微信企業(yè)號(hào)開發(fā)

2014-09-24 09:59:23

微信企業(yè)號(hào)開發(fā)

2014-09-24 11:32:21

微信企業(yè)號(hào)開發(fā)

2015-02-11 15:06:41

微信SDK

2014-09-24 10:29:14

微信企業(yè)號(hào)開發(fā)

2014-09-24 11:45:15

微信企業(yè)號(hào)開發(fā)

2014-09-24 11:04:31

微信企業(yè)號(hào)開發(fā)

2014-09-28 22:30:13

微信企業(yè)號(hào)

2014-09-25 15:27:28

微信企業(yè)號(hào)注冊(cè)流程

2014-09-24 13:11:34

信企業(yè)號(hào)

2014-09-28 22:26:11

微信企業(yè)號(hào)

2014-09-24 11:47:41

微信企業(yè)號(hào)開發(fā)

2014-10-21 15:42:30

微信企業(yè)號(hào)企業(yè)移動(dòng)平臺(tái)

2013-11-13 00:14:16

微信微信公號(hào)微信公眾賬號(hào)

2013-11-13 01:25:33

微信微信公號(hào)微信公眾賬號(hào)

2014-09-25 13:40:52

微信企業(yè)號(hào)圖解

2014-09-28 22:38:21

微信企業(yè)號(hào)

2014-09-25 15:51:07

微信企業(yè)號(hào)認(rèn)證審核

2014-09-25 15:48:51

微信企業(yè)號(hào)申請(qǐng)認(rèn)證

2014-09-28 22:22:25

微信企業(yè)號(hào)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕在线视频免费观看 | 久久日韩精品 | 激情av网站 | 国产欧美在线 | 五月婷婷婷 | www..com18午夜观看 | 久久久国产一区 | 红色av社区 | 中文字幕 国产 | 欧美一二精品 | 久久久久久国产精品免费免费狐狸 | 国产成人亚洲精品 | 欧美极品在线播放 | 久久av网| 久久成人一区二区三区 | 午夜免费影视 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 国产aⅴ精品 | 一区在线观看 | 日韩在线综合 | 在线免费国产 | 久久国产免费看 | 天天拍天天操 | 在线午夜 | 一区二区视频在线观看 | 欧美一级久久精品 | 欧美日韩在线一区 | 国产成人福利在线观看 | 欧美一二三| 国产sm主人调教女m视频 | 日韩中文字幕一区 | 欧美成人一区二区 | 亚洲国产欧美在线 | 欧美精品欧美精品系列 | 日韩欧美在 | 麻豆亚洲 | 一区二区在线 | 国产一区二区在线免费观看 | 在线只有精品 | 超碰人人爱 | 国产最新精品视频 |