车支付系统对接很多的外部渠道,如苹果支付、支付宝、微信、银联等,在实际开发与实施的过程中,发现了其中存在的一些问题,比如:
创新互联10年专注成都高端网站建设按需网站策划服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;创新互联服务内容包含成都网站建设,微信小程序开发,软件开发,网络营销推广,网络运营服务及企业形象设计;创新互联拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。
针对以上类似问题,外联网关应运而生,以保证内部系统与外部系统之间进行安全、有效、便捷的通讯。
简单来说,系统的主要功能就是通过对请求的一些配置,选择系统预置的一些插件(系统内置了常用的通讯协议、加签验签、加密解密过程,也可以通过规则引擎脚本实现对请求和响应数据的个性化处理),以实现在不编写代码的情况下,实现对请求的鉴权、参数预处理、参数与响应结果映射等。让业务开发同学更关注业务逻辑。
平台还提供Mock数据的能力,在外部接口未提供可调用环境时,可以根据渠道提供的文档,进行Mock数据的返回。
系统提供两种接入方式:
在获取到对接方的接口文档之后,通过分析接口的通讯与鉴权方式,在外联网关的配置管理后台配置相应的参数,配置完成之后会有相应的模板编号,客户端通过模板编号+对接接口的请求参数进行接口的请求。
系统通过组管理,对同一系列的接口的通用配置,实现对一个外部渠道中一个或多个接口的的请求响应处理配置,包括:
系统预置加密及签名:
对称加密(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 |
在请求体 |
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 |
时间戳 |
持续完善中 |
在配置好接口组之后,接下来就可以通过对请求项实现对某一个接口的具体配置,其中包括:
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':
模板是打包一个或者多个请求(目前仅支持一个,后续通过接入规则引擎平台,实现对请求项的编排能力),对外暴露给客户端,通过模板编号进行请求。
外联平台目前实现了基本的对请求的处理与封装,还是有很多需要集成与完善的功能,比如对请求的监控与性能统计,直观感受外部接口的响应效率,更好的优化自己的系统。
还有可以接入规则引擎系统,可以实现对请求更灵活的配置,让系统更加灵活,适应更多的场景。
外联网关是针对请求外部接口的一套实现方案,以低代码的形式实现复用,以减少接口对接工作量为目标,最终实现提高工作效率,实现对接口的统一管理与控制,确保交易在各支付渠道之间安全、无缝的传递。
作者简介:郑刚
网站题目:外联网关平台实践之车支付渠道改造
文章链接:http://www.shufengxianlan.com/qtweb/news9/254559.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联