网站哪些功能是PHP做的,乔拓云网站注册,上海华亮建设集团网站,天津网站建设培训学校1 概述
聚合支付收款分为线上和线下业务场景#xff0c;本文中的商户收银台接口设计主要是指线上业务场景#xff0c;线下业务场景聚合收款方式后续会进行单独设计和分析。
主流的线上支付渠道有微信支付#xff0c;支付宝支付#xff0c;云闪付。这三种支付渠道都有各自…1 概述
聚合支付收款分为线上和线下业务场景本文中的商户收银台接口设计主要是指线上业务场景线下业务场景聚合收款方式后续会进行单独设计和分析。
主流的线上支付渠道有微信支付支付宝支付云闪付。这三种支付渠道都有各自的线上收款产品APP支付、H5支付、小程序支付、扫码支付、公众号支付 。dtpay聚合支付系统商户收银台接口产品主要整合支付渠道不同的线上收款场景让线上商户快速接入各渠道支付场景。
2 线上聚合收银台技术架构
系统采用SpringCloud,SpringCloudAalibaba微服务架构系统采用容器化(Docker,K8S)部署,以下是技术架构使用的技术栈
3 商户线上聚合收银台接口
商户聚合收银台接口采用接口对接或SDK方式给到商户自助对接收银台接口系统各参与方有商户系统、dtpay商户线上聚合收银台接口系统、支付渠道方。商户不需要对接各支付渠道的支付产品通过聚合收银台快速完成收款方式的对接。
4 收银台接口设计
收银台接口主要涵盖以下接口统一下单支付接口、支付通知接口、支付查询接口
4.1 统一支付下单支付接口设计
4.1.1 请求方式
POST/JSON
4.1.2 请求参数
字段名称类型长度必输备注mercOrderNo商户订单号String32是商户自己生成的唯一的订单号商户订单号商户号唯一subject订单名称String100是订单名称、订单说明两者必填其一body订单说明String200否订单名称、订单说明两者必填其一tradeType交易类型String2是01-支付 02-代付 03-提现tradeAmt订单金额String12是交易金额(单位元带两位小数例:1.23,最大整数16位)feeType币种String否默认是CNY人民币当前版本暂不支持其它币种。tradeTime提交支付时间String14是格式[yyyyMMddHHmmss] ;orderPeriod订单有效时间String14是订单有效期(单位分钟)notifyUrl后台通知地址String200是支付成功时后台通知商户的地址必须为http/https协议地址returnUrl前台通知地址String200是支付成功是前台页面跳转的提示页面为空不发前台通知必须为http/https协议地址refererUrl客户端地址String200否重定向地址可直接跳转到商户页面不会附加参数返回termType终端接入类型String8是固定值wappcapppaywayCode支付方式String20是alipay-支付宝 wxpay-微信支付 unionpay-银联支付例如当微信支付时传值 wxpaysceneCode场景编号String20是h5-H5支付app-APP支付scan-扫码支付jspay-公众号支付ebank-网银支付gateway-网关支付例如当支付场景为H5支付时传值“h5”注当支付方式选“ebank”即网银支付时场景编号传送值为“ebank”ip客户端IP外网IPString32是merchantId商户编号String8否storeId门店编号String8否payeeId收银员编号String8否remark备注String100否attach附加信息String128否deviceInfo应用类型String16否如果是应用于苹果app,应用里值为IOS_SDK;如果是应用于安卓app,应用里值为AND_SDK;如果是应用于手机网站应用里值为WAP_SDK微信h5必输mchAppName应用名String256否如果是用于苹果或安卓app应用中传分别对应在AppStore和安卓分发市场中的应用名如王者荣耀如果是用于手机网站传对应的网站名如天猫官网微信h5必输mchAppId应用标识String128否如是是用于苹果或安卓app应用中苹果传IOS应用中唯一标识如com.tencent.wzryIOS,安卓传包名如com.tencent.tmgp.sgame如果是用于手机网站传网站首页URL地址必须保证公网能正常访问如www.itbeien.cn微信h5必输bankCode网银银行编码String20否网银支付必传见银行代码payType支付卡类型String1否1 借记卡 2 贷记卡 3借/贷记卡均可使用。网银支付传此参数不传默认为1即 借记卡quickPayAttach快捷支付参数String否快捷支付直连时必输
4.1.3 同步响应参数
字段名称类型长度必输备注mercOrderNo商户订单号String是商户自己生成的唯一的订单号tradeType交易类型String是01-支付 11-充值 02-代付 03-提现tradeAmt交易金额String是交易金额tradeTime支付提交时间String是订单提交时间格式[yyyyMMddHHmmss] ;feeType币种String是默认是CNY人民币当前版本暂不支持其它币种。termType终端接入类型String是固定值wappcapporderId平台订单号String32是平台订单号可以理解成支付平台返回号codeUrl二维码链接String128否二维码链接 扫码必输imgUrl二维码图片String128否二维码图片payInfo公众号支付信息String128否公众号支付信息mwebUrlH5支付地址String128否H5支付地址bankType付款银行String16否银行类型resultHtml支付formString否网银支付返回必输格式为form表单
4.1.4 响应报文实例
{orderId:2024061812582900001378,signature:5974FF8536CC614F6C2XXXXXXXXXXXX,termType:wap,mercOrderNo:D20180315125826,tradeType:01,codeUrl:https://www.itbeien.cn/qr/5519dddb,respDesc:处理成功,feeType:CNY,mercNo:ORG1520825458796,tradeTime:20240618125826,interfaceCode:pay,respCode:000000
}4.2 支付通知接口
商户回调接口使用HTTPS协议可以保证数据传输的安全性所以建议商户提供的回调接口采用HTTPS协议。商户交易完成后由聚合收银台异步推送至商户。商户接受处理成功后需返回给平台success。
4.2.1 通知结果参数列表
字段名称类型长度必输备注mercOrderNo商户订单号String是商户自己生成的唯一的订单号tradeType交易类型String是01-支付 11-充值 02-代付 03-提现tradeAmt交易金额String是交易金额tradeTime支付提交时间String是订单提交时间格式[yyyyMMddHHmmss] ;feeType币种String是默认是CNY人民币当前版本暂不支持其它币种。termType终端接入类型String是固定值wappcapporderId平台订单号String32是平台订单号可以理解成支付平台返回号tradeEndTime交易完成时间String是支付平台保证精确的支付交易完成时间。payStatus支付状态String是p0001 :提交订单 p0002支付中 p0000 :支付成功 p0004:支付失败 p0005:已取消 p0006:过期已作废bankType付款银行String16否银行类型
4.2.2 支付异步通知参数示例
{tradeAmt:0.01,charset:UTF-8,orderId:2024061812582900001378,signature:0B5E5BAD0C447582A99618EEB0A35567,termType:wap,mercOrderNo:D20180315125826,feeType:CNY,locale:CN,tradeEndTime:20240618125846,version:1.0,mercNo:ORG1520825458796,tradeTime:20240618125828,signType:MD5,payStatus:p0000,tradeType:01
}4.2.3 通知结果反馈
聚合收银台通过 notifyUrl 通知商户商户做业务处理后需要以字符串的形式反馈处理结果内容如下
返回结果结果说明success处理成功fail处理不成功
4.2.4 补单机制
注意聚合收银台通知交互模式如果聚合收银台收到商户的应答不是纯字符串success或超过5秒后返回时聚合收银台认为通知失败聚合收银台会通过一定的策略通知频率为10/10/10/10/10单位秒间接性重新发起通知尽可能提高通知的成功率但平台不保证通知最终能成功。由于存在重新发送后台通知的情况因此同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。聚合收银台推荐的做法是当收到通知进行处理时首先检查对应业务数据的状态判断该通知是否已经处理过如果没有处理过再进行处理如果处理过直接返回纯字符串success。在对业务数据进行状态检查和处理之前要采用数据锁进行并发控制以避免函数重复插入数据造成的数据混乱。
5 加入项目实战
欢迎关注我的视频号视频号有相关技术和业务视频可学习支付业务/文旅行业数字化。探讨技术(系统架构、微服务、容器化、云原生)