web支付系统如何做,介绍个例子

一、前言

  但凡电商系统都设计到支付,通用的有微信支付,支付宝支付,银联支付,还有跨境支付等等。说起来简单可简单,复杂可复杂。但是都大同小异。这个业务主要出在支付牌照上。以至于只有支付牌照的公司才能做支付,有点公司单单做支付系统就能存活下来,发展下去。博主也是边学习边训练。做以下总结。

二、支付系统的特点

一般的支付系统都拥有独立的账户体系、用户体系、支付接入体系、支付交易体系、对账清结算体系。

一般特点

1、拥有支付系统通用的支付通道接入、用户管理、资金账户管理、对账清算管理、支付订单管理等功能;

2、已接通支付宝支付和微信支付的多种支付方式,满足大部分企业业务系统的支付需求;

3、独立的支付网关接入系统,为下游商户或业务平台提供统一支付接入接口,轻松实现统一支付接入;

4、项目代码免费开源且定期更新维护,扩展自由、使用无忧;

5、配套完善的系统使用文档、部署文档、视频教程,学习使用更轻松;

6、拥有活跃的产品技术学习交流社群,学习交流更高效;

7、由专业的支付系统产品技术团队提供服务支持,专业性及持续性有保障。

三、应用架构

web支付系统如何做,介绍个例子_第1张图片

四、支付流程

web支付系统如何做,介绍个例子_第2张图片

五、系统技术栈

web支付系统如何做,介绍个例子_第3张图片 

roncoo-pay //支付系统主要代码模块

├─ roncoo-pay-app-notify //商户通知模块

├─ roncoo-pay-app-order-polling //订单轮询模块

├─ roncoo-pay-app-reconciliation //交易对账模块

├─ roncoo-pay-app-settlement //交易结算模块

├─ roncoo-pay-common-core //公共基础模块(被引用包)

├─ roncoo-pay-service //核心业务模块(被引用包)

├─ roncoo-pay-web-boss //运营后台模块

├─ roncoo-pay-web-gateway //支付网关模块

├─ roncoo-pay-web-merchant //商户后台模块

├─ roncoo-pay-web-sample-shop //模拟商城模块 

六、对账与结算

web支付系统如何做,介绍个例子_第4张图片 

七、系统搭建

1. 开发工具

 eclipse、git或svn、maven

2. 技术框架

    核心框架:Spring Framework 3.2.4

    持久化框架:MyBatis 3.4.

    安全框架:Apache Shiro 1.2.5

    日志管理:SLF4J 1.7.21、Log4j 1.2.17

    数据库连接池:Druid 1.0.19    

    消息总线:ActiveMQ 5.11.4

    工具包:fastjson 1.2.11 

    jQuery 框架:DWZ

3. 系统运行环境

    3.1 软件环境:

        MySQL

        JDK1.7或以上

        apache-tomcat-7.0或其他容器

        ActiveMQ 5.11

    3.2 硬件环境(最小配置):

        CPU:1核

        内存:1G

 

八、跨境支付(此部分摘自ImportNew公众号)

简单地说,跨境支付指的是两个或两个以上的国家或地区因国际贸易所产生的债券,再借助一定的支付方式与结算工具,实现资金能够跨国或跨地区转移的一系列的行为。国内消费者通过跨境电商网站购买国外的产品,或者国外消费者购买国内商家的产品时,由于币种不同,国家各自的支付方式不同,就得通过一定的支付手段和支付系统及资金结算的方式来实现国家与国家之间的资金转换从而完成跨国交易。

国内常用的跨境支付方式有银行电汇、专业汇款公司和第三方支付。其中,银行电汇安全性较高,时间效率性较低,且费用较为昂贵,因此,在很多小额交易中,常常选择第三方支付。第三方支付不仅方便快捷,且费率较低。

无论是国内贸易还是跨境交易,消费者从下单到付款再到收到商品完成交易的一系列活动中,整个业务流程都离不开资金流、信息流和物流。而跨境支付中,由于币种不同,资金的流转就显得更加谨慎且复杂。一个完整的跨境支付流程包含收单、收款和结售汇。简单地说,就是消费者下单付款后,真正的支付流程才刚刚开始。为了保证信息与资金流转的可靠性及安全性,其具体流程如下:消费者下单后,三方支付机构会将交易信息发往发卡行或国际卡组织,待交易信息确认完毕后,发卡行或国际卡组织会发出扣款指令并进行资金结算,再将钱打到商户的海外账户,接下来,国内的三方支付机构便会根据跨境电商的支付数据进行结汇,再将资金分发给卖家商户。

1、业务介绍

1.1 什么是跨境支付

随着科技的发展,跨国贸易逐渐进入人们生活,我们想买海外的商品不需要再亲自到海外,只需要通过跨境电商或者代购在网上下单就可以了。现在国内消费者购买海外商品主要有三种途径:个人代购、个人海淘、跨境电商。比较规范的模式是使用跨境电商,所有商业的最后一步也是最核心的一步就是支付,完成支付后本次订单才能交易成功。现在跨境电商呈爆发式的增长,出境游、出国留学的火热,支付一次遇到了新挑战,就是如何实现跨境支付。很多支付公司都宣布开展跨境支付业务,那么跨境支付究竟是什么呢?

首先,从“跨境”的字面意思来看,此类支付场景是具有空间性特点的。以跨境电商为例,一个商品的购买和支付行为其实就是:买家付款+卖家收款的过程,即支付(买家)+结算(卖家)。

对于和我们相关的跨境电商而言,主要存在两种分类:进口模式和出口模式。进口模式是指买家在国内、卖家在国外。商品从国外买入国内。出口模式是指买家在国外,卖家在国内。商品从国内售出到国外。因为所处国家的不同,买卖双方付款或收款的货币也是不同的。我们只需要把买卖双方的关系弄清楚,整个信息流、资金流就会清楚了,如下表所示。

图片

从表中可以看出,买卖双方所使用的币种不一样。跨境支付要解决的主要问题:支付收单、结算汇款。从买家层面来说,如果使用人民币支付,则使用的支付通道就是能用人民币进行收单并有国际支付牌照的,比如微信、支付宝、京东支付等。如果使用用外币付款,假设是美元,那么使用的支付通道就是能用美元进行收单并有国际支付牌照的,比如 PayPal、Payoneer 等。从卖家层面来说,如果买家付的是人民币,那就需要把人民币转换为美元;要收人民币,如果买家是付的美元,那么就需要把美元转换成人民币。这种人民币与美元之间互相转换的过程就是换汇,我们需要借助某些第三方收款机构来完成。

跨境支付为国际贸易提供基础支付服务,而国际贸易就离不开进口和出口,下面我们站在支付角度来梳理一下进出口资金的流转过程。

1、出口模式

海外的消费者通过本国的支付平台比如 PayPal 使用资金银行账户的资金购买商品,资金汇到海外的电商平台的结算户,然后通过外币结算到国内的支付机构的外币账户,再通过结汇到国内的银行账户,然后三方支付机构把资金代发给本国的商户。具体流程下图所示。

web支付系统如何做,介绍个例子_第5张图片

支付收单,使用国际支付机构。结算收款:一般卖家是通过绑定三方支付机构账户的方式,由该第三方机构与合作银行完成换汇(结售汇流程),最终到达卖家的境内银行账户。

2、进口模式

进口模式和出口模式相反,买家在国内,通过人民币进行支付,三方支付机构与合作的银行将人民币购汇换成外币,然后结算给海外的卖家银行账户。资金流如下图所示:

web支付系统如何做,介绍个例子_第6张图片

三方支付公司开展的外汇跨境支付业务主要是银行卡收单业务,该业务包括境外收单和外卡收单两个模式。

境外收单业务是指非金融机构为境外网站代收由境内个人向境外支付的外汇货款。业务的基本流程是境内个人在境外网站按显示的外币报价购买商品后,向非金融机构支付对应的人民币金额货款,再由非金融机构的境内合作银行进行批量购汇并录入外汇局个人结售汇管理系统。境外商户在收到非金融机构发出的支付成功信息后,通过邮寄的方式向境内居民发出商品。境内居民收到货物后,将向非金融机构发送清算指令。非金融机构按照与境外商户的结算约定,通过境内合作银行将外币货款向境外商户银行结算账户汇款,并完成跨境结算。

外卡收单是指境内非金融机构代境内网站收取境外个人向境内支付的外汇货款。业务流程大体是境外个人在境内网站购买商品后,通过与境内非金融机构合作的境外支付公司向境内非金融机构开立在境外的银行账户支付外汇货款(资金支付方式既可以是 Visa/MasterCard 等境外发行信用卡,也可以是 T/T 电汇)。境内非金融机构在确认收到外汇货款后,通知境内网站向境外个人发货。境外个人收到货物后,确认并指令境内非金融机构向境内网站划转货款。境内非金融机构的合作银行根据指令办理外汇资金的跨境结算,经结汇后,将人民币资金划转给境内网站。

跨境电商的结算方式有跨境支付购汇方式和跨境收入结汇方式两种。购汇和结汇都是外汇兑换,结汇是将外汇兑换成人民币,即将把外汇卖给银行;购汇是将人民币兑换成外汇,即银行购买外汇。购汇和售汇其实是一件事情,以银行办理业务为例,客户购汇(用本币购买外汇)就是银行售汇(银行出售外汇给客户)。

支付公司做跨境支付的收益来源不止有交易手续费,支付公司还可以提供其他的服务以赚取服务费,跨境支付的收入和收入分类如下。

第一,交易手续费、汇兑、其他开发服务费为主要收费项目。

国际收单的手续费仍保持较高水平,在3%左右,汇兑收益主要来自批发零售的汇率价差、离岸在岸的汇率价差及汇率浮动收益,费率区间较大。此外,支付公司可以为电商平台搭建支付系统或提供完整的支付解决方案,收取项目开发费用。

第二,增值服务拓展收入来源。

海关企业备案服务、保税仓服务、海外仓服务、支付并上传海关服务、身份验证服务。

第三,跨境营销服务。

跨境营销主要服务于进口电商业务,跨境支付公司为海外商家提供销售页面、营销、支付等中国本地化服务,业务模式为B2B、B2B2C相结合。此外,跨境支付公司可以为境外商家一次性对接国内多条销售渠道,同时为国内渠道对接海外商品服务。

1.2 跨境支付发展历程

在全球跨境支付的发展过程中,有几个特别著名的支付机构需要了解,它们可以说是整个全球跨境支付业务发展过程中的“里程碑”。

1. SWIFT:最早的跨境支付

SWIFT 的中文名是环球同业银行金融电讯协会,是国际银行同业间的国际合作组织。它是最早的跨境支付组织,成立于 1973 年,目前全球大多数国家的大多数银行都已经使用了 SWIFT 系统。SWIFT 的使用提高了银行的结算速度,目前信用证的格式主要使用的是 SWIFT 电文。

2. Visa:最大的信用卡国际组织

相比于 SWIFT,Visa 听起来要熟悉得多,我们在很多商店都可以看到 Visa 的结算标志。Visa 是美国的一个信用卡品牌,也是全球最大的信用卡国际组织。Visa 的前身是由美洲银行所发行的 Bank Americard,1977 年更名为 Visa。Visa 除了是它的品牌,也是发卡组织的名称,Visa 国际组织是目前世界上最大的信用卡国际组织,就像中国的银联一样,Visa 也并不发卡 [45] ,卡上带有 Visa 的字样就证明这个卡加入了 Visa 组织,在国内各大银行办卡的时候可以直接选择 Visa。Visa 的全球交易处理网络可以处理一系列新兴服务,全球转账服务可以使个人通过 Visa 的支付网络享受安全、快捷的电子汇款服务。

3. Master:第二大信用卡国际组织

提到 Visa 的地方总少不了 Master(万事达),Master 是全球第二大的信用卡国际组织。1966 年,美国加州的一些银行成立了银行卡协会,并于 1970 年启用 Master Charge 的名称及标志,统一了各会员银行发行的信用卡名称和设计,1978 年再次更名为现在的 MasterCard。万事达卡是最先在中国实现全球连网业务的国际组织,为我国银行和商户提供了优质的服务。

4. Western Union:国际汇款公司

Western Union 的简称为西联汇款,成立于 1851 年,以前的主营业务是收发电报。1992 年,Western Union 启动了 Money OrderSM 服务,能够让客户快捷方便地获得资金。西联汇款操作十分简单,只要在合作的银行,凭借身份证就可以进行付款和收款,无须额外开立银行账户,汇款到达的速度也很快。西联汇款与中国的邮储、农业、光大等银行都有合作。

5. PayPal:第三方支付公司

PayPal 是一个总部在美国加利福尼亚州的在线支付服务商,成立于 1998 年 12 月,是目前全球使用最广泛的第三方支付工具之一。PayPal 服务范围超过 200 个市场,支持的币种超过 100 个,支持信用卡、借记卡、电子支票等支付方式。PayPal 免费注册,支付流程简单,受到了全球有国际收付款需求的用户的欢迎。PayPal 也和一些电子商务网站进行了合作,成为它们的收款方式之一。

之后,跨境交易资金的快速增长,跨境支付行业的竞争也越发激烈。除了这些老牌的、“里程碑” 式的支付机构,像国外的 WorldFirst、Payoneer、Airwallex、国内的银联、支付宝国际、财付通、宝付、拉卡拉、智付等,都在近些年迅速地发展壮大了起来。

跨境支付业务为国内大众所熟知的主要有四种模式,分别是电汇、国际卡组织、银联国际和第三方支付平台。

6. 电汇

电汇是最早出现的传统进出口贸易跨境支付方式,一般是通过我们上面所提到的 SWIFT 通道来进行数据传输,主要应用于跨国银行间往来,靠电报费、手续费和中转费来盈利。

7. 国际卡组织

国际卡组织最常见的就是 Visa 和 Master,主要应用在线上的海淘和线下 POS 机刷卡,可以看到很多店铺上贴了 Visa 或者 Master 的标志,代表该店铺可以接受对应的国际信用卡付款,这种模式主要靠手续费盈利。

8. 银联

银联是国内首家开展跨境支付业务的第三方支付机构,银联国际就是中国银联负责运营国际业务的子公司,海外成员行可以通过银联国际体系和中国进行资金清算和结算,其收入方式也是以手续费为主。

9. 第三方支付

第三方支付是最晚进入跨境支付行业的,需要国家颁发的跨境支付牌照,大多应用于小额跨境支付业务,比如留学等,或者是制定企业行业解决方案,也是以手续费的方式盈利的。

10. 政策红利 “新蓝海”

对于我国来说,跨境支付行业正在经历一个 “走出去” 和 “走进来” 同步发展的时代,2015 年,PayPal 选择连连支付作为国内官方合作伙伴,2016 年,Apple Pay 进入中国,2018 年 3 月 21 日,中国人民银行官网发布 2018 年第 7 号公告,放开了外商投资支付机构准入限制,明确了外资和内资支付机构须遵守相同规定,实现统一的准入标准与监管要求,在这之后外资支付机构更是瞄准了国内广阔的市场潜力,纷纷进入中国市场。

与此同时,国内支付机构也在努力扩展海外业务。2017 年 9 月,微信和法国巴黎银行合作推出微信支付。2018 年 6 月,首个基于区块链的电子钱包跨境汇款服务在中国香港上线。港版支付宝 AlIPayHK 的用户可以通过区块链技术向菲律宾钱包 Gcash 汇款。除了支付宝、微信这种行业巨头,环迅支付,连连支付等机构也都在积极拓展海外市场,“一带一路” 更是给这些机构提供了诸多便利和支持。

随着国内外贸易的进一步发展扩大,未来将对跨境支付产生更多的需求。融合了区块链技术的跨境支付模式,能够帮助降低国内企业的交易成本和 “走出去” 的阻力,中国的跨境支付市场或许将成为下一个享受政策红利的 “新蓝海”。

2、技术实现

2.1 业务流程

跨境支付分为外汇跨境支付和人民币跨境支付,外汇跨境支付是以外币结算的,人民币跨境支付则是以人民币结算的,这样省去了币种兑换,缩短了支付周期的同时也避免了货币汇兑的汇差损失。人民币跨境支付有利于跨境商户的拓展及简化支付结算流程。境内买家通过境内支付机构接入境外商户购物,无须再为个人结售汇等手续困扰,可直接使用人民币购买境外商家的商品或服务,便捷操作将吸引更多用户购买境外商户的商品和服务。另外,跨境支付试点牌照是国家外管局发的,而人民币跨境支付许可则是央行发的。

消费者在境内,商家在境外,消费者购买商家的商品之后,资金流如下图所示。

web支付系统如何做,介绍个例子_第7张图片

  • (1)境内消费者通过三方支付公司付款购买商品,付款的币种为人民币。

  • (2)三方支付公司收到资金之后,在结算的时候把人民币购汇为外币。

  • (3)三方支付公司的合作银行把购汇的外币打款到三方支付公司的海外账户。

  • (4)三方支付公司的海外账户的资金结算给境外的商户账户中。

消费者在境外,商家是境内,消费者购买商家的商品之后,资金流如下图所示。

  • (1)境外消费者通过三方支付公司付款购买商品,付款的币种为人外币。

  • (2)三方支付公司收到资金之后,在结算的时候把资金购汇为人民币。

  • (3)三方支付公司的合作银行把购汇的外币打款到三方支付公司的国内账户。

  • (4)三方支付公司的国内账户的资金结算给境内的商户账户中。

web支付系统如何做,介绍个例子_第8张图片

国际贸易和国内贸易最主要的区别在于国际贸易需要经过海关,买家付款之后,商户经过物流发货,所有的商品都会到达海关,跨境支付需要到海关进行报关,海关才能放行,报关要有三方支付公司的支付单,以及物流单。报关通过之后海关才会放行,商品再通过国内的物流到达买家手上。

2.2 交互设计

跨境贸易涉及支付单、订单、物流单、申报单四单,海关要求“四单对碰”才是一个正常的交易。三方支付公司有支付单,可以承担起支付单的报关,订单、物流单、申报单都需要商户自己来完成。国家外汇管理局印发《通过银行进行国际收支统计申报业务指引(2016年版)》的通知中规定,支付机构应通过银行对贸易项下实际用汇客户的跨境收支进行还原申报,申报内容包括主体名称、用汇金额和币种、用汇日期、交易对手名称和国别、交易编码和交易附言。之前跨境出口电商往往因为无跨境结算的相关正式材料而只能通过离岸账户、个人分拆、地下钱庄等渠道实现资金收付和结售汇,存在非常大的合规风险。基于合规要求,三方支付公司必须给海关提供跨境支付单数据。

商户要做跨境业务,开通跨境支付,要经历三个步骤:商户入住、支付、结算。跨境商户的入驻要求商户在三方支付公司合作银行进行报备,报备完成之后拿到相关材料再到三方支付公司入驻并开通跨境结算账户。具体流程如下图所示。

web支付系统如何做,介绍个例子_第9张图片

商户入驻之后就可以进行交易,交易的时候需要区分是境内商品交易还是境外商品交易,不同的交易类型结算方式是不一样的。支付交易的流程如下图所示。

web支付系统如何做,介绍个例子_第10张图片

跨境支付和普通支付的支付流程是一样的,不同点在于支付交易打了跨境标,支付完成之后发送给计费系统和清结算系统的支付成功消息记录也要打上跨境标,因为收取的手续费和结算的模式是不一样的。

国内的支付公司主要是针对资金出境的情况,就是消费者在国内,商家是境外商户,消费者购买境外商品的场景。如果一个商户既售卖国内的商品也售卖国外的商品,则需要区分是哪种商品,给商户做结算的时候要区分需要到哪个账户中。例如,商户的账户中原来有待结算账户,那么需要区分境内待结算户和境外待结算户。境内商品的资金都到境内待结算账户,境外商品的资金都到 境外待结算账户。结算的时候,如果是境内待结算账户的资金则直接结算到商户的境内银行卡中,如果是境外待结算账户的资金,则需要先购汇,然后到三方支付公司的境外账户,再结算给商户的境外账户中,如下图所示。

web支付系统如何做,介绍个例子_第11张图片

支付流程和境内的支付流程是一样的,都使用人民币进行支付,支付完成之后需要根据商品类型进行区分,境内的商品执行原有流程,境外的商品要单独执行一套境外结算的流程。在清算阶段区分商品类型(境内、境外),并清算到不同的待结算账户中,境内待结算账户结算的时候流程不变,境外待结算账户结算的时候要经过购汇、汇款、打款几个步骤。

你可能感兴趣的:(java,架构)