一文说清楚支付架构

作者:陈斌

支付的技术架构是为了保障能够顺利处理支付请求而设计的结构体系。从系统的角度看,它包括了计算机系统的软件、硬件、网络和数据等。从参与的主体角度来看,它涉及交易的付款方、收款方、支付机构、银行、卡组织和金融监管机构等。要想成功地设计和构建支付系统的架构,需要深入地理解支付的业务生态体系,弄清楚并且照顾好支付业务生态体系中各利益相关方的诉求。

本章将讨论支付业务生态体系中利益相关方的作用和特点,分析各利益相关方的核心诉求,总结出为满足利益相关方的需求而提供的各种功能,并且进一步把相关联的功能聚合成子系统。在此基础之上,通过引入参考架构和分层架构设计的方法,讨论支付系统的架构,并描述支付机构的总体技术架构。

5.1 支付业务生态的利益相关方

5.1.1收款人与付款人

(1)收款人

一般来说,在支付过程中,发起支付活动的,首先是收款人(卖方)。卖方为了能卖出自己的产品或者服务,需要展示商品并游說买家付款去购买。而且,当双方的交易意向达成之后,收款人需要提供给付款人发货清单和付款请求。

对收款人而言,核心的利益诉求就是能在合约规定的时间,收到买方支付的约定数额的资金;需要履行的义务是按时、按质、按量发货,并且提供发票和发货信息。

(2)付款人

一般是交易中的买方,付款人(买方)的核心诉求是能够按照合约,在规定的时间收到卖方发出的约定数量和质量的货物,或者接受到约定数量和质量的服务。需要履行的义务是按时、按量完成与货物或服务相对应的资金支付。

对付款人而言,购买商品或者服务是偶尔发生的事情,需要有办法在短期內查询物流和支付情况。对收款人来说,卖东西是他的生意,需要不断地查询是否有新订单?已经收到的订单是否已完成支付?完成支付的订单是否已经发货等情况。

5.1.2银行

除了与交易直接相关的买方或付款人与卖方或收款人之外,银行也是支付活动的积极参与方。因为在通常的情形下,付款方和收款方的资金都存放在银行里。支付将会涉及从买方银行账户把资金转移到卖方银行账户的过程。

银行的核心诉求是能够按照客户的支付指令,按时按量完成资金的转移,从而赚取银行的服务费用。银行要在约定的时间与支付机构进行对账,确保双方所处理的支付请求可以匹配。银行还要帮助支付机构完成结算后的出款活动。图5-1 展示了银行在支付生态体系中的作用。

有些银行对支付的参与度更深,因为他们为了服务好在本银行开户的商户,需要帮助商户完成收单,或者委托第三方支付公司帮忙服务好商户。也就是说,银行可以直接地或者间接地参与支付活动。在某些复杂的情况下,银行还会给买方提供买方信贷,或者为卖方提供应收账款的融资便利,例如应收账款的保理业务。

58564d2a77f89f5d6d0344a191e6711d.jpeg

5.1.3卡组织

如果支付涉及银行卡,那么卡组织将是银行之外的另一个参与者。通常,从卡组织的角度看,付款人就是持卡人,卡组织透过发卡行为持卡人提供底层的基础网络和授权认证服务。收款人也就是商户,有自己签约的收单行,收单行透过卡组织与开户行间接完成支付信息的交换和资金的结算。卡组织的核心诉求是高效且安全地提供银行卡服务,从而赚取银行卡支付处理费。

a3c1d58c8a6fd71ef771bd71cadce524.jpeg

5.1.4支付机构

支付机构可以在买卖双方之间充当中间人的角色,或者接受卖方的委托,代理收取买方支付的与货物或者服务相对应的资金。支付机构的核心诉求是准确、准时和安全地帮助买卖双方完成交易资金的交割。在交易的过程中,支付机构帮助卖方向买方银行发出支付扣款的指令。支付机构有责任管理好交易过程中存在的信用卡风险。配合金融监管机构调查潜在的洗钱和恐怖融资活动。

cebbe1c453912c0d76858dce773e4ce2.jpeg

5.1.5监管机构

根据支付请求的具体情况,支付交易还有可能涉及政府或者行业监管机构,例如各地的人民银行、国际、国家和地区的反洗钱中心。金融监管机构的核心诉求是确保支付活动符合国家的法律和规范,例如外汇管制法规和信贷管理规范,要求支付机构定期上报所处理的支付请求,以核查可疑的交易。

下表概括总结了支付相关主体的作用和诉求:


作用

诉求

付款人

付款

能按时按质按量付款

收款人

收款

能按时按质按量收款

发卡银行

为付款人提供银行账户

赚取银行服务费用

收单银行

为收款人提供银行账户

赚取银行服务费用

卡组织

为卡支付提供基础网络和服务

收取基础网络和服务费用

支付机构

为付款人和收款人提供中间服务

收取支付处理费用

监管机构

调查反洗钱和打击恐怖融资活动

确保支付活动合规合法

表5-1 支付相关主体的作用和诉求

总之,支付机构不仅需要拥有强大的技术架构和健全的业务管控体系,以保障可以高效、安全和顺畅地处理支付请求,让付款方和收款方满意,而且还需要能考虑和照顾到其他利益相关方的各种需求。全面透彻地理解这些诉求和作用,并且归纳和提炼出相关的功能是成功构建支付的技术架构和业务管控体系的关键。

546effff678de65163f21d7a7329859d.jpeg

5.2支付机构的功能

本节将以利益相关方为主轴,从业务功能的角度,对支付机构应该具备的业务功能和相应的技术保障体系进行讨论。一个典型的支付机构要想提供能满足各个利益相关方的核心诉求,就必须要系统地分析并掌握各个利益相关方在支付过程中的功能需求。

5.2.1 为付款人提供的功能

为付款人提供的功能,最基础的是银行提供的借记卡,以及六大卡组织通过银行发行的各种信用卡,在此基础上还包括预付费卡,白条和先买后付(BNPL)卡。不少支付机构还提供积分和商品券(Coupon)等功能。

除了这些支付卡以外,支付机构还研发了各类电子钱包来方便消费者完成支付。

在中国主要包括微信钱包、京东钱包、百度钱包和支付宝钱包,另外还有银联和工行、农行、中行、建行、交行和招行等各种商业银行也在提供各种钱包,甚至还有很多最新式的数字货币钱包。

在日本,主要包括PayPay,LINEPay,DoCoMoPay,AuPAY、QuoPay和RakutenPay等近20多种各式各样的钱包。

在美国主要包括PayPal,Square,Vemo, ApplePay,GooglePay和AmazonPay钱包,以及诸如Wells Fargo,Bank of America, Citibank, JP Morgan Bank等各商业银行的钱包。

这些钱包在形式上大同小异,主要功能基本上都包括:在线支付、扫码支付和余额支付,在中国,现在还有不少的钱包开通了数字货币支付的功能。

170115fb456862a6fa3b8a3d5364512e.jpeg

5.2.2 为收款人提供的功能

支付机构需要为收款人,即卖方或者商户,提供收单的功能以及收单完成后的资金处理功能。这些功能听起来简单,实际上做起来会有很多挑战。因为它的易用性和安全性会影响到海量消费者,系统的可用性和可扩展性会影响到商户日常营业的开展,具体描述这些必备的功能如下:

(1)收单功能

处于业务前端的支付收单功能。这些功能通常是以诸如POS机、扫码和生物特征识别设备这样的硬件方式出现,也可能是以软件系统集成的方式出现。例如,传统收银综合机和云端POS机等。这些硬件或者软件都是为了帮助商户能顺利达成交易,接收和处理消费者的支付请求。

(2)查询统计

处于业务后端的查询统计功能。这些功能通常是商户常用的查询功能,例如支付请求详细查询、支付请求汇总查询、每日交易对账、周期性的结算、支付数据分析报告等,这些都是商户在经营过程中必不可少的功能。从本质上讲,这些功能属于商户的后台业务运营系统MBOSS(Merchant Backend Operation System)。

(3)接入功能

除了收单和查询功能之外,支付机构也会帮助商户快速接入支付请求处理系统。这部分的接入功能需要易用性好而且安全度高,尽量不要让商户花费太多的时间和精力接入。因为该部分接口是用来接收来自于商户端的支付请求,同时向商户回传支付成功或者失败的状态信息,所以这部分功能做得好坏会直接影响商户对支付机构的信心。

(4)数据分析

根据收单请求,支付机构帮助商户完成各维度的数据分析。例如,支付请求的时间序列分析,即支付请求在每分,每小时,每天,每周,每月,每年等不同颗粒度的数据聚合。这些数据可以帮助商户深入了解自己的业务发展趋势和走向。也可以按照支付资金的来源情况分析用户的支付行为,例如,哪些钱包受消费者欢迎?哪些积分比较受欢迎?这些结论对商户在未来获客引流都有一定的启发。

5.2.3 支付机构的功能

除了要满足支付业务生态体系中利益相关方的诉求之外,支付机构还要拥有一整套用来处理支付请求及其相关业务的系统功能。这部分是支付系统的核心。按照业务发展的顺序描述这些功能如下:

(1)支付前的功能

这部分的功能也被称为KYC(Know Your Customer)。所谓KYC,是指在支付请求发生之前,支付机构了解和掌握商户真实身份的过程。KYC的主要目的是保证业务的合规性,对与支付业务而言就是要保证所提供的支付业务不会被用来洗钱和资助恐怖主义活动等违法的活动。

通常KYC所涉及的真实性检查可以通过线下物理访问商户,或者根据客户提交的申请材料,通过政府权威机构数据库来查询,最终确保商户的真实性与合规性,具体地说,这些功能包括了合约、申请、审核、批准和开通五个部分。

(2)支付中的功能

这部分功能主要发生在商户的支付业务开通之后,商户首先要与支付机构对接系统,以便把支付请求传送给支付请求处理系统进行处理。其次,这些功能还包括了支付机构接收支付请求、解析支付请求、风险管理、形成指令、发送指令、结果通知、分账算费和客户服务等活动。

这些活动是整个支付活动的核心,既包含了商户与支付相互作用的体系,也包含支付机构与银行与其他金融机构相互作用的体系。支付机构的系统把商户的支付请求,转换为银行或者其他金融机构可以理解和操作的支付指令,完成资金的交割工作。

(3)支付后的功能

在支付请求处理完成后,还有后续的环节需要继续完成。支付机构要准确地处理好商户委托收取的交易款项,以便能在规定的时间把累积的资金转移给商户。这部分的功能主要包括账务、账户、对账、结算、出款、统计和报告。支付中所完成的资金交割是在银行或者其他金融机构之间完成的,真正把消费者支付的资金转移给商户是在支付后才完成的。

所以,支付后的活动主要包括检查和确定支付中发生的支付处理活动及其相应的状态,计算出支付机构代收的备付金的数额,然后按照约定的时间和方式把备付金转移给商户。

5.2.4 与银行相关的功能

银行是当前消费者开立账户放置和存储资金的金融机构,银行的账户具有金融属性。支付机构属于非金融机构,并不能直接操作银行或者其他金融机构的账户。为了能有效地处理支付请求,支付机构必须要接入银行、卡组织和其他的金融机构。

这种接入是支付机构主动发起的API对接工作。有些支付机构把这部分功能抽象成可以反复使用的机构接入服务。如果能把机构接入部分做得灵活,不仅可以提高接入的效率,而且还能减少接入占用的资源。

这部分的功能主要包括金融机构支付接口的参数解析和转译等。支付机构与银行之间通常采用专线连接并使用硬件的加密机。除了接入之外,支付机构还会构建与银行的对账子系统,以及为了出款自动化而完成的企业网银对接。

5.2.5 为监管机构提供的功能

支付机构有义务定期或不定期地向监管机构提供支付请求活动的信息,甚至接入监管机构的系统,以完成反洗钱和打击恐怖融资的调查配合工作。这部分的功能主要是反洗钱系统,一般会有专业的反洗钱机构提供,然后集成到支付机构的技术体系中。

中国的支付机构还要依法完成与中国人民银行备付金管理系统相关联的备付金报告和集中功能。除了央行的备付金报备之外,中国的支付机构还面临着来自于公安部门、外汇管理局、人民银行的反洗钱中心、人民银行的支付结算部门,人民银行的在各地的营业管理部。

综上所述,支付机构要能够为在支付生态体系中的各利益相关方提供各种必须的业务功能,这些功能构成了支付的业务体系,进而决定了支付技术体系应该如何搭建。下图汇总展示了支付机构所需要具备的核心功能。

b035d16e4a9edae39e564eb77cf40730.jpeg

5.3 对支付技术架构的要求

不同于游戏、短信、直播、广告和电商平台。支付业务涉及资金处理,范围广而且功能复杂。支付的技术体系需要满足高可用性、高安全性、高效率和可扩展性四个方面的要求。详细描述这四个方面的要求如下。

5.3.1 高可用性

支付的技术架构必须要能够做到7*24*365不间断地提供服务,核心系统的可用性至少要能达到99.99%,也就是说每年最多只能有52.6分钟的宕机时间, 最好是99.999%。如果技术的体系架构设计得合理,运维得当,优秀的支付技术系统的可用性甚至可以与IBM主机系统相当水平的99.999%媲美,也就是说每年宕机5.26分钟。

这是一项非常具有挑战性的工作,也是非常高的标准。毕竟在资源的冗余度和高可靠性设计方面无法与IBM的主机系统相提并论。高可用性不仅仅是一个技术架构的设计问题,更需要技术管理最佳实践的有力配合。本书将在后续章节专门对此进行分析和讨论。

5.3.2 高安全性

支付涉及的是银行账户或者银行卡相关的信息 (PCI),数据和应用与资金相关,所以其价值极高,对于外界很有吸引力,深受黑客的关注。同时,在支付的过程中,还会涉及商户的法人信息,以及消费者的个人身份识别数据 (PII)。

如果这些数据出现泄漏,同样也会带来很多潜在的问题。所以支付的技术架构必须要处理好信息安全,高安全性是支付业务成败的关键。关于支付卡数据( PCI)和个人身份识别数据(PII)保护方面的有关内容,本书将会在〈第12章 支付的信息安全〉中进行详细的讨论。

衡量支付系统安全性主要看下面两个方面:

第一,系统是否已经获得必要的安全认证,对支付机构来说,最重要的就是PCI-DSS认证。

第二,系统是否已经取得公安部门的《信息安全等级保护》认证。

第三,系统是否通过定期性的脆弱性安全检查,并且不存在中高等级的安全漏洞。

5.3.3 高效率

支付的收益模式是赚取支付请求处理费用中的一个部分,所以支付的技术系统在处理每笔支付请求的时候。成本要足够低。支付的处理费一般会按照交易金额的某个比例来收取,例如1%,也就是说100元的交易可能最多只能收到1元的支付处理费用。如果不能形成规模,同时以非常高效率的技术手段自动化处理支付,则很难赚到钱。计算单笔交易成本的公式如下:

  • 运维成本:包括IDC或云服务基础设施的成本,以及维护技术平台的人员成本。

  • 支付总笔数:所有在支付系统发生的支付请求的个数,含退款和取消。

一般来说,单笔支付的技术运维成本并没有什么绝对的意义。更多的是支付技术体系内部以时间为轴线的自我对比,目的在于确保支付的技术体系可以不断地得到优化,从而提高效率降低成本。下图展示了某支付机构的单笔交易成本变化情况。

386a34fa44195adfb5ea5ebb292142cf.jpeg

5.3.4 可扩展性

所谓的可扩展性是一个架构术语,是指支付系统的架构在外部支付请求不断增加的情况下,不必修改应用程序,可以通过增加系统的资源来满足外部的请求。

在现实生活当中,支付机构所支持的各种商业活动,经常会有促销、爆款、打折等带来的海量高并发请求。这种海量的高度发会在瞬间对支付系统的计算、网络和存储资源带来巨大的冲击,甚至会因此而瘫痪并导致支付系统的服务中断。

我曾经经历过几次支付系统的严重失败情况。2015年我在中国的某宝支付工作,当时某电商平台联合了一家智能手机制造商进行打折促销活动。活动从上午10点准时在网上开始,刚开始没有几分钟,监控部门(NOC:Network Operations Center)就发现支付系统的响应非常迟缓,而且越来越慢,出现了请求排队和阻塞现象。与此同时,电商平台上骂声此起彼伏,客户服务电话被打爆。

不久,技术运维团队发现有上万笔支付请求在不到10秒钟的短时间内蜂拥而来。因为每笔支付请求都需要应用系统中的数据进行锁表以更新商户的账户,结果造成数据库无法及时响应,直至最后系统完全瘫痪。活动当然也以失败告终了。

由此可见,支付系统的技术架构必须具有良好的水平可扩展性,才能经得起大风大浪的考验。所谓良好的水平可扩展性,指的是当外部的请求增加的时候,可以通过不断增加设备来实现容量的扩展,而且这种扩展不存在任何障碍。那么,如何才能够设计和研发出具有高可用性、高安全性、高效率和可扩展性的支付技术架构呢?

9874fc4f6be576cb930fa267dc5a4c6f.jpeg

《一本书读懂支付》特别推荐,有关支付的前生后世。

评论区点赞前3获得新书一本。(文章发布后第三天00:00统计)

让你成为首批彻底搞懂支付的人!支付领域标志性著作,支付领军人物在中、美、日等4国30年经验总结,中国银联执行副总裁力荐,360°解读支付。

优惠购书链接(6.5折)点击阅读原文

可以加入技术琐话读者群,请后台回复:读者群

往期推荐:

    • 今年这情况,大家多一手准备吧。。。

    • 从管理1800人团队到退隐江湖,聊聊张雪峰

    • 整理:开源LLM,可微调的项目列表

    • 新书上市 | ChatGPT之父Sam Altman强推,国内首部顶级AI学者GPT原理解释之作

    • 别纯技术视角想问题,论ToB的N种“死”法

    • AI,多赚了1000

技术琐话 

以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-Lua - while语句函数

只要给定条件为真,Lua编程语言中的 while 循环语句就会重复执行目标语句。 while loop - 语法 Lua编程语言中 while 循环的语法如下- while(condition) dostatement(s) end while loop - 流程图 在这里,需要注意的关键是 while 循环可能根本不执行。…

SOC FPGA之流水灯设计

一、DS-5简介 Altera Soc EDS开发套件的核心是Altera版ARM Development Studio 5(DS-5)工具包,为SoC器件提供了完整的嵌入式开发环境、FPGA自适应调试和对Altera工具的兼容。 1.1 DS-5 eclipse破解 首先下载破解器 然后进入cmd运行,进入到破解器所在文…

Kubernetes高可用集群二进制部署(三)部署api-server

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署…

代理模式--静态代理和动态代理

1.代理模式 定义:代理模式就是代替对象具备真实对象的功能,并代替真实对象完成相应的操作并且在不改变真实对象源代码的情况下扩展其功能,在某些情况下,⼀个对象不适合或者不能直接引⽤另⼀个对象,⽽代理对象可以在客户…

抄写Linux源码(Day3:启动南大OS)

我们可以尝试启动南大OS,接着阅读南大OS源码,看看 JYY/YZH 构建主引导扇区的手段 (注意:我使用的是南大2023年的 OS 实验代码) https://jyywiki.cn/OS/2023/labs/Labs 首先,根据 JYY 的文档,…

力扣 C++|一题多解之动态规划专题(1)

动态规划 Dynamic Programming 简写为 DP,是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理&…

PHP8的数据类型转换-PHP8知识详解

什么是数据类型转换? 答:数据从一个类型转换成另外一个类型,就是数据类型转换。 在PHP8中,变量的类型就是由赋值决定的,也就是说,如果 string 赋值给 $var,然后 $var 的类型就是 string。之后…

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 3

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

百分点科技跻身中国智慧应急人工智能解决方案市场前三

近日, 全球领先的IT市场研究和咨询公司IDC发布了《中国智慧应急解决方案市场份额,2022》报告,数据显示,2022年中国智慧应急整体市场为104亿元人民币。其中,智慧应急人工智能解决方案子市场备受关注,百分点科…

Django框架之路由用法

简介 路由简单的来说就是根据用户请求的 URL 链接来判断对应的处理程序,并返回处理结果,也就是 URL 与 Django 的视图建立映射关系。 Django 路由在 urls.py 配置,urls.py 中的每一条配置对应相应的处理方法。 Django 不同版本 urls.py 配…

固定资产管理软件

固定资产全生命周期管理软件采用先进的RFID技术,从采购、入库、借用、总结、清理到损坏等方面准确统计资产,突破过去手工统计的复杂性,节省资产资源,减少调查时间,确保资产管理工作的准确性和快速性。 固定资产管理软…

MySQL概述与体系结构

文章目录 一、MySQL概述1.1 MySQL与redis的区别1.2 数据处理分类1.3 SQL1.4 数据类型 二、数据库设计三范式2.1 范式一2.2 范式二2.3 范式三2.4 反范式 三、MySQL体系结构3.1 结构组成3.2 连接池 四、sql语句执行过程4.1 select语句4.2 CRUD执行过程 一、MySQL概述 1.1 MySQL与…

(YouTube)KDBA QML 学习笔记1

&#xff08;YouTube&#xff09;KDBA QML 学习笔记 旧版本(QML文件介绍) main.qml import QtQuick 2.0Text {text: "Hell World" }main.cpp #include <QtQuick>int mian(int argc, char *argn[]) {QGuiApplication app(argc, argv);//QT开始 QQuickvi…

【力扣】 12. 整数转罗马数字 模拟

力扣 12. 整数转罗马数字 解题思路 当某个位数的某个数不为4或9时&#xff0c;高位对应的字符总是在低位对应的字符前面。只有当该数为4或9时&#xff0c;低位对应的字符在高位前面。 根据这一特性&#xff0c;我们进行分类讨论。 1.当数为4时&#xff0c;则对应的罗马数为 10 …

一文带你了解TCP/IP模型以及封装和分用

文章目录 1. 网络协议2. OSI七层网络模型3.TCP/IP (五层/四层)4. 封装和分用 1. 网络协议 网络协议是计算机网络中用于规定数据在网络中传输和处理的规则&#xff0c;它定义了在网络中通信的格式、规范和顺序。网络协议可以分为不同的层次&#xff0c;每个层次负责不同的功能和…

Python模块psycopg2连接postgresql

目录 1. 基础语法 2. 基础用法 3. 多条SQL 4. 事务SQL 1. 基础语法 语法 psycopg2.connect(dsn #指定连接参数。可以使用参数形式或 DSN 形式指定。host #指定连接数据库的主机名。dbname #指定数据库名。user #指定连接数据库使用的用户名。…

寄存器详解(一)

目录 前言&#xff1a; 通用寄存器 示例&#xff1a; 通用寄存器的划分 汇编指令 cpu物理地址的形成 地址加法器运算示例&#xff1a; 1. 相关部件提供段地址和偏移地址 2. 段地址和偏移地址送入地址加法器 3. 段地址*16 4. 求出物理地址 5. 输出物理地址 段的概念 Deb…

[C++项目] Boost文档 站内搜索引擎(3): 建立文档及其关键字的正排 倒排索引、jieba库的安装与使用...

之前的两篇文章: 第一篇文章介绍了本项目的背景, 获取了Boost库文档 &#x1fae6;[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…第二篇文章 分析实现了parser模块. 此模块的作用是 对所有文档html文件, 进行清理并汇总 &#x1fae6;[C项目] …

牛客网Verilog刷题——VL56

牛客网Verilog刷题——VL56 题目答案 题目 实现4bit无符号数流水线乘法器设计。电路的接口如下图所示&#xff1a; 输入输出描述&#xff1a; 信号类型输入/输出位宽描述clkwireInput1系统时钟信号rst_nwireInput1异步复位信号&#xff0c;低电平有效mul_awireInputsize乘数mu…

Selenium Chrome Webdriver 如何获取 Youtube 悬停文本

导语 Youtube 是一个非常流行的视频分享平台&#xff0c;有时候我们可能想要爬取一些视频的信息&#xff0c;比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的&#xff0c;而是需要我们将鼠标悬停在某个元素上才能看到&#xff0c;比如视频的时长、上传时间…