13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

外联网关平台实践之车支付渠道改造

1.项目背景

车支付系统对接很多的外部渠道,如苹果支付、支付宝、微信、银联等,在实际开发与实施的过程中,发现了其中存在的一些问题,比如:

创新互联10年专注成都高端网站建设按需网站策划服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;创新互联服务内容包含成都网站建设,微信小程序开发,软件开发,网络营销推广,网络运营服务及企业形象设计;创新互联拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。

针对以上类似问题,外联网关应运而生,以保证内部系统与外部系统之间进行安全、有效、便捷的通讯。

2.设计方案

2.1系统交互流程图

简单来说,系统的主要功能就是通过对请求的一些配置,选择系统预置的一些插件(系统内置了常用的通讯协议、加签验签、加密解密过程,也可以通过规则引擎脚本实现对请求和响应数据的个性化处理),以实现在不编写代码的情况下,实现对请求的鉴权、参数预处理、参数与响应结果映射等。让业务开发同学更关注业务逻辑。

平台还提供Mock数据的能力,在外部接口未提供可调用环境时,可以根据渠道提供的文档,进行Mock数据的返回。

系统提供两种接入方式:

3.实践过程

在获取到对接方的接口文档之后,通过分析接口的通讯与鉴权方式,在外联网关的配置管理后台配置相应的参数,配置完成之后会有相应的模板编号,客户端通过模板编号+对接接口的请求参数进行接口的请求。

3.1组管理

系统通过组管理,对同一系列的接口的通用配置,实现对一个外部渠道中一个或多个接口的的请求响应处理配置,包括:

系统预置加密及签名:

对称加密(symmetric),例如:AES、DES等

非对称加密(asymmetric),例如:RSA、DSA等

摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等。

算法

说明

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请求项配置

在配置好接口组之后,接下来就可以通过对请求项实现对某一个接口的具体配置,其中包括:

Mock模板示例:

'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':

3.3模板配置

模板是打包一个或者多个请求(目前仅支持一个,后续通过接入规则引擎平台,实现对请求项的编排能力),对外暴露给客户端,通过模板编号进行请求。

 4.规划 

外联平台目前实现了基本的对请求的处理与封装,还是有很多需要集成与完善的功能,比如对请求的监控与性能统计,直观感受外部接口的响应效率,更好的优化自己的系统。

还有可以接入规则引擎系统,可以实现对请求更灵活的配置,让系统更加灵活,适应更多的场景。

 5.总结 

外联网关是针对请求外部接口的一套实现方案,以低代码的形式实现复用,以减少接口对接工作量为目标,最终实现提高工作效率,实现对接口的统一管理与控制,确保交易在各支付渠道之间安全、无缝的传递。

作者简介:郑刚 


分享名称:外联网关平台实践之车支付渠道改造
URL分享:http://cdbrznjsb.com/article/dpphgcg.html

其他资讯

让你的专属顾问为你服务