F5 微信银行解决方案
微信开放了公众平台消息接口后,很多企业开始利用消息接口开展相关业务方式的探索,招商银行首次推出微信银行业务,微信银行覆盖了更广阔的服务范围,不仅可以实现借记卡账户查询、转账汇款、信用卡账单查询、信用卡还款、积分查询等卡类业务,更可以实现招行网点查询,贷款申请、办卡申请、手机充值、生活缴费、预约办理专业版和跨行资金归集等多种便捷服务。此外,微信银行的在线智能客服更可实现在线实时解答客户咨询,为客户提供了非常方便的咨询通道,“微信银行”是手机银行的延伸,也是继网上银行、电话银行、手机银行之后又一种方便银行用户的金融业务服务方式。
数据显示,数据流量占主导的时代已经开始,类微信的产品正在分流短信。招商银行相关人士表示:鉴于微信具备信息表现形式丰富、拓展性好、延展性好等特点,同时可支持视频通话等创新功能,微信将会为银行客服带来更广阔的发展空间,并降低银行业的运营成本。
在微信银行业务中,客户端的的来源为微信公众平台的服务器,在银行侧的数据模型为单客户端短连接业务,从高安全性和高处理性角度出发,在银行侧部署多台服务器处理微信公众平台服务器的流量是必须的配置 ,目前架构中存在的问题有:
· 客户端来源单一IP地址
· 微信公众平台应用不支持Cookie会话保持
通过传统配置无法实现银行侧服务器的性能负载均衡,在这样的情况下,会造成:
· 单台服务器故障会造成所有的用户会话失败
· 设备升级成本非常高,已有设备无法添加为集群
我们可以通过F5 BIGIP LTM产品的iRule特性,针对微信报文进行解析,实现根据用户ID号进行负载均衡,从而搭建高性能微信银行平台。
实施前数据流程
实施后数据流程
一、 配置步骤
1. 微信数据格式
当普通微信用户向公众账号发消息时,微信服务器将POST该消息到填写的URL上,并将消息发送到银行侧接口服务器,结构如下:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml> |
参数 |
描述 |
ToUserName |
开发者微信号 |
FromUserName |
发送方帐号(一个OpenID) |
CreateTime |
消息创建时间 (整型) |
MsgType |
text |
Content |
文本消息内容 |
MsgId |
消息id,64位整型 |
其中FromUserName可作为负载均衡依据,所有的微信报文消息都包含ToUserName以及FromUserName两个字段,用以鉴别微信开发者以及微信公众号的使用者。
2. F5侧配置
在F5侧,微信接受端VS采用universal 会话保持方式,如下
并且创建下面的iRule
when HTTP_REQUEST { if {([HTTP::method] eq "POST") && [HTTP::header exists "Expect"] } { HTTP::header remove "Expect" HTTP::collect 200 TCP::respond "HTTP/1.1 100 Continue\r\n\r\n" LB::detach } } when HTTP_REQUEST_DATA { set open_id [findstr [HTTP::payload] "<FromUserName><!\[CDATA\[" 23 "]]></FromUserName>" ] log local0. "open_id is $open_id" persist uie $open_id 720 HTTP::release } |
上述iRule中,下面的iRule 语句将提取用户的id号
set open_id [findstr [HTTP::payload] "<FromUserName><!\[CDATA\[" 23 "]]></FromUserName>" ] |
下面的iRule 语句根据提取用户的id号,实现会话保持
persist uie $open_id 720 |
此后将上述iRule配置到微信接口VS
由此完成配置。
由于存在IHS 集合腾讯平台的时候存在将多个request放在一个连接的情况,需要在VS中添加OneConnect Profile,强制LTM对每一个Request都单独进行处理。
通过F5独有的iRule技术,使得微信银行可以使用较廉价的开放平台构建高性能高可用性的系统,银行可以依据业务量的对基础架构进行灵活升级。极大的提升系统的可维护性,有效降低微信银行的启动成本和运维成本,推动微信银行这一金融服务创新手段的尽快普及。
转载于:https://blog.51cto.com/f5555/1550947
F5 微信银行解决方案相关推荐
- 菊风创新远程银行解决方案,助力打造全能型智慧银行!
随着金融改革与开放程度的深入,涌现出日益丰富的金融业态,以互联网金融为代表的新业态对传统商业银行业形成较大冲击,传统竞争格局被打破.随着互联网技术的创新与进步,银行业寻求管理模式与运营服务模式的图片. ...
- 拍乐云远程视频银行解决方案,为金融数字化注入“新活力”
中国银行业协会在今年发布的<中国银行业客服中心与远程银行发展报告(2020)>中指出,随着数字化融入经济生活的方方面面,我国银行业正在快速迭代升级.用户对银行的数字化服务也提出了更高的要求 ...
- 微信银行突破单一模式功能日渐强大
银行看到了微信平台数亿的客户资源,微信银行应运而生.自招行2013年率先推出微信银行后,各银行纷纷效仿,将自身的微信平台广泛推广.人们足不出户,仅花几秒钟动动手指就能完成部分银行业务操作,无需再奔波于 ...
- Android ReactNative 极光、友盟、高德地图、支付宝、微信支付解决方案
Android ReactNative 极光.友盟.高德地图.支付宝.微信支付解决方案 说明一下,目前我们整个项目用的都是用react native写下来的.事实上我负责Android端这边的配置,还 ...
- 点面科技金融银行解决方案
传统金融支付方式.企业内部人员管理和授权管理等存在着各类安全隐患,且速度慢.效率低.流程繁琐.点面科技特推出金融银行解决方案,使身份认证变得更准确.高效和简单,支付也更为安全和简单,帮助金融企业提高账 ...
- Android 11 无法调起微信支付解决方案
Android 11 加强了隐私保护策略,软件包可见性 ,将会导致第三方应用通过微信OpenSDK的接口无法正常拉起微信 当 targetSdkVersion=30 时会出现这个问题, 解决方案 第一 ...
- 这是一份优秀的餐饮行业微信营销解决方案
国内最大的微信第三方开发商小猪CMS,旗下产品多用户微营销系统,内置300多项功能与应用,实现全行业覆盖.尤其是针对餐饮行业而开发的微餐饮应用,更是为餐饮实体商户提供了完美.专业的餐饮行业微营销解决方 ...
- web、app跳转微信支付解决方案
前言:之前一直为web跳转微信支付二搜索百度,居然没有得到想要的结果,所以现在给出以下解决方案. 其实微信的H5支付就是可以解决这个问题的 1,公众号首先开通H5支付: 2,通过微信"统一支 ...
- Linux下微信终极解决方案(不是网页版/electronic wechat)
文章目录 为什么有这篇文章? 所需工具 本人环境 步骤 0x01 解压微信安装包 0x02 安装 Wine 制作启动器 目前发现的Bugs 为什么有这篇文章? 在Linux系统下,微信的使用体验说实话 ...
- 微信考勤 | 微信智慧解决方案
通过微信智慧考勤解决方案,能有效解决企业分散在全国的分支机构员工.直销员.导购.业务员.门店销售的考勤管理难题, 提升HR效率.降低人员成本.管理成本与时间成本,让管理更加人性化.提高员工体验,不再支 ...
最新文章
- redis之zskiplist
- [Vulhub](WooYun-2016-199433)phpmyadmin反序列化漏洞
- Android 多状态加载布局的开发 Tips
- 草稿selenium显示等待
- flutter PositionedTransition 实现缩放动画
- 计算机云客户端技术指标,云服务器技术指标
- HD-ACM算法专攻系列(9)——大菲波数
- MySQL安装之后如何启动
- 显卡识别为Microsoft基本显示适配器,安装9700k核芯显卡HD630驱动或安装其他核显驱动
- CodeSmith(C#)简单示例及相关小知识
- JAVA版开源MQTT Broker, 支持集群和规则引擎
- matlab求变上限积分的导数,变上限积分函数的求导
- Freebase Data Dump结构初探
- 小文一篇,说说:where、:has和:is的特殊性吧
- 打造您的赚钱机器2.0视频-精华笔记-独家分享
- python股票预测_利用Keras长短期记忆(LSTM)模型预测股票价格
- 眼球追踪技术在用户体验中的应用
- Quartz定时任务项目中的应用
- speedoffice(Excel)如何让图片随单元格大小改变?
- 30天,O2O速成攻略【7.18广州站】
热门文章
- python取值范围_python 数据库取值范围
- Git-储藏(Stashing)
- html5画布获取位置,html5画布绘制位置不正确(html5 canvas drawing position not correct)
- 概率论复习笔记3.0--假设检验
- phpcms v9摆脱手机门户,轻松搭建wap手机站
- 风螺旋公切线算法详解
- 蛤蟆 Oracle,19.蛤蟆的Oracle杂记——数据字典dba_views
- XSS(Stored)
- Oracle Golden Gate 系列二 -- GG 的系统需求
- 电脑管家修复DNS服务器,DNS是什么?dns劫持是怎么回事?怎么处理?