关注“之家技术”,获取更多技术干货
总篇185篇 2022年第60篇
1.项目背景
车支付系统对接很多的外部渠道,如苹果支付、支付宝、微信、银联等,在实际开发与实施的过程中,发现了其中存在的一些问题,比如:
针对以上类似问题,外联网关应运而生,以保证内部系统与外部系统之间进行安全、有效、便捷的通讯。
2.设计方案
2.1
系统交互流程图
3.实践过程
3.1
组管理
算法 | 说明 |
---|---|
MD5-LOWER | 摘要函数-128位-小写 |
MD5-UPPER | 摘要函数-128位-大写 |
SHA-1 | 摘要函数-160位 |
SHA-256 | 摘要函数-256位 |
SHA-384 | 摘要函数-384位 |
SHA-512 | 摘要函数-512位 |
SHA1withRSA | 先用 SHA-1 去摘要,然后使用 RSA 加密 |
SHA256withRSA | 摘要后加密 |
SHA384withRSA | 摘要后加密 |
SHA512withRSA | 摘要后加密 |
MD2withRSA | 摘要后加密 |
MD5withRSA | 摘要后加密 |
算法 | 说明 | 备注 |
---|---|---|
AES | 对称加密。更快,兼容设备,安全级别高 | AES|128|AQIDBAUGBwgJAAECAwQFBg==|AES/CBC/PKCS5Padding |
DES | 对称加密。本地数据,安全级别低 | |
RSA | 非对称加密。有公钥和私钥 | |
SM4 | 国密算法-对称加密SM4 | encrypt_key、decrypt_key配置通过“|”间隔key和iv |
注意:
AES|秘钥长度|IV向量(byte-->Base64)|AES/mode (加密模式)/padding (填充方式)
AES|128|AQIDBAUGBwgJAAECAwQFBg==|AES/CBC/PKCS5Padding
简写 | 过程 |
---|---|
KV_JOIN_BODY_URL | 对请求参数中body和urlParam值,根据配置的连接方式组成字符串 |
V_JOIN_BODY | 请求参数(body)值拼接 |
V_JOIN_BODY_SORT | 请求参数(body)值拼接(需排序) |
KV_JOIN_BODY_HEADER | 对请求参数中body和header值,根据配置的连接方式组成字符串 |
KV_JOIN_BODY_ENCRYPT | 对请求参数中body和encrypt(加密前)值,根据配置的连接方式组成字符串 |
KV_JOIN_BODY_ENCRYPTED | 对请求参数中body和encrypt(加密后)值,根据配置的连接方式组成字符串 |
BODY_JSON | 对请求参数中body数据转换为JSON字符串 |
BODY_ENCRYPT_SORT_JSON | body+encrypt 参数字段排序后 json 化 |
BODY_JSON_RSA | 对请求参数中body数据转换为JSON字符串在经过RSA加密(Base64编码) |
ENCRYPT_RSA | 对请求中的加密字符串进行再签名 |
V_JOIN_HEADER_NO_SORT | header 内容拼接,无排序 |
KV_JOIN_BODY_URL_REJECT_SIGNMETHOD | 对请求参数中body和urlParam值,根据配置的连接方式组成字符串,并且剔除SingMethod的key和value |
简写 | 过程 |
---|---|
V_JOIN_BODY | 请求参数(body)值拼接 |
BODY_SORT_JSON | 返回结果集字段排序后 JSON 化 |
BODY_SORT_JSON_E_WALLET | 返回结果集字段排序后 JSON 化(E钱包专用) |
标识 | 说明 |
---|---|
left | 拼接左侧 |
right | 拼接在右侧 |
both | 两侧都有 |
简写 | 过程 |
---|---|
SPECIFIC_JSON | 在请求体encrypt 中指定要加密的内容,转换成JSON字符串 |
BODY_JSON | 在请求体body 中指定要加密的内容,转换成JSON字符串 |
简写 | 过程 |
---|---|
SPECIFIC_JSON | 指定的字段,解密后为JSON字符串 |
{
"body": {
"requestNo": "$simple_uuid$",
"requestTime": "$millisecond_long$",
"charset": "UTF-8",
"signType": "SHA256withRSA",
"encryptType": "AES"
}
}
$simple_uuid$
预设值 | 类型 | 说明 |
---|---|---|
simple_uuid | String | UUID |
millisecond_long | Long | 毫秒 |
timestamp_long | Long | 时间戳 |
持续完善中 |
3.2
请求项配置
'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value
3.3
模板配置
4.规划
5.总结
作者简介
郑刚
■ C端及中台产研中心-效能平台部-业务平台团队。
■ 2017年加入汽车之家,主要负责中台及金融相关业务服务器端设计与开发工作。
阅读更多:
▼ 关注「之家技术」,获取更多技术干货 ▼