概要描述:
除付款码支付场景以外,服务商系统先调用该接口在海科平台预下单,后再按Native、JSAPI等不同场景获取不同的返回值进行支付。
JSAPI支持微信公众号支付、微信小程序支付、支付宝生活号支付、银联JS支付。服务商可通过该接口包装成静态码收款、动态码收款等收单业务,前端公众号、小程序等页面需要服务商自行包装。
注:使用自己主体appid的服务商,微信支付宝业务需要按官方文档要求授权获取openid,银联JS使用海科提供的接口两种方式二选一获取,文档链接如下:
1)微信公众号(子商户):
获取userid(openid): https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_4
调js支付: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
2)支付宝生活号
获取userid: https://docs.alipay.com/fw/api/105942
调js支付:https://alipay.open.taobao.com/docs/doc.htm?&docType=1&articleId=105591
3)银联js支付
重定向方式获取userid:http://39.106.84.215:8181/docs/saas/saas-1bjio41r2aqmm
POST方式获取userid:http://39.106.84.215:8181/docs/saas/saas-1ermmm684v7sa
请求参数(O-非必传 ,M-必传,C-选传)
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
req_id |
请求流水号 |
String(32) |
请求流水号,每次请求唯一 |
|
M |
merch_no |
海科商户编号 |
String(32) |
海科商户编号 |
|
M |
pay_type |
支付类型 |
String(10) |
WX:微信支付 ALI:支付宝支付 UNIONQR:云闪付 |
|
M |
pay_mode |
支付方式 |
String(16) |
NATIVE:扫码支付 JSAPI:JSAPI支付 |
|
M |
appid |
公众账号ID |
String(32) |
微信支付时使用:微信分配的公众账号 ID |
|
C |
openid |
用户标识 |
String(128) |
pay_mode=JSAPI时此参数必传 |
|
C |
sub_mch_id |
报备商户编号 |
String(32) |
通道子商户号(ATU商户号) |
|
O |
out_trade_no |
服务商支付订单号 |
String(32) |
服务商内部订单号(同一服务商下唯一) |
|
M |
total_amount |
交易金额 |
String(12) |
上送银联的交易金额(单位:元,支持2位小数) |
|
M |
pn |
SAAS终端号 |
String(32) |
SAAS终端号 |
|
M |
limit_pay |
限制贷记卡支付 |
String(10) |
0:不限制贷记卡支付 1:禁止使用贷记卡支付。 不上送此参数时,limit_pay默认为0,即:不限制贷记卡支付 |
|
O |
ledger_biz |
分账业务信息 |
JSON |
分账业务信息 |
|
O |
notify_url |
异步通知地址 |
String(128) |
交易成功异步通知地址 |
|
O |
remark |
备注 |
String(100) |
交易备注 |
|
O |
longitude |
经度 |
String(10) |
经度 |
|
O |
latitude |
纬度 |
String(10) |
纬度 |
|
O |
extend_params |
原生请求参数 |
JSON |
原生参数,透传给通道的参数 |
|
O |
terminal_info |
终端信息 |
JSON |
259终端信息 |
|
O |
分账业务信息:ledger_biz
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
ledger_type |
分账类型 |
String |
REALTIME_SETTLE:实时分账 DELAY_SETTLE:延时分账 BALANCE_SPLIT:余额分账 |
REALTIME_SETTLE |
M |
ledger_relation |
分账关系组 |
JSONArray |
分账关系组,最多支持10组,实时分账时该参数必传。 |
|
O |
分账关系组:ledger_relation
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
receive_no |
收账方(海科商户号) |
String |
收账方(海科商户号) |
833102158124164 |
M |
amt |
分账金额 |
String |
分账金额(单位:元) |
1 |
M |
259终端信息:terminal_info
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
location |
终端实时经纬度信息 |
String |
受理终端设备实时经纬度信息,格式为纬度/经度, +表示北纬、东经,-表示南纬、西经 |
+37.12/-121.213 |
O |
device_ip |
商户端设备 IP |
String |
商户端终端设备 IP 地址。注: 如经、维度信息未上送,该字段必送。 |
|
O |
encrypt_rand_num |
加密随机因子 |
String(10) |
仅在被扫支付类交易报文中出现:若付款码为 19 位数字,则取后6 位;若付款码为 EMV二维码,则取其tag 57 的卡号/token 号的后 6 位 |
|
O |
secret_text |
密文数据 |
String(16) |
仅在被扫支付类交易报文中出现:64bit 的密文数据, 对终端硬件序列号和加密随机因子加密后的结果。本子域取值为: 64bit 密文数据进行base64 编码后的结果。加密前8位,加密后应为12位 |
|
O |
app_version |
应用程序版本号 |
String(8) |
终端应用程序的版本号。应用程序变更应保证版本号不重复。当长度不足时,右补空格。 |
|
O |
微信原生请求参数:extend_params
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
body |
商品描述 |
String(127) |
商品简单描述,该字段请按照规范传递 |
腾讯充值中心-QQ会员充值 |
O |
goods_tag |
微信订单优惠标记 |
String(32) |
微信订单优惠标记,代金券或立减优惠功能的参数 |
|
O |
device_info |
微信设备号 |
String(32) |
终端设备号(门店号或收银设备ID),注意:PC网页或JSAPI支付请传”WEB” |
|
O |
detail |
微信商品详情 |
JSON |
微信单品优惠功能 |
|
O |
微信单品优惠功能:detail
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
cost_price |
订单原价 |
int |
1.商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。 |
608800 |
O |
receipt_id |
商品小票ID |
String(32) |
商家小票ID |
|
O |
goods_detail |
单品列表 |
JSONArray |
单品信息,使用Json数组格式提交 |
|
O |
微信单品列表:goods_detail
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
goods_id |
商品编码 |
String(32) |
由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 |
|
M |
wxpay_goods_id |
微信侧商品编码 |
String(32) |
微信支付定义的统一商品编号(没有可不传) |
|
O |
goods_name |
商品名称 |
String(256) |
商品的实际名称 |
|
O |
quantity |
商品数量 |
int |
用户购买的数量 |
|
M |
price |
商品单价 |
int |
单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔100元的订单使用了商场发的纸质优惠券100-50,则活动商品的单价应为原单价-50) |
528800 |
M |
支付宝原生请求参数:extend_params
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
subject |
订单标题 |
String(256) |
订单标题。注意:不可使用特殊字符,如 /,=,& 等。 |
Iphone6 16G |
O |
operator_id |
商户操作员编号 |
String(28) |
商户操作员编号。新当面资金授权场景必填。 |
yx_001 |
O |
store_id |
商户门店编号 |
String(32) |
商户门店编号。新当面资金授权场景必填。 |
NJ_001 |
O |
terminal_id |
商户机具终端编号 |
String(32) |
商户机具终端编号 |
NJ_T_001 |
O |
goods_detail |
订单包含的商品列表信息 |
JSONArray |
订单包含的商品列表信息,json数组格式。 |
|
O |
extend_params |
业务扩展参数 |
JSON |
业务扩展参数 |
|
O |
支付宝订单包含的商品列表信息:goods_detail
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
goods_id |
商品编号 |
String(32) |
|
apple-01 |
M |
goods_name |
商品名称 |
String(256) |
商品的实际名称 |
|
M |
quantity |
商品数量 |
int |
用户购买的数量 |
|
M |
price |
商品单价 |
int |
商品单价,单位为元 |
2000 |
M |
goods_category |
商品类目 |
String(24) |
商品类目 |
34543238 |
O |
categories_tree |
商品类目树 |
String(128) |
商品类目树,从商品类目根节点到叶子节点的类目id组成,类目id值使用 |
分割 |
|
body |
商品描述信息 |
String(1000) |
商品描述信息 |
|
O |
show_url |
商品的展示地址 |
String(400) |
商品的展示地址 |
|
O |
支付宝业务扩展参数:extend_params
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
sys_service_provider_id |
系统商编号 |
String(64) |
该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID |
|
O |
hb_fq_num |
花呗分期数 |
String |
使用花呗分期要进行的分期数 |
|
O |
hb_fq_seller_percent |
花呗分期数手续费 |
String |
使用花呗分期需要卖家承担的手续费比例的百分值,传入100 代表100% |
|
O |
industry_reflux_info |
行业数据回流信息 |
String(512) |
行业数据回流信息, 详见:地铁支付接口参数补充说明 |
|
O |
card_type |
卡类型 |
String(32) |
卡类型 |
|
O |
云闪付原生请求参数:extend_params
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
pnrInsIdCd |
银联服务商机构号 |
String |
银联服务商机构号,参加银联云闪付活动时上送 |
|
O |
acqAddnData |
收款方附加数据 |
JSON |
收款方附加数据 |
|
O |
qrCode |
二维码地址 |
String |
qrCode必传的值是展示的行业码的内容的值,JSAPI时必传。例如:扫码点餐场景下,qrCode就是传桌面上张贴的二维码的url值。 |
|
O |
userAuthCode |
用户授权码 |
String |
用户授权码,JSAPI时必传 |
|
O |
(银联二维码)收款方附加数据:acqAddnData
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
orderInfo |
订单信息 |
JSON |
订单明细内容,如订单标 题、订单描述等 |
|
O |
goodsInfo |
商品信息 |
JSONArray |
商品明细内容 |
|
O |
(银联二维码)订单信息:orderInfo
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
title |
标题 |
String |
标题 |
|
M |
description |
订单描述 |
String |
订单描述 |
|
O |
dctAmount |
可优惠金额 |
String |
当前订单可以参与优惠计算的金额 |
|
O |
addnInfo |
附加信息 |
String |
内容自定义 |
|
O |
(银联二维码)商品信息:goodsInfo
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
id |
标题 |
String |
标题 |
|
M |
name |
商品名称 |
String |
订单描述 |
|
M |
price |
商品单价 |
String |
以分为单位 |
|
M |
quantity |
商品数量 |
String |
商品数量 |
|
M |
category |
商品类目 |
String |
商品类目 |
|
O |
addnInfo |
附加信息 |
String |
附加信息 |
|
O |
请求示例:
{
"agent_no": "IS88888888",
"req_id": "147258369",
"merch_no": "83388888888",
"pay_type": "ALI",
"pay_mode": "NATIVE",
"pn": "WZ000001",
"out_trade_no": "123456789",
"total_amount": "1",
"ledger_biz": {
"ledger_relation": [
{
"receive_no": "833102158124164",
"amt": "0.01"
},
{
"receive_no": "833102158124165",
"amt": "0.01"
}
],
"ledger_type": "REALTIME_SETTLE"
},
"sign": "5F154E14FDC459ED5DF628B56F61A609"
}
返回参数(O-非必传 ,M-必传,C-选传)
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
result_code |
响应码 |
String |
10000代表成功 |
|
M |
result_msg |
响应信息 |
String |
|
|
M |
agent_no |
服务商编号 |
String |
|
|
M |
merch_no |
海科商户编号 |
String |
海科商户编号 |
|
M |
pay_type |
支付类型 |
String |
WX:微信支付 ALI:支付宝支付 UNIONQR:云闪付 |
|
M |
pay_mode |
支付方式 |
String |
NATIVE:扫码支付 JSAPI:JSAPI支付 |
|
M |
out_trade_no |
服务商支付订单号 |
String |
|
|
M |
trade_no |
海科支付订单号 |
String |
|
|
M |
pay_type=WX时返回:
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
code_url |
二维码链接 |
String |
pay_mode=NATIVE时返回,可将该参数值生成二维码展示出来进行扫码支付 |
|
C |
wc_pay_data |
微信JS 调用数据 |
String |
pay_mode=JSAPI时返回,用于执行 JS 支付 |
|
C |
pay_type=ALI时返回:
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
ali_qr_code |
二维码链接 |
String |
pay_mode=NATIVE时返回,可将该参数值生成二维码展示出来进行扫码支付 |
|
C |
ali_trade_no |
支付宝交易号 |
String |
pay_mode=JSAPI时返回,用于执行 JS 支付 |
|
C |
pay_type=UNIQR时返回:
参数 |
参数名称 |
类型 |
参数说明 |
样例 |
可空 |
uniqr_qr_code |
二维码链接 |
String |
pay_mode=NATIVE时返回,可将该参数值生成二维码展示出来进行扫码支付 |
|
C |
uniqr_redirect_url |
云闪付JS |
String |
pay_mode=JSAPI时返回,用于执行 JS 支付 |
|
C |
返回示例:
{
"agent_no": "IS88888888",
"merch_no": "83388888888",
"pay_type": "ALI",
"pay_mode": "NATIVE",
"out_trade_no": "123456789",
"trade_no": "AL88888888",
"ali_qr_code": "https://qr.alipay.com/bax00449ihxp9epamcwn50c2",
"return_code": "SUCCESS",
"return_msg": "成功",
"result_code": "10000",
"result_msg": "成功",
"sign": "1032A57E96E4048B27EC2A5C3CE5E663"
}
文档更新时间: 2024-12-11 14:23 作者:admin