聚合被扫支付API(微信、支付宝、银联二维码)

业务功能
收银员使用扫码设备读取用户微信/支付宝APP付款码/银联二维码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付对用户进行收款。
被扫免密情况下,同步会返回微信、支付宝的attach原生参数,非免密情况下不返回
交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
测试url:
http://47.95.131.62:8080/api/v1/pay/polymeric/passivepay

请求参数(O-非必传 ,M-必传):

参数 参数名称 类型 参数说明 样例 可空
merch_no 商户编号 String 商户在SaaS平台的编号 a10253390 M
channel_no 渠道编号 String 服务商通过海科在(支付宝/微信)申请的渠道编号 O
channel_merch_no 渠道商户编号 String 商户在(支付宝/微信)申请的编号 O
out_trade_no 服务商交易订单号 String 服务商的交易订单编号(同一服务商下唯一) 161018121614000624679888 M
total_amount 订单金额 String 订单总金额,以元为单位 100 M
auth_code 支付授权码 String 支付授权码 130022933989643883 M
appid 微信公众号appid String 微信适用,非必填 O
ledger_type 分账类型 String 不传默认不分账
REALTIME_SETTLE:实时分账
DELAY_SETTLE:延时分账
如果上送此字段,需要保证服务商分账业务已开通,否则不允许交易 O
ledger_relation 分账交易关系组 JSONArray 分账交易关系组(v1.18增加) ledger_flag为Y时必传 O
notify_url 通知地址 String 支付成功后的通知地址 http://test.mdun.cn/jd/pay/notice O
sn 厂商终端号 String O
pn SAAS终端号 String SAAS终端号 259号文要求,通过商户终端绑定接口获得 M
remark 交易备注 String(255) O
limit_pay 限制贷记卡支付 String (v1.19增加)
0:不限制贷记卡支付
1:禁止使用贷记卡支付。
不上送此参数时,limit_pay默认为0,即:不限制贷记卡支付
O
subsidy_info 手续费补贴信息 JSON 1、需要保证服务商补贴业务已开通,否则不允许交易
2、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送

O
market_subsidy_agent_no 营销补贴代理商编号 Sting 1、涉及到多营销主体补贴时该字段必填。
2、运营提供营销补贴代理商编号
C
market_subsidy_info 营销补贴信息 JSONArray 营销补贴信息详情,单笔交易支持多个补贴方且单笔交易总补贴金额需小于订单金额。
注意:服务商需开通营销补贴功能,且补贴金额需小于等于营销补贴账户余额
O
goods_name 商品名称 String(256) 商品名称(仅限支付宝微信被扫,银联二维码上送字段也不会被使用) 矿泉水 O
goods_tag 订单优惠标记 String 订单优惠标记,使用代金券或立减优惠功能时需要的参数,说明详见微信参数代金券或立减优惠 sz_haihui O
goods_detail 商品详情 JSONArray 商品详细描述,参考下表(商户信息:goods_detail) [ { "goods_id": "商品编码", "wxpay_goods_id": "1001", "goods_name": "", "quantity": 1, "price": 528800 }, { "goods_id": "商品编码", "wxpay_goods_id": "1002", "goods_name": "iPhone6s 32G", "quantity": 1, "price": 608800 } ] O
operator_id 商户操作员编号 String 支付宝可用 001 O
store_id 商户门店编号 String 支付宝可用 001 O
terminal_id 商户机具终端编号 String 支付宝可用 11111111 O
device_info 设备号 String 微信可用 11111111 O
termid 银联终端号 String 银联终端号,参加银联云闪付活动时上送 11111111 O
pnrInsIdCd 银联服务商机构号 String 银联服务商机构号,参加银联云闪付活动时上送 11111111 O
acq_addn_data (银联二维码)收款方附加数据 JSON 涉及单品营销或扫码点餐业务,交易需要在此上送商品信息 O
previous_trade_no 前一笔SaaS平台返回的订单编号 String SaaS平台的交易订单编号 AL200325141943092770216077 O
time_consume 交易耗时 String 前一笔交易耗时(请求开始到请求结束),毫秒(ms) 200 O
net_type 网络类型 String 前一笔交易时使用的网络类型(2G,4G,WIFI) 2G O
scene_info 场景信息 object 微信适用,非必填项,该字段用于上报场景信息,目前支持上报实际门店信息。该字段为 JSON 对象数据,对象格式为{"store_info":{"id":"门店 ID","name": "名称","area_code": " 编 码","address": " 地 址" }} {"store_info":{"id":"门店 ID","name": "名称","area_code": " 编 码","address": " 地 址" }} O
terminal_info 终端信息 object 【259新增】商户侧受理终端信息,字段详 细说明参考下文。 O

手续费补贴信息subsidy_info 字段说明

参数 参数名称 类型 参数说明 样例 可空
fee_subsidy_agent_no 手续费补贴代理商编号 Sting 1、涉及到多营销主体补贴时该字段必填。2、运营提供手续费补贴代理商编号 C
fee_subsidy_party 手续费补贴方账户 String 1、手续费补贴方联系商务或者运营获取 M
fee_subsidy_rate 手续费补贴费率 object 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送
2、手续费补贴费率不能大于(可以等于)商户该笔交易手续费费率
3、费率单位:费率值0.38%,则上送0.38 , 封顶金额以元为单位:1.5元,则上送1.5
银联二维码手续费补贴时上送一组费率 {"union_debit_rate":"银联二维码借记卡费率","union_debit_max":"银联二维码借记卡手续费封顶","union_credit_rate":"银联二维码贷记卡费率","union_mix_rate":"银联二维码1000元以下包括1000元费率"} C
fee_execute_rate 手续费执行费率 object 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送
2、手续费执行费率只能小于(不可以等于)商户该笔交易手续费费率
3、商户该笔交易费率减去手续费执行费率就是该笔交易补贴费率
4、费率单位:费率值0.38%,则上送0.38 , 封顶金额以元为单位:1.5元,则上送1.5
银联二维码手续费补贴时上送一组费率 {"union_debit_rate":"银联二维码借记卡费率","union_debit_max":"银联二维码借记卡手续费封顶","union_credit_rate":"银联二维码贷记卡费率","union_mix_rate":"银联二维码1000元以下包括1000元费率"} C
fee_subsidy_amount 手续费补贴金额 String 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送
2、手续费补贴金额不能大于手续费金额(可以等于手续费金额)
3、传递补贴手续费金额大于该笔手续费金额,按照该笔交易实际手续费金额补贴
4、金额以元为单位:1.5元,则上送1.5
C
营销补贴信息:market_subsidy_info
参数 参数名称 类型 参数说明 样例 可空
party 营销补贴账户 String 在海科开通的营销补贴账户号 M
amt 营销补贴金额 String 营销补贴金额(单位:元) 20 M
分账关系组:ledger_relation
参数 参数名称 类型 参数说明 样例 可空
receive_no 收账方(海科商户号) String 收账方(海科商户号)ledger_relation组内参数 M
amt 分账金额 String 分账金额(单位:元) 20 M
商品信息:goods_detail
参数 参数名称 类型 参数说明 样例 可空
goods_id 商品的编号 String 微信支付宝通用 M
goods_name 商品名称 String 微信支付宝通用 M
quantity 商品数量 int 微信支付宝通用 M
price 商品单价 int/price 微信单位为分(使用int上送),支付宝单位为元(使用price上送) M
goods_category 商品类目 String 支付宝参数 O
categories_tree 商品类目树 String 支付宝参数 O
body 商品描述信息 String 支付宝参数 O
show_url 商品的展示地址 String 支付宝参数 O
(银联二维码)收款方附加数据:acq_addn_data
参数 参数名称 类型 参数说明 样例 可空
orderInfo 订单信息 JSON 订单明细内容,如订单标 题、订单描述等 O
goodsInfo 商品信息 JSONArray 商品明细内容 O
(银联二维码)订单信息:orderInfo
参数 参数名称 类型 参数说明 样例 可空
title 标题 String 标题 M
description 订单描述 String 订单描述 O
dctAmount 可优惠金额 String 当前订单可以参与优惠计算的金额 O
addnInfo 附加信息 String 银联扫码点餐相关参数,格式参考银联侧要求{brandId=值&storeId=值&tableNo=值} O
(银联二维码)商品信息:goodsInfo
参数 参数名称 类型 参数说明 样例 可空
id 标题 String 标题 M
name 商品名称 String 订单描述 M
price 商品单价 String 以分为单位 M
quantity 商品数量 String M
category 商品类目 String O
addnInfo 附加信息 String O

终端信息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

请求示例:

{
    "accessid": "cpostest",
    "merch_no": "88888888",
    "out_trade_no": "20200325141703575",
    "total_amount": "26",
    "auth_code": "287667597892433290",
    "notify_url": "http://47.95.131.62:8080/saas/trade/success/notice/test",
    "sn": "WSY196",
    "pn": "S0000053",
    "remark": "备注",
    "limit_pay": "0",
    "ledger_relation": [
        {
            "receive_no": "833584358120001",
            "amt": "1"
        }
    ],
    "goods_name": "矿泉水",
    "previous_trade_no":"AL200325141943092770216077",
    "time_consume":"200",
    "net_type":"2G",
    "sign": "50D6DFBB25DA2181A61AA1FEBFED8AC8"
}

说明:
参数 previous_trade_no 和 time_consume 要一起上传,单独上传任意一个没有意思,如果没有信息,可以不传

返回参数:

参数 参数名称 类型 参数说明 样例 可空
out_trade_no 服务商交易订单号 String 服务商的交易订单编号 161018121614000624679888 M
trade_no 交易订单号 String SaaS平台的交易订单编号 M
channel_trade_no 凭证条码订单号 String 凭证条码订单号(v1.24增加) 161018121614000624679888 M
trade_type 被扫类型 String 微信支付:WX 支付宝支付:ALI 银联二维码支付:UNIONQR M
trade_status 交易状态(v1.40改为都返回) String 1:交易成功

2:交易失败
3:交易进行中

1 O
accept_status 业务受理状态(仅银联二维码返回) String 1:交易已受理
2:交易受理失败
本字段只是交易的受理状态,并非支付结果,仅表示当前交易在银联方是否已经受理。最终支付结果需要调用交易查询接口或者等候支付成功的异步通知
1 O
error_code 交易错误码 String 交易错误码 80002 O
error_msg 交易错误信息 String 交易的错误信息 授权码过期请刷新 O
trade_end_time 支付完成时间 String 微信支付宝取通道返回的支付完成时间,银联二维码取接收成功通知的时间 2019-11-18 14:11:23 O
attach 支付宝/微信原生参数 JSON O

微信原生参数:attach

参数 参数名称 类型 参数说明 样例 可空
sub_appid 子商户公众账号ID String wx8888888888888888 O
sub_mch_id 子商户号 String 1900000109 M
device_info 设备号 String O
sub_openid 用户子标识 String O
trade_type 交易类型 String 调用接口提交的交易类型,取值如下 JSAPI,NATIVE,APP,MICROPAY M
trade_state 交易状态 String SUCCESS-支付成功
REFUND-转入退款
NOTPAY-未支付
CLOSED-已关闭
REVOKED- 已撤销(刷卡支付)
USERPAYING-用户支付中
PAYERROR-支付失败(其他原因,如银行返回失败)
M
bank_type 付款银行 String CMC M
promotion_detail 优惠券详情 String “[{“amount”:100,”merchant_contribute”:”100”,”other_contribute”:”0”,”promotion_id”:”15171754411”,”type”:”DISCOUNT”,”wxpay_contribute”:”0”,”scope”:”GLOBAL”,”activity_id”:”15079378”,”name”:”翠微测试”}]” O
total_fee 标价金额 int 订单总金额,单位为分,只能为整数 888 M
fee_type 标价币种 String CNY O
settlement_total_fee 应结订单金额 String 单位:分 O
cash_fee 现金支付金额 String 单位:分 M
cash_fee_type 现金支付币种 String CNY O
transaction_id 银联/网联订单号 String M
out_trade_no 商户订单号 String M
time_end 支付完成时间 String M
trade_state_desc 交易状态描述 String M
coupon_fee 代金券金额 String 单位:分 O
微信优惠参数:promotion_detail
参数 参数名称 类型 参数说明 样例 可空
promotion_id 券ID String 券或者立减优惠id 109519 M
name 优惠名称 String 优惠名称 单品惠-6 O
scope 优惠范围 String GLOBAL- 全场代金券 SINGLE- 单品优惠 SINGLE O
type 优惠类型 String COUPON- 代金券,需要走结算资金的充值型代金券,(境外商户券币种与支付币种一致)DISCOUNT- 优惠券,不走结算资金的免充值型优惠券,(境外商户券币种与标价币种一致 DISCOUNT O
amount 优惠券面额 String 用户享受优惠的金额 5 M
activity_id 活动ID String 在微信商户后台配置的批次ID 931386 M
wxpay_contribute 微信出资 String 特指由微信支付商户平台创建的优惠,出资金额等于本项优惠总金额,单位为分 0 O
merchant_contribute 商户出资 String 特指商户自己创建的优惠,出资金额等于本项优惠总金额,单位为分 0 O
other_contribute 其他出资 String 其他出资方出资金额,单位为分 7 O
goods_detail 单品列表 Json 单品信息,使用Json格式 O
单品信息:goods_detail
参数 参数名称 类型 参数说明 样例 可空
goods_id 商品编码 String 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 商品编码 M
goods_remark 商品备注 String goods_remark为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。 1001 O
discount_amount 商品优惠金额 String 单品的总优惠金额,单位为:分 3 M
quantity 商品数量 int 用户购买的数量 1 M
price 商品价格 int 单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔100元的订单使用了商场发的纸质优惠券100-50,则活动商品的单价应为原单价-50) 528800 M

支付宝原生参数:attach

参数 参数名称 类型 参数说明 样例 可空
trade_no 银联/网联交易号 String 2013112011001000000121536 M
out_trade_no 原支付订单商户订单号 String M
buyer_logon_id 买家支付宝账号 String 159****5620 M
trade_status 交易状态 String 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 TRADE_SUCCESS(交易支付成 功)、TRADE_FINISHED(交易结束,不可退款) M
total_amount 订单交易金额 Price 交易的订单金额,单位为元,两位小数该参数的值为支付时传入的 total_amount M
buyer_pay_amount 买家实付金额 String 单位:元 O
invoice_amount 交易中可给用户开具发票的金额 Price O
alipay_store_id 支付宝店铺编号 String O
receipt_amount 商家入账金额(未扣除手续费) String 单位:元 O
store_id 商户门店编号 String O
terminal_id 商户机具终端编号 String O
fund_bill_list 资金渠道信息 JSONArray [{“amount”:”36.00”,”fund_channel”:”ALIPAYACCOUNT”}] O
store_name 交易门店名称 String O
buyer_user_id 买家在支付宝的用户id String M
discount_goods_detail 本次交易支付所使用的单品券优惠的商品优惠信息 String [{“goods_id”:”STANDARD1026181538”,”goods_name”:”雪 碧”,”discount_amount”:”100.00”,”voucher_id”:”2015102600073002039000002D5O”}] O
voucher_detail_list 本交易支付时使用的所有优惠券信息 JSONArray 详见下文说明 O
mdiscount_amount 商家入账金额 String 单位:元 O
discount_amount 平台优惠金额 String 单位:元 O
资金渠道信息:fund_bill_list
参数 参数名称 类型 参数说明 样例 可空
fund_channel 交易使用的资金渠道 String ALIPAYACCOUNT M
bank_code 银行卡支付时的银行代码 String CEB O
amount 该支付工具类型所使用的金额 String 单位:元 O
fund_channel 交易使用的资金渠道 String 单位:元 O
real_amount 渠道实际付款金额 String 单位:元 O
优惠券信息:voucher_detail_list
参数 参数名称 类型 参数说明 样例 可空
id 券id String M
name 券名称 String M
type 类型 String ALIPAY_FIX_VOUCHER-全场代金券
ALIPAY_DISCOUNT_VOUCHER-折扣券
ALIPAY_ITEM_VOUCHER- 单品优惠
注:不排除将来新增其他类型的可能,商家接入时注意兼容性避免硬编码
M
amount 券面额 Price 优惠券面额,它应该会等于商家出资加上其他出资方出资 M
merchant_contribute 商家出资 Price 商家出资(特指发起交易的商家出资金额) O
other_contribute 其他出资 Price 其他出资方出资金额,可能是支付宝,可能是品牌商,或者其他方,也可能是他们的一起出资 O
memo 备注 String O

返回示例:

{
    "out_trade_no": "20200325141703575",
    "channel_trade_no": "010920032514191297612MC",
    "trade_no": "AL200325141943092770216077",
    "trade_status": 3,
    "trade_type": "ALI",
    "return_code": 10000,
    "sign": "9FECADCB0C6902A0539CBACB05F9BCDA"
}
文档更新时间: 2024-03-14 11:28   作者:admin