您的位置:首页 > 其它

web应用接口开发参数签名方式(二)

2015-11-27 08:49 253 查看
之前写过一篇文章《web应用接口开发参数签名方式(一)》(网址:http://www.oicto.com/web-api-sign-key-a/),介绍了一种签名方式。这里再给介绍一种签名方式,是我在工作中与各平台商(有去哪网、远帆票务、天时同城等)合作过程中,通过综合整合,提炼出来的一种方式:

接口通信方式

平台与合作伙伴平台通过CURL(post)方式进行数据的交互。传输数据统一采用utf-8的编码方式进行编码。如果编码不一致,将会导致签名等错误。

数据安全

发送方发送请求时使用事先商定的密钥用3DES对消息内容加密然后用Base64编码。接收方收到后先用Base64解密然后用3DES解密得到消息体明文。在消息头中用对消息进行签名,防止消息内容在传输途中被篡改。

消息序列号:由8位随机字符够成。

时间戳格式:yyyyMMddHHmmss

消息签名规则: MD5(组织机构代码+消息序列号+请求时间戳TimeStamp +accesskey)

数据加密规则:Base64(3DES(参数数据))

消息格式

请求报文中请求数据格式:在请求报文中的请求数据为加密后的数据内容,解开后为完整的Json格式数据。

请求数据格式如下:

1234567891011Base64(3des({"Head":{"SequenceId":"消息序列号","sign":"消息签名","TimeStamp":"时间戳","organization":"组织机构代码"},"Body":{消息体}}))
    响应报文中响应数据格式:响应报文中的响应数据为加密后的的字符串,解开是完整的Json格式数据,Json中的Head节点下含有一个status键为响应状态,状态码与最后一页的码一至。
响应数据格式如下:

1

2

3

4

5

6

7

8

9

10

Base64(3des(

{

"Head":{

"result":"200"

"TimeStamp":"时间戳"

},

"Body":{

消息体见下

}

}))

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: