Skip to content

统一支付接口

提示

业务系统通过下单接口发起收款,网关会根据系统中的配置和业务系统传输的参数,选择的对应的支付通道和支付方式发起下单请求。 同时网关根据不同的支付方式返回对应发起支付使用的参数,业务系统使用该参数参数来调起支付。

同样的商户订单号可以重复提交,但重复提交时只有 支付通道支付方式商户扩展参数同步请求地址异步通知地址用户IP签名值请求时间字段可以传输不同的值,其他参数需要与首次下单的数值一致,传输不同的值也不会生效。

接口说明

参数说明
请求URL/unipay/pay
请求方式POST
请求类型application/json

请求参数

公共参数

字段名变量名必填类型长度示例值描述
应用号appIdString32A112544225541此次操作所要使用的支付应用号
用户IPclientIpString64127.0.0.1支持V4和V6,部分支付方式要求必填,如调用微信支付方式时
随机数值nonceStrString32d112892e382a7093
签名值signString64072695d112892e382a7093b81e6a52af
请求时间reqTimeString2024-10-24 12:00:00请求时间和当前时间误差不要超过五分钟,时间格式 yyyy-MM-dd HH:mm:ss

业务参数

字段名变量名必填类型长度示例值描述
商户订单号bizOrderNoString100123支付时客户系统传输的业务单号,需要保证唯一,可以为字符文字组合
支付标题titleString100测试支付
支付描述descriptionString500测试支付的描述
开启分账allocationBooleantrue订单是否允许分账,不传输为不开启
开启自动分账autoAllocationBooleanfalse是否自动对支付订单进行分账,需要开启分账字段为true才会生效
过期时间expiredTimeLong2024-10-24 12:00:00订单过期时间,格式为yyyy-MM-dd HH:mm:ss,不传输为默认值,默认为当前时间往后加24小时。
支付通道channelString20ali_pay要进行支付的通道编码,如微信支付、支付宝支付等。见常量和状态表支付通道相关的描述
支付方式methodString20qrcode进行支付的方式编码,如扫码支付、条码支付等。见常量和状态表支付方式相关的描述
支付金额amountBigDecimal8,210.12要进行支付的金额,单位为,保留两位小数
附加支付参数extraParamChannelParam具体实现类2048见下方支付ChannelParam参数说明,没用到这个参数可以不用传
商户扩展参数attachString500id=123332商户扩展参数,回调时会原样返回
同步请求地址returnUrlString200http://abc.cn/returnCallback支付完成后,会自动跳转到设置的页面
退出地址quitUrlString200http://abc.com/quit用户付款中途退出返回商户网站的地址(部分支付场景中可用)
异步通知地址notifyUrlString200http://abc.cn/noticeCallback异步通知地址

ChannelParam参数

TIP

支付时有一些支付方式需要额外传输一些参数,例如条码支付时就需要传输条码值,微信相关的支付需要传输OpenId等,所以对这些格式不确定的参数, 通过ChannelParam参数项进行传输。目前提供下面三种参数,其他类型的见扩展包文档。

AliPayParam(支付宝参数)

参数类型描述
authCodeString授权码,条码支付时主动扫描用户的付款码

WeChatPayParam(微信支付参数)

参数类型描述
openIdString微信openId,微信公众号支付或者小程序支付时需要进行传入
authCodeString授权码,条码支付时主动扫描用户的付款码

UnionPayParam(云闪付支付参数)

参数类型描述
authCodeString授权码,条码支付时主动扫描用户的付款码

响应结果

通用响应参数

WARNING

状态码返回0只代表受理业务成功,业务是否成功需要看具体业务的返回信息,不为0表示受理失败,具体响应吗可以参考返回状态码

名称字段类型示例值描述
状态码codeInteger0默认是0,非0表明请求失败,例如签名错误等
提示信息msgString发生错误时会有数据返回
业务数据dataJson字符串json格式数据,不同的接口返回结构不同,可以参考业务公共响应参数
签名signStringsIV4zJVhZ4Uz返回数据的签名值
响应时间resTimeString2024-08-08 12:12:12数据响应的时间, 如果时间与请求时间相差5分钟以上,请排查网络和安全问题
追踪IDtraceIdStringsIV4zJVhZ4Uz用于查询日志排查问题时进行快速定位

业务响应参数

提示

业务数据包裹在公共响应参数中的data字段,在code0时才会有返回数据。

字段名变量名必传类型示例值描述
商户订单号bizOrderNoString1753370980523384832发起支付时传输的商户订单号
订单号orderNoStringtrue支付系统生成的支付订单号
支付状态statusStringpay_success常量和状态表相关的描述
支付参数体payBodyStringweixin://wxpay/bizpayurl?pr=QimHZC7zz用于用户终端发起支付请求数据, 是一个Json字符串, 需要根据不同的支付通道和支付方式进行处理

PayBody数据结构说明

INFO

不同的通道和支付方式返回的支付参数体有所区别,需要根据不同的支付场景进行处理, 下面是各个支付通道和支付方式的返回参数体介绍

支付通道支付方式描述实例
支付宝电脑/扫码支付/wap支付返回的是一个URL链接, 可以直接进行支付
支付宝App返回的是一个签名字符串, 通过签名字符串调起支付
支付宝Jsapi返回的是支付宝交易号, 使用支付宝交易号调起支付
微信扫码支付返回的是一个URL链接, 可以直接进行支付
微信wap支付返回的是一个URL链接, 可以直接进行支付
微信Jsapi返回的是个Map结构的Json字符串, 需要根据参数调起支付
微信App返回的是个Map结构的Json字符串, 需要根据参数调起支付
云闪付扫码支付返回的是一个URL链接, 可以直接进行支付

支付宝App返回值

返回的是一个签名字符串: app_id=2017060101317939&biz_content=%7B%22time_expire%22%3A%222016-12-31+10%3A05%3A00%22%2C%22extend_params%22%3A%22%22%2C%22query_options%22%3A%22%5B%5C%22hyb_amount%5C%22%2C%5C%22enterprise_pay_info%5C%22%5D%22%2C%22subject%22%3A%22%E5%A4%A7%E4%B9%90%E9%80%8F%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22body%22%3A%22Iphone6+16G%22%2C%22passback_params%22%3A%22merchantBizType%253d3C%2526merchantBizNo%253d2016010101111%22%2C%22specified_channel%22%3A%22pcredit%22%2C%22goods_detail%22%3A%22%22%2C%22merchant_order_no%22%3A%2220161008001%22%2C%22enable_pay_channels%22%3A%22pcredit%2CmoneyFund%2CdebitCardExpress%22%2C%22out_trade_no%22%3A%2270501111111S001111119%22%2C%22ext_user_info%22%3A%22%22%2C%22total_amount%22%3A%229.00%22%2C%22timeout_express%22%3A%2290m%22%2C%22disable_pay_channels%22%3A%22pcredit%2CmoneyFund%2CdebitCardExpress%22%2C%22agreement_sign_params%22%3A%22%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&sign_type=RSA2&timestamp=2014-07-24+03%3A07%3A50&version=1.0

参考 支付宝APP接入文档 进行调起支付

微信Jsapi结构

字段名称备注
appid应用id微信开放平台审核通过的移动应用AppID 。
timeStamp时间戳时间戳,标准北京时间,时区为东八区, 自1970年1月1日 0点0分0秒以来的秒数
nonceStr随机字符串
package预支付ID拼接值JSAPI下单接口返回的prepay_id参数值进行拼接, 格式如:prepay_id=***
signType签名类型默认为RSA
paySign签名使用字段AppID、timeStamp、nonceStr、package计算得出的签名值

微信App结构

字段名称备注
appid应用id微信开放平台审核通过的移动应用AppID 。
partnerid商户号mchid请填写商户号mchid对应的值。
prepayid交易会话ID微信返回的支付交易会话ID,该值有效期为2小时
packagepackage暂填写固定值Sign=WXPay
nonceStr随机字符串
timeStamp时间戳时间戳,标准北京时间,时区为东八区, 自1970年1月1日 0点0分0秒以来的秒数
sign签名使用字段AppID、timeStamp、nonceStr、prepayid计算得出的签名值 注意:取值RSA格式

HTTP请求示例

请求参数

json

响应参数(成功)

json

响应参数(失败)

json

SDK请求示例

提示

使用SDK可以简化接入支付的速度

java
本文档内容版权属于济南易杯光年软件技术有限公司