7.3.2 交易服务微信下单 交易服务微信下单是提供给支付入口请求的微信付款的接口,当用户用微信客户端扫描二维码进入确认支付页面, 点击确认支付即将请求此接口。7.3.2.1 H5页面按照微信官方例子编写调起微信客户端支付的H5页面,从资料文件夹拷贝“wxpay.html”到交易服务下7.3.2.2 接口定义1、接口描述1)接收前端支付请求2)保存订单信息到惠民支付平台3)调用支付渠道代理服务
7.3 立即支付 7.3.1 交互流程 点击立即支付调用第三方支付系统的下单接口,微信客户端扫码进入确认页面,点击立即支付则由渠道代理服务调 用微信支付的下单接口,具体的流程如下:1、微信客户端扫码进入确认页面,点击立即支付请求交易服务微信下单接口2、交易服务通过支付渠道代理服务调用微信下单接口3、调用微信下单接口成功,返回H5网页4、在H5网页调起微信客户端支付。 7.3.1 支付渠道代理
7 接入微信 7.1 接入分析 惠民支付平台是将各各常用的第三方支付渠道统一为一个支付通道,前边实现了C扫B支付宝支付的流程,下边接入 微信支付,根据接入支付宝的流程分析接入微信需要实现的如下:1、支付入口顾客扫码进入支付入口,根据客户端类型判断是微信还是支付宝,是支付宝则直接进入收银台,如果是微信则需要 首先获取openid,再进入收银台。2、立即支付点击立即支付调用微信的统一下单接
6.6 支付结果更新 6.6.1 交互流程 支付渠道代理服务查询到支付结果,将支付结果更新消息发送给交易服务,实现订单状态更新,流程如下:1、支付渠道代理服务查询到支付结果2、向MQ发送“支付结果更新”消息3、交易服务监听“支付结果更新”消息队列4、交易服务接收到“支付结果更新”消息,更新订单状态 6.6.2 发送消息 在支付渠道代理服务的PayProducer中定义发送“支付结果更新”消息
6.5 支付结果查询 6.5.1 交互流程 根据技术方案的分析,交互流程如下:1、支付渠道代理服务调用支付宝下单接口完成后向MQ发送“支付结果查询”消息(延迟消息),消费方为支付渠道代理服务。2、支付渠道代理服务监听消息队列,接收“支付结果查询”消息。3、支付渠道代理服务调用第三方支付系统的支付结果查询接口。6.5.2 发送消息6.5.2.1 配置RocketMQ 1)在支付渠道代理工程中添
6 获取支付结果6.1 需求分析获取支付结果的需求包括如下几个方面:1、服务间异步通信顾客支付完成后,平台需要及时得到支付结果并更新数据库中的订单状态。根据微服务职责划分,支付渠道代理服 务负责与支付宝、微信接口对接,交易服务负责维护订单的数据,支付渠道代理服务如何把查询到的订单结果通知 给交易服务呢?项目中会采用消息队列来完成。2、实现第三方支付系统支付结果查询接口完成支付后第三方支付系统提供两
5.4 交易服务支付宝下单5.4.1 接口定义交易服务支付宝下单是提供给支付入口请求的支付宝付款接口,当用户用支付宝客户端扫描二维码进入确认支付页面,点击确认支付即将请求此接口。1、接口描述1)接收前端支付请求2)保存订单信息到惠民支付平台3)调用支付渠道代理服务请求支付宝下单接口4)将支付宝下单接口响应结果返回到前端,前端开始进行支付2、接口定义在PayController中定义接口如下:定义O
5 立即支付5.1 需求分析顾客扫码进入支付确认页面,输入金额,点击立即支付,打开支付客户端(微信或支付宝),输入支付密码完成支付。立即支付需要调用第三方支付渠道的统一下单接口,本章节完成支付宝统一下单接口对接。交互流程如下:支付渠道代理服务介绍:有支付需求的微服务统一通过支付渠道代理服务调用“第三方支付服务”提供的接口,这样做的好处由支付渠道代理服务将第三方支付系统和惠民支付内部服务进行解耦合。
4 支付入口4.1 需求分析买方扫描门店二维码,进入支付入口 即进入订单确认页面,流程如下:1)顾客扫描二维码2)进入订单确认页面 4.2 Freemarker技术预研支付确认页面由服务端渲染生成,常用的技术有jsp、freemarker velocity Thymeleaf等。本项目采用freemarker模板引擎,参考freemarker基础v1.1.pdf。4.3 交易服务支付入口交互流程
3.4 生成二维码3.4.1 系统交互流程生成二维码的系统交互 流程如下:1、商户登录商户应用平台 ,查询门店列表2、商户平台 请求交易 服务获取门店二维码URL3、商户平台 根据 URL生成二维码3.4.2 交易服务生成二维码URL3.4.2.1 接口定义接口描述:生成门店的c扫b二维码接口参数:输入:商户id、应用id、门店id、标题,内容输出:支付入口1、在交易服务的api工程 创建dto@
3.3 门店列表3.3.1 商户服务查询门店列表3.3.1.1 接口定义1、接口描述1)根据商户id和分页信息查询门店列表2、接口定义如下:MerchantService/** \* 分页条件查询商户下门店 \* @param storeDTO \* @param pageNo \* @param pageSize \* @return */ PageVO<StoreDTO> quer
2 支付接口技术预研根据前边的需求分析, 重要的是惠民支付平台作为中介,将用户的支付请求通过接口与微信、支付宝等第三方支付渠道进行对接,完成支付通道的聚合,所以首先需要调研微信、支付宝等第三方支付渠道的对接方式。本项目首期上线要求集成微信和支付宝,下边对微信和支付宝的支付接口进行技术预研,包括:对接的流程,接口协议、接口测试等。参考:惠民支付-第3章-支付宝支付接入指南.pdf、惠民支付-第3章-
1 支付宝C2B 需求分析1.1 C扫B的概念C扫B,即顾客(Customer)扫描商户(Business)提供的二维码来完成支付。下图是支付宝提供的C扫B业务流程:1、商家出示收款二维码2、客户打开支付宝或微信的扫一扫,扫描二维码3、确认支付,完成支付。C扫B支付分为两种方式:一是固定金额支付,顾客扫描后无需输入金额直接确认支付即可;另外一种是输入金额,顾客扫描后需自己输入待支付的金额,然后完成
1 集成测试 1.1 测试需求 通常前后端开发过程,一个模块或一个系统开发完成之后,前后端工程根据产品文档及接口定义进行前后端连调测试。第二章完成了商户注册、资质申请、支付参数配置等功能,本次测试集成对完成的业务功能进行前后端测试。1.2 前期准备 1.2.1 商户平台应用获取登录商户信息商户登录成功,前端获取当前商户的信息。在MerchantServiceImpl中定义queryMercha
2 用户认证SaaS平台提供统一认证的服务,本章节学习SaaS平台的认证功能。2.1 基本概念2.1.1 什么是认证进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码登录微信的过程就是认证。系统为什么要认证?认证是为了保护系统的隐私数据与资源,用户的
1.4 对接SaaS代码实现根据前边接口SaaS步骤 的分析,需要在商户平台 完成新增员工、新增门店、设置门店管理员等功能。1.4.1 商户服务新增门店接口1.4.1.1 接口定义 在商户服务定义新增门店接口1、接口描述如下:1)商户注册的同时新增默认门店2、接口定义如下:生成StoreDTO类。在MerchantService接口类中定义如下接口:/** \* 商户下新增门店 \*
1.3 部署SaaS系统 1.3.1 初始化数据执行“资料”下的 “huiminpay_saas.sql” 脚本导入SaaS系统数据库。1.3.2 部署服务复制huiminpay-gateway、huiminpay-uaa、huiminpay-user到huiminpay父工程添加上述三个Module完成后,整体目录结构如下:1.3.3 完善配置 1.3.3.1 网关服务 在Nacos上添加
1.1 基础概念 1.1.1 SaaSSaaS是Software-as-a-Service(软件即服务)的简称,它是一种通过互联网提供软件服务的模式,与传统软件相比有如下几点区别:1、SaaS软件不再是用户向软件供应商定制软件或进行二次开发,而是供应商将软件部署在自己的服务器上并通过互联网提供在线服务。2、软件供应商负责搭建一切网络设备、软硬件运行平台等基础设施,并全权负责运营和维护软件。3、用
5.6 支付渠道参数缓存5.6.1 需求分析渠道参数查询频繁,每一次支付都会查询渠道参数,为提供查询性能这里我们将渠道参数缓存到redis中,缓存流程如下:1、保存渠道参数添加缓存保存渠道参数成功,同时将渠道参数保存在Redis中。2、查询渠道参数缓存查询渠道参数,先从Redis查询,如果Redis存在则返回渠道参数,否则从数据库查询,同时将查询到的渠道参数存储在Redis中。 5.6.2 搭建r
5.5 支付渠道参数查询5.5.1 交易服务-渠道参数查询接口5.5.1.1 接口定义1 1、接口描述1)根据应用和服务类型获取原始支付参数param,结果可能是多个(支付宝param 微信param)2、接口定义如下:在PayChannelService接口中定义queryPayChannelParamByAppAndPlatform方法:/** * 根据应用和服务类型查询支付渠道参
5.4 支付渠道参数配置5.4.1 系统设计 支付渠道参数配置数据模型如下: 支付渠道参数数据存储至支付渠道参数表(pay_channel_param)APP_PLATFORM_CHANNEL_ID:为app_platform_channel表的主键即应用绑定服务类型表的主键,应用加服务类 型表示一个APP_PLATFORM_CHANNEL_ID。APP_PLATFORM_CHANNEL_ID和
5.3 应用绑定服务类型 5.3.1 系统设计 为应用绑定服务类型即指定应用使用哪些服务类型,数据模型设计如下 :5.3.2 交易服务-获取平台服务类型(接口①)绑定服务类型页面,页面中列表出服务类型。5.3.1.1 接口定义 1、接口描述:查询平台支持的所有服务类型2、接口定义如下:PayChannelServicepackage com.huiminpay.transaction.api
5 支付渠道参数配置 5.1 需求分析5.1.1 系统交互流程商户渠道参数配置交互流程如下:交易服务职责:提供支付渠道参数配置、订单、发起支付、转账、退款等功能交互流程如下 : 第一阶段:应用绑定服务类型前端请求商户平台应用获取平台支持的所有服务类型列表请求交易服务查询列表返回服务类型列表给前端前端选择要绑定的服务类型请求商户平台应用请求交易服务绑定服务类型返回前端绑定成功 第二阶段:支付渠道
3 支付渠道参数配置 下图是支付渠道参数的配置流程 :1)应用创建成功后,会自动跳转到绑定服务类型页面2)点击开启服务为应用绑定服务类型3)开启服务后,点击配置实际支付渠道按钮进入参数配置页面4)配置参数页面会显示对应服务类型下的原始支付渠道5)点击配置参数按钮,为指定原始支付渠道配置6)填写支付宝或微信的支付参数4 商户应用创建 4.1 需求分析 4.1.1 系统交互流程 商户应用创建
支付参数配置 1 需求概述1.1 基础概念1.1.1 理解应用商户资质审核通过后就可以使用聚合支付平台提供的服务,聚合支付平台所提供的基础服务正是聚合支付。聚合支付就是将微信、支付宝等支付渠道汇聚为一个支付通道供商户使用,如下图:聚合支付平台提供线上支付和线下支付两个方式,线上支付可通过手机和PC完成,线下支付可通过扫码完成。1、聚合支付平台对接微信、支付宝等众多支付渠道。2、商户创建自己的应
阿里云对象存储使用指南1.服务介绍海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。1.1产品优势1.2产品功能2. 创建对象存储空间2.1创建阿里云账号 https://www.aliyun.com/1111/new?userC
2 使用验证码服务2.1 发送验证码参数名参数类型描述namestring(query)业务名称(使用何种方式的验证码,可选的有sms, img, mail等)payloadapplication/json业务携带参数,如手机号 、邮箱effectiveTimestring(query)验证信息有效期(秒)点击'Try it out', 填写参数进行测试参数说明: name: 业务名称,短信的业务
验证码服务使用指南1 部署验证码服务1.1 基础环境Java 1.8+Maven3.3.9+1.2 安装Redis参考“Redis安装指南”安装服务: redis-server.exe --service-install redis.windows.conf --loglevel verbose 开启服务 redis-server --service-start 卸载服务 redis-se
3.4 资质申请 3.4.1 商户服务-资质申请(接口②)3.4.1.1 接口定义1、接口描述 1)接收资质申请信息,更新商户信息及审核状态(待审核) 2)返回结果2、接口定义如下:在 MerchantService中定义applyMerchant接口/** * 资质申请接口 * @param merchantId 商户id * @param merchantDTO 资质申请的信息 *
3 商户资质申请3.1 需求分析3.1.1 系统交互流程 交互流程如下:前端上传证件照片,请求商户平台应用。商户平台应用请求阿里云上传图片。上传成功返回图片标识给前端。前端携带证件图片标识和资质申请信息提交到商户平台应用。请求商户服务保存资质申请。保存成功返回给前端。商户资质申请界面如下: 3.1.2 资质信息存储商户资质 信息存储在商户表,上传的资质证件照片存储Url绝对路径。关于资质
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号