微信付款码是如何完成付款的
文章插图
作者:suchengliu , 腾讯 TEG 后台开发工程师
出处:
微信收款机具在慢速网络中快速收款的技术揭秘
小绿盒在2G网络环境下收款速度较慢 , 影响商户体验 , 我们通过网络连接优化、数据传输优化和后台逻辑优化等一系列措施 , 将收款耗时降低近一半 , 达到了业界领先水平 , 改善了商户体验 。
1. 背景说明1.1 产品简介微信收款商业版为了覆盖更多收款场景 , 推出小绿盒收款机具 。
1.2 我们(收单平台)做了什么
- 发挥收单平台专业聚合收单能力 , 为小绿盒提供丰富稳定的收单功能 。
- 提供专业的机具接入方案(支付SDK等) , 确保机具厂商高效高质量完成接入 。
文章插图
2.问题小绿盒在2G网络下收款速度较慢(因为小绿盒收款是窄带场景 , 且4G模块成本是2G的2倍以上 , 所以小绿盒没有用4G) 。
实验室情况:在2G实验室网络环境下 , 小绿盒收款一笔平均耗时需要5秒 , 而市场主流的解决方案只需3秒 。
真实商家反馈:小绿盒收款一笔耗时基本在5秒以上 , 有时达10秒 。 收款速度慢 , 影响商户使用 。
3.目标
- 2G实验室网络环境下 , 收款一笔耗时不能超过3秒 。
- 实际商家收款耗时表现达到业界领先水平 。
文章插图
步骤1:在键盘上输入收款金额 。
步骤2:按下确认键后进入扫码状态 , 在此过程中机具开始预建立网络连接(竞品做法一致) , 涉及DNS查询 , TCP握手和TLS握手 。
步骤3:扫码成功 , 等连接建立完成后再向支付后台发起支付请求 , 等待支付应答(小绿盒耗时5秒 , 竞品耗时3秒) 。
步骤4:收到后台返回的支付应答 , 展示支付结果 。
关键点总结:
- 扫码状态(步骤2)期间的预建网络连接 , 是收款机具业界普遍做法 。
- 支付耗时是指:扫码成功到收到支付应答之间的耗时(步骤3) , 受扫码快慢的影响 , 中间可能包括建立连接的部分耗时 。
文章插图
由图可知 , 整个网络交互过程都是基于HTTPS短连接 。 收款一笔的耗时项包括:DNS解析、TCP握手、TLS握手、业务数据传输和后台处理(微信支付+其它后台逻辑) 。
可能耗时项:由4.1章节的说明可知 , DNS解析、TCP握手和TLS握手三项是否影响收款速度 , 受扫码操作(即步骤2)的快慢以及网络速度影响 , 扫码越慢 , 网络越快 , 建立网络连接(包括DNS查询 , TCP握手和TLS握手)有可能在步骤2中就全部完成了 。
固定耗时项:业务数据传输和后台处理两项为固定耗时项 。
4.2.2 耗时分布情况
文章插图
4.2.3 和市场主流解决方案对比
文章插图
产品方案说明DNS解析TCP握手TLS握手业务数据传输+后台处理总耗时 竞品短连接+二进制协议0(预埋ip)0.6033.6小绿盒短连接+HTTPS0.60.61.24.46.8
注:单位为秒
4.3 可能的方案
文章插图
耗时项可能优化方案优点缺点预期收益 DNS解析长连接消除DNS查询的耗时机具需要增加长连接处理逻辑降低耗时0.6秒(1RTT)机具缓存IP消除DNS查询的耗时增加缓存IP逻辑降低耗时0.6秒(1RTT)TCP握手长连接消除TCP握手的耗时机具需要增加长连接处理逻辑降低耗时0.6秒(1RTT)UDP消除TCP握手的耗时1.可靠传输 , 拥塞控制等 2.需要一套完整安全方案:加密和认证 , 密钥安全等 3.机具程序和后台程序改动量大 4.不是所有的网络环境能使用UDP降低耗时
推荐阅读
- 大一非计算机专业的学生,如何利用寒假自学C语言
- 央行的“硬钱包”来势汹汹,支付不再需要手机?支付宝、微信慌了
- 微信还能这么用?让你大开眼界的微信隐藏操作
- 短短几个月,安装包从200M涨到354M,微信越来越臃肿了?
- 国家发布“铁令”,微信、支付宝始料未及,必须作出整改
- 红米K40渲染图曝光:居中挖孔+后置四摄,这外观你觉得如何?
- iOS版微信又双更新了,AirPods Pro推出牛年限定款
- 飞书文档微信小程序审核被卡?字节跳动副总裁谢欣:希望腾讯停止无理由封杀
- 这次玩儿得有点大!美宣布决定!微信、苹果二选一事件“重现”?
- 拜拜扫描仪!微信打开这个功能,文档表格扫一扫秒变电子档