├── Markdown编写接口文档示例.md └── README.md /Markdown编写接口文档示例.md: -------------------------------------------------------------------------------- 1 | 2 | # AA公司BC平台接口文档 v3.2.0 3 | 4 | ## 1 规范说明 5 | 6 | ### 1.1 通信协议 7 | 8 | HTTPS协议 9 | 10 | ### 1.2 请求方法 11 | 所有接口只支持POST方法发起请求。 12 | 13 | ### 1.3 字符编码 14 | HTTP通讯及报文BASE64编码均采用UTF-8字符集编码格式。 15 | 16 | ### 1.4 格式说明 17 | 元素出现要求说明: 18 | 19 | 符号 |说明 20 | :----: |:--- 21 | R |报文中该元素必须出现(Required) 22 | O |报文中该元素可选出现(Optional) 23 | C |报文中该元素在一定条件下出现(Conditional) 24 | 25 | ### 1.5 报文规范说明 26 | 27 | 1. 报文规范仅针对交易请求数据进行描述; 28 | 29 | 2. 报文规范中请求报文的内容为Https请求报文中RequestData值的明文内容; 30 | 31 | 3. 报文规范分为请求报文和响应报文。请求报文描述由发起方,响应报文由报文接收方响应。 32 | 33 | ### 1.6 请求报文结构 34 | 接口只接收两个参数 **RequestData** 和 **SignData** ,其中RequestData的值为请求内容,SignData的值为签名内容。 35 | 36 | #### 1.6.1 参数说明 37 | **RequestData(请求内容):** 其明文为每次请求的具体参数,采用 JSON 格式,依次经过 DES 加密(以UTF-8编码、BASE64编码输出结果)和 URLEncode 后,作为 RequestData 的值。 38 | 39 | **SignData(签名内容):** 请求参数(明文)的MD5加密字符串,用于校验RequestData是否合法。 40 | 41 | #### 1.6.2 请求内容(RequestData)明文结构说明 42 | 43 | 采用JSON格式,其中包含Header(公有参数)、Body(私有参数)节点: 44 | 45 | 名称 |描述 |备注 46 | :-- |:-- |:-- 47 | 公共参数 |每个接口都包含的通用参数,以JSON格式存放在Header属性 |详见以下公共参数说明 48 | 私有参数 |每个接口特有的参数,以JSON格式存放在Body属性 |详见每个接口定义 49 | 50 | **公共参数说明:** 51 | 52 | 公共参数(Header)是用于标识产品及接口鉴权的参数,每次请求均需要携带这些参数: 53 | 54 | 参数名称 |类型 |出现要求 |描述 55 | :---- |:--- |:------ |:--- 56 | Token |string |R |用户登录后token,没有登录则为空字符串 57 | Version |string |R |接口版本号 58 | SystemId |int |R |机构号,请求的系统Id 59 | Timestamp |long |R |当前UNIX时间戳 60 | 61 | 62 | #### 1.6.3 校验流程: 63 | 服务端接收到请求后首先对RequestData进行DES解密出JSON字符串,然后对JSON字符串进行MD5加密,加密后的值与请求中的SignData值进行对比,如对比通过,视为合法请求,否则视为非法请求。 64 | 65 | **DES加密/解密函数示例:** 66 | 67 | C#版: 68 | 69 | ``` 70 | /// 71 | /// 进行DES加密。 72 | /// 73 | /// 要加密的字符串。 74 | /// 密钥,且必须为8位。 75 | /// 以Base64格式返回的加密字符串。 76 | public static string DesEncrypt(string decryptString, string secretKey) 77 | { 78 | using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) 79 | { 80 | byte[] inputByteArray = Encoding.UTF8.GetBytes(decryptString); 81 | des.Key = Encoding.ASCII.GetBytes(secretKey); 82 | des.IV = Encoding.ASCII.GetBytes(secretKey); 83 | MemoryStream ms = new MemoryStream(); 84 | using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)) 85 | { 86 | cs.Write(inputByteArray, 0, inputByteArray.Length); 87 | cs.FlushFinalBlock(); 88 | cs.Close(); 89 | } 90 | string str = Convert.ToBase64String(ms.ToArray()); 91 | ms.Close(); 92 | return str; 93 | } 94 | } 95 | 96 | /// 97 | /// 进行DES解密。 98 | /// 99 | /// 要解密的以Base64 100 | /// 密钥,且必须为8位。 101 | /// 已解密的字符串。 102 | public static string DesDecrypt(string encryptedString, string secretKey) 103 | { 104 | byte[] inputByteArray = Convert.FromBase64String(encryptedString); 105 | using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) 106 | { 107 | des.Key = Encoding.ASCII.GetBytes(secretKey); 108 | des.IV = Encoding.ASCII.GetBytes(secretKey); 109 | MemoryStream ms = new MemoryStream(); 110 | using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)) 111 | { 112 | cs.Write(inputByteArray, 0, inputByteArray.Length); 113 | cs.FlushFinalBlock(); 114 | cs.Close(); 115 | } 116 | string str = Encoding.UTF8.GetString(ms.ToArray()); 117 | ms.Close(); 118 | return str; 119 | } 120 | } 121 | ``` 122 | 123 | JAVA版: 124 | 125 | ``` 126 | /* DES解密 */ 127 | public static String decrypt(String message, String key) throws Exception { 128 | 129 | byte[] bytesrc = Base64.decode(message); 130 | //convertHexString(message); 131 | Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); 132 | DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8")); 133 | SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 134 | SecretKey secretKey = keyFactory.generateSecret(desKeySpec); 135 | IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8")); 136 | cipher.init(Cipher.DECRYPT_MODE, secretKey, iv); 137 | byte[] retByte = cipher.doFinal(bytesrc); 138 | return new String(retByte); 139 | } 140 | 141 | 142 | /* DES加密 */ 143 | public static byte[] encrypt(String message, String key) throws Exception { 144 | Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); 145 | DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8")); 146 | SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 147 | SecretKey secretKey = keyFactory.generateSecret(desKeySpec); 148 | IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8")); 149 | cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv); 150 | return cipher.doFinal(message.getBytes("UTF-8")); 151 | } 152 | ``` 153 | 154 | #### 1.6.4 DES密钥 155 | 156 | 测试环境:az2ih1uY 157 | 158 | 生产环境:另外提供。 159 | 160 | #### 1.6.5 请求报文示例 161 | 请求内容明文: 162 | 163 | ``` 164 | { 165 | "Header":{ 166 | "Token":"2366CF921FAD44CCBB07FF9CD02FC90E", 167 | "Version":"3.2.0", 168 | "SystemId":100, 169 | "Timestamp":1502870664 170 | }, 171 | "Body":{ 172 | "Mobile":"18520322032", 173 | "Password":"acb000000" 174 | } 175 | } 176 | 177 | ``` 178 | 179 | 请求报文示例: 180 | 181 | ``` 182 | url?RequestData=UFAYIRF21XzGoaAaEU54qoDBYaFkT2KbRpWxKZuqqltApdIneF7AjlEArPLsg3%2Fo1Pu7FHFmsKZn%0A9KJb%2BGuwx0P%2F3jzv2TgwUpVtgwEdfd0vIRfqEF4jCouldaxxVBjbHvd%2F08pUoYJDNZJLvNrJ%2BsK4%0A79de92T0Cyu4hKNMUPtVI7Tp0IC%2BBw%3D%3D&SignData=0865c7d625f90d3bb5457f5d9ac3725d 183 | ``` 184 | 185 | ### 1.7 响应报文结构 186 | #### 1.7.1 结构说明 187 | 所有接口响应均采用JSON格式,如无特殊说明,每次请求的返回值中,都包含下列字段: 188 | 189 | 参数名称 |类型 |出现要求 |描述 190 | :---- |:--- |:------ |:--- 191 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 192 | Msg |string |R |响应描述 193 | Data |object |R |每个接口特有的参数,详见每个接口定义 194 | 195 | 196 | #### 1.7.2 响应报文示例 197 | 198 | ``` 199 | { 200 | "Code":200, 201 | "Msg":"调用成功", 202 | "Data":{ 203 | "Channel":"A10086", 204 | "Type":7004 205 | } 206 | } 207 | ``` 208 | 209 | 210 | ## 2. 接口定义 211 | 212 | ### 2.1 密码登录 213 | - **接口说明:** 密码登录 214 | - **接口地址:** /account/signin 215 | 216 | #### 2.1.1 请求参数 217 | 218 | 参数名称 |类型 |出现要求 |描述 219 | :---- |:--- |:------ |:--- 220 | Header |  |R |请求报文头 221 |  Token |string |R |用户登录后token,没有登录则为空字符串 222 |  Version |string |R |接口版本号 223 |  SystemId |int |R |机构号,请求的系统Id 224 |  Timestamp |long |R |当前UNIX时间戳 225 | Body |  |R |  226 |  Mobile |string |R |手机号 227 |  Password |string |R |密码 228 | 229 | 230 | 请求示例: 231 | 232 | ``` 233 | { 234 | "Header":{ 235 | "Token":"", 236 | "Version":"3.2.0", 237 | "SystemId":100, 238 | "Timestamp":1502870664 239 | }, 240 | "Body":{ 241 | "Mobile":"18520322032", 242 | "Password":"acb000000" 243 | } 244 | } 245 | 246 | ``` 247 | 248 | 249 | #### 2.1.2 返回结果 250 | 251 | 参数名称 |类型 |出现要求 |描述 252 | :---- |:--- |:------ |:--- 253 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 254 | Msg |string |R |  255 | Data |object |R |  256 |  UserId |string |R |用户Id 257 | 258 | 示例: 259 | 260 | ``` 261 | { 262 | "Code":200, 263 | "Msg":"登录成功", 264 | "Data":{ 265 | "UserId":"7D916C7283434955A235C17DD9B71C64" 266 | } 267 | } 268 | ``` 269 | 270 | 271 | 272 | ### 2.2 获取登录用户信息 273 | - **接口说明:** 获取登录用户信息 274 | - **接口地址:** /account/profile 275 | 276 | #### 2.2.1 请求参数 277 | 278 | 参数名称 |类型 |出现要求 |描述 279 | :---- |:--- |:------ |:--- 280 | Header |  |R |请求报文头 281 |  Token |string |R |用户登录后token,没有登录则为空字符串 282 |  Version |string |R |接口版本号 283 |  SystemId |int |R |机构号,请求的系统Id 284 |  Timestamp |long |R |当前UNIX时间戳 285 | Body |  |R |  286 | 287 | 288 | 289 | 请求示例: 290 | 291 | ``` 292 | 293 | { 294 | "Header":{ 295 | "Token":"CA64A439E7C344B0BA7F5C825E17C7AB", 296 | "Version":"3.2.0", 297 | "SystemId":100, 298 | "Timestamp":1502870664 299 | }, 300 | "Body":null 301 | } 302 | 303 | ``` 304 | 305 | 306 | #### 2.2.2 返回结果 307 | 308 | 参数名称 |类型 |出现要求 |描述 309 | :---- |:--- |:------ |:--- 310 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 311 | Msg |string |R |  312 | Data |object |R |  313 |  UserId |string |R |用户Id 314 |  RealName |string |R |姓名 315 |  ImageUrl |string |R |头像 316 |  Score |int |R |积分 317 |  Nickname |string |R |昵称 318 |  Sex |int |R |性别:0-未知、1-男、2-女 319 |  Title |string |R |头衔 320 | 321 | 322 | 示例: 323 | 324 | ``` 325 | { 326 | "Code":200, 327 | "Msg":"处理成功", 328 | "Data":{ 329 | "UserId":"7D916C7283434955A235C17DD9B71C64", 330 | "RealName":"张三", 331 | "ImageUrl":"https://img.xx.net/afdicew8751.png", 332 | "Score":4732, 333 | "Nickname":"张冠李戴", 334 | "Sex":1, 335 | "Title":"侠客Lv4" 336 | } 337 | } 338 | ``` 339 | 340 | 341 | ## 3 附录A 响应码说明 342 | 343 | 响应码 |说明 344 | :---- |:--- 345 | 200 |处理成功 346 | 301 |解析报文错误 347 | 302 |无效调用凭证 348 | 303 |参数不正确 349 | 500 |系统内部错误 350 | 999 |处理失败 351 | 352 | 353 | ## 4 附录B 币种 354 | 355 | 币种 |说明 356 | :---- |:--- 357 | RMB |人民币 358 | HKD |港币 359 | JPY |日元 360 | TWD |新台币 361 | USD |美元 362 | VND |越南盾 363 | THB |泰铢 364 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AA公司BC平台接口文档 v3.2.0 2 | 3 | 4 | ## 1 规范说明 5 | 6 | ### 1.1 通信协议 7 | 8 | HTTPS协议 9 | 10 | ### 1.2 请求方法 11 | 所有接口只支持POST方法发起请求。 12 | 13 | ### 1.3 字符编码 14 | HTTP通讯及报文BASE64编码均采用UTF-8字符集编码格式。 15 | 16 | ### 1.4 格式说明 17 | 元素出现要求说明: 18 | 19 | 符号 |说明 20 | :----: |:--- 21 | R |报文中该元素必须出现(Required) 22 | O |报文中该元素可选出现(Optional) 23 | C |报文中该元素在一定条件下出现(Conditional) 24 | 25 | ### 1.5 报文规范说明 26 | 27 | 1. 报文规范仅针对交易请求数据进行描述; 28 | 29 | 2. 报文规范中请求报文的内容为Https请求报文中RequestData值的明文内容; 30 | 31 | 3. 报文规范分为请求报文和响应报文。请求报文描述由发起方,响应报文由报文接收方响应。 32 | 33 | ### 1.6 请求报文结构 34 | 接口只接收两个参数 **RequestData** 和 **SignData** ,其中RequestData的值为请求内容,SignData的值为签名内容。 35 | 36 | #### 1.6.1 参数说明 37 | **RequestData(请求内容):** 其明文为每次请求的具体参数,采用 JSON 格式,依次经过 DES 加密(以UTF-8编码、BASE64编码输出结果)和 URLEncode 后,作为 RequestData 的值。 38 | 39 | **SignData(签名内容):** 请求参数(明文)的MD5加密字符串,用于校验RequestData是否合法。 40 | 41 | #### 1.6.2 请求内容(RequestData)明文结构说明 42 | 43 | 采用JSON格式,其中包含Header(公有参数)、Body(私有参数)节点: 44 | 45 | 名称 |描述 |备注 46 | :-- |:-- |:-- 47 | 公共参数 |每个接口都包含的通用参数,以JSON格式存放在Header属性 |详见以下公共参数说明 48 | 私有参数 |每个接口特有的参数,以JSON格式存放在Body属性 |详见每个接口定义 49 | 50 | **公共参数说明:** 51 | 52 | 公共参数(Header)是用于标识产品及接口鉴权的参数,每次请求均需要携带这些参数: 53 | 54 | 参数名称 |类型 |出现要求 |描述 55 | :---- |:--- |:------ |:--- 56 | Token |string |R |用户登录后token,没有登录则为空字符串 57 | Version |string |R |接口版本号 58 | SystemId |int |R |机构号,请求的系统Id 59 | Timestamp |long |R |当前UNIX时间戳 60 | 61 | 62 | #### 1.6.3 校验流程: 63 | 服务端接收到请求后首先对RequestData进行DES解密出JSON字符串,然后对JSON字符串进行MD5加密,加密后的值与请求中的SignData值进行对比,如对比通过,视为合法请求,否则视为非法请求。 64 | 65 | **DES加密/解密函数示例:** 66 | 67 | C#版: 68 | 69 | ``` 70 | /// 71 | /// 进行DES加密。 72 | /// 73 | /// 要加密的字符串。 74 | /// 密钥,且必须为8位。 75 | /// 以Base64格式返回的加密字符串。 76 | public static string DesEncrypt(string decryptString, string secretKey) 77 | { 78 | using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) 79 | { 80 | byte[] inputByteArray = Encoding.UTF8.GetBytes(decryptString); 81 | des.Key = Encoding.ASCII.GetBytes(secretKey); 82 | des.IV = Encoding.ASCII.GetBytes(secretKey); 83 | MemoryStream ms = new MemoryStream(); 84 | using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)) 85 | { 86 | cs.Write(inputByteArray, 0, inputByteArray.Length); 87 | cs.FlushFinalBlock(); 88 | cs.Close(); 89 | } 90 | string str = Convert.ToBase64String(ms.ToArray()); 91 | ms.Close(); 92 | return str; 93 | } 94 | } 95 | 96 | /// 97 | /// 进行DES解密。 98 | /// 99 | /// 要解密的以Base64 100 | /// 密钥,且必须为8位。 101 | /// 已解密的字符串。 102 | public static string DesDecrypt(string encryptedString, string secretKey) 103 | { 104 | byte[] inputByteArray = Convert.FromBase64String(encryptedString); 105 | using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) 106 | { 107 | des.Key = Encoding.ASCII.GetBytes(secretKey); 108 | des.IV = Encoding.ASCII.GetBytes(secretKey); 109 | MemoryStream ms = new MemoryStream(); 110 | using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)) 111 | { 112 | cs.Write(inputByteArray, 0, inputByteArray.Length); 113 | cs.FlushFinalBlock(); 114 | cs.Close(); 115 | } 116 | string str = Encoding.UTF8.GetString(ms.ToArray()); 117 | ms.Close(); 118 | return str; 119 | } 120 | } 121 | ``` 122 | 123 | JAVA版: 124 | 125 | ``` 126 | /* DES解密 */ 127 | public static String decrypt(String message, String key) throws Exception { 128 | 129 | byte[] bytesrc = Base64.decode(message); 130 | //convertHexString(message); 131 | Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); 132 | DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8")); 133 | SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 134 | SecretKey secretKey = keyFactory.generateSecret(desKeySpec); 135 | IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8")); 136 | cipher.init(Cipher.DECRYPT_MODE, secretKey, iv); 137 | byte[] retByte = cipher.doFinal(bytesrc); 138 | return new String(retByte); 139 | } 140 | 141 | 142 | /* DES加密 */ 143 | public static byte[] encrypt(String message, String key) throws Exception { 144 | Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); 145 | DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8")); 146 | SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 147 | SecretKey secretKey = keyFactory.generateSecret(desKeySpec); 148 | IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8")); 149 | cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv); 150 | return cipher.doFinal(message.getBytes("UTF-8")); 151 | } 152 | ``` 153 | 154 | #### 1.6.4 DES密钥 155 | 156 | 测试环境:az2ih1uY 157 | 158 | 生产环境:另外提供。 159 | 160 | #### 1.6.5 请求报文示例 161 | 请求内容明文: 162 | 163 | ``` 164 | { 165 | "Header":{ 166 | "Token":"2366CF921FAD44CCBB07FF9CD02FC90E", 167 | "Version":"3.2.0", 168 | "SystemId":100, 169 | "Timestamp":1502870664 170 | }, 171 | "Body":{ 172 | "Mobile":"18520322032", 173 | "Password":"acb000000" 174 | } 175 | } 176 | 177 | ``` 178 | 179 | 请求报文示例: 180 | 181 | ``` 182 | url?RequestData=UFAYIRF21XzGoaAaEU54qoDBYaFkT2KbRpWxKZuqqltApdIneF7AjlEArPLsg3%2Fo1Pu7FHFmsKZn%0A9KJb%2BGuwx0P%2F3jzv2TgwUpVtgwEdfd0vIRfqEF4jCouldaxxVBjbHvd%2F08pUoYJDNZJLvNrJ%2BsK4%0A79de92T0Cyu4hKNMUPtVI7Tp0IC%2BBw%3D%3D&SignData=0865c7d625f90d3bb5457f5d9ac3725d 183 | ``` 184 | 185 | ### 1.7 响应报文结构 186 | #### 1.7.1 结构说明 187 | 所有接口响应均采用JSON格式,如无特殊说明,每次请求的返回值中,都包含下列字段: 188 | 189 | 参数名称 |类型 |出现要求 |描述 190 | :---- |:--- |:------ |:--- 191 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 192 | Msg |string |R |响应描述 193 | Data |object |R |每个接口特有的参数,详见每个接口定义 194 | 195 | 196 | #### 1.7.2 响应报文示例 197 | 198 | ``` 199 | { 200 | "Code":200, 201 | "Msg":"调用成功", 202 | "Data":{ 203 | "Channel":"A10086", 204 | "Type":7004 205 | } 206 | } 207 | ``` 208 | 209 | 210 | ## 2. 接口定义 211 | 212 | ### 2.1 密码登录 213 | - **接口说明:** 密码登录 214 | - **接口地址:** /account/signin 215 | 216 | #### 2.1.1 请求参数 217 | 218 | 参数名称 |类型 |出现要求 |描述 219 | :---- |:--- |:------ |:--- 220 | Header |  |R |请求报文头 221 |  Token |string |R |用户登录后token,没有登录则为空字符串 222 |  Version |string |R |接口版本号 223 |  SystemId |int |R |机构号,请求的系统Id 224 |  Timestamp |long |R |当前UNIX时间戳 225 | Body |  |R |  226 |  Mobile |string |R |手机号 227 |  Password |string |R |密码 228 | 229 | 230 | 请求示例: 231 | 232 | ``` 233 | { 234 | "Header":{ 235 | "Token":"", 236 | "Version":"3.2.0", 237 | "SystemId":100, 238 | "Timestamp":1502870664 239 | }, 240 | "Body":{ 241 | "Mobile":"18520322032", 242 | "Password":"acb000000" 243 | } 244 | } 245 | 246 | ``` 247 | 248 | 249 | #### 2.1.2 返回结果 250 | 251 | 参数名称 |类型 |出现要求 |描述 252 | :---- |:--- |:------ |:--- 253 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 254 | Msg |string |R |  255 | Data |object |R |  256 |  UserId |string |R |用户Id 257 | 258 | 示例: 259 | 260 | ``` 261 | { 262 | "Code":200, 263 | "Msg":"登录成功", 264 | "Data":{ 265 | "UserId":"7D916C7283434955A235C17DD9B71C64" 266 | } 267 | } 268 | ``` 269 | 270 | 271 | 272 | ### 2.2 获取登录用户信息 273 | - **接口说明:** 获取登录用户信息 274 | - **接口地址:** /account/profile 275 | 276 | #### 2.1.1 请求参数 277 | 278 | 参数名称 |类型 |出现要求 |描述 279 | :---- |:--- |:------ |:--- 280 | Header |  |R |请求报文头 281 |  Token |string |R |用户登录后token,没有登录则为空字符串 282 |  Version |string |R |接口版本号 283 |  SystemId |int |R |机构号,请求的系统Id 284 |  Timestamp |long |R |当前UNIX时间戳 285 | Body |  |R |  286 | 287 | 288 | 289 | 请求示例: 290 | 291 | ``` 292 | 293 | { 294 | "Header":{ 295 | "Token":"CA64A439E7C344B0BA7F5C825E17C7AB", 296 | "Version":"3.2.0", 297 | "SystemId":100, 298 | "Timestamp":1502870664 299 | }, 300 | "Body":null 301 | } 302 | 303 | ``` 304 | 305 | 306 | #### 2.1.2 返回结果 307 | 308 | 参数名称 |类型 |出现要求 |描述 309 | :---- |:--- |:------ |:--- 310 | Code |int |R |响应码,代码定义请见“附录A 响应吗说明” 311 | Msg |string |R |  312 | Data |object |R |  313 |  UserId |string |R |用户Id 314 |  RealName |string |R |姓名 315 |  ImageUrl |string |R |头像 316 |  Score |int |R |积分 317 |  Nickname |string |R |昵称 318 |  Sex |int |R |性别:0-未知、1-男、2-女 319 |  Title |string |R |头衔 320 | 321 | 322 | 示例: 323 | 324 | ``` 325 | { 326 | "Code":200, 327 | "Msg":"处理成功", 328 | "Data":{ 329 | "UserId":"7D916C7283434955A235C17DD9B71C64", 330 | "RealName":"张三", 331 | "ImageUrl":"https://img.xx.net/afdicew8751.png", 332 | "Score":4732, 333 | "Nickname":"张冠李戴", 334 | "Sex":1, 335 | "Title":"侠客Lv4" 336 | } 337 | } 338 | ``` 339 | 340 | 341 | ## 3 附录A 响应码说明 342 | 343 | 响应码 |说明 344 | :---- |:--- 345 | 200 |处理成功 346 | 301 |解析报文错误 347 | 302 |无效调用凭证 348 | 303 |参数不正确 349 | 500 |系统内部错误 350 | 999 |处理失败 351 | 352 | 353 | ## 4 附录B 币种 354 | 355 | 币种 |说明 356 | :---- |:--- 357 | RMB |人民币 358 | HKD |港币 359 | JPY |日元 360 | TWD |新台币 361 | USD |美元 362 | VND |越南盾 363 | THB |泰铢 364 | --------------------------------------------------------------------------------