全部文档 / 【统一】被扫支付 / 提交被扫支付API
提交被扫支付API

业务功能

收银员使用扫码设备读取用户微信/支付宝/云闪付等APP付款码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付对用户进行收款

 

交互模式

请求:后台请求交互模式

返回结果:后台请求交互模式

 

关于调用支付接口后相关情况的处理方案:当调用扣款接口返回支付中或未知状态,需要调用查询接口查询订单实际支付状态 。 当遇到用户超过日限额需要输入密码返回“支付中”的状态,建议 5 秒调一次查询,调用 6 次后还未成功作支付超时处理。


①支付请求后:statusresult_code字段返回都为0时,交易获得终态,通过pay_result字段判定订单是否支付成功 ;

              另外银联二维码交易返回的err_code为两位数字,含义较特殊:00 表示交易 成功,04和06 代表交易需要继续查询,其他数字都是明确代表交易失败。

                     err_code取值为USERPAYING代表用户输密中,需要继续查询;

②支付请求后:返回的参数need_queryY或没有该参数返回时,必须调用订单查询接口进行支付结果确认(查询接口调用建议参照第④点);

③支付请求后:返回的参数need_queryN时,可明确为失败订单;

④调用订单查询接口建议:查询6次每隔5秒查询一次(具体的查询次数和时间也可自定义,建议查询时间不低于30秒)6次查询完成,接口仍未返回成功标识(即查询接口返回的trade_state不是SUCCESS)则调用撤销接口;

 

请求参数列表

请求urlhttps://qra.95516.com/pay/gateway

POST XML 内容体进行请求

字段名

变量名

必填

类型

说明

接口类型

service

String(32)

接口类型:unified.trade.micropay

版本号

version

String(8)

版本号,version默认值是2.0

字符集

charset

String(8)

可选值 UTF-8 ,默认为 UTF-8

签名方式

sign_type

String(12)

签名类型,取值范围:

MD5(默认);

SM3;

商户号

mch_id

String(32)

商户号,由平台分配

商户订单号

out_trade_no

String(32)

商户系统内部的订单号 ,532个字符、 只能包含字母数字或者下划线,区分大小写,每次下单请求确保在商户系统唯一

设备号

device_info

String(32)

终端设备号,商户自定义

商户及商品名称

body

String(127)

商户及商品名称

单品信息

goods_detail

String (6000)

单品优惠活动该字段必传,详见单品优惠说明且必须按照规范上传,JSON格式

公众账号ID 【微信】

sub_appid 

 

String(32)

微信公众平台基本配置中的AppID(应用ID),传入后支付成功可返回对应公众号下的用户openid

附加信息

attach

String(127)

附加数据,支付成功后在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据

服务商机构标识码

pnrInsIdCd

String(11)

银联服务商机构标识码

电子发票【微信】

need_receipt

boolean

需要和微信公众平台的发票功能联合,传入true时,微信支付成功消息和支付详情页将出现开票入口[新增need_receipt【适用于微信】]

总金额

total_fee

Int

总金额,以分为单位,不允许包含任何字、符号

终端IP

mch_create_ip

String(16)

订单生成的机器 IP

授权码

auth_code

String(128)

扫码支付授权码, 设备读取用户展示的条码或者二维码信息

订单生成时间

time_start

String(14)

订单生成时间,格式为yyyymmddhhmmss,如2009122591010秒表示为20091225091010。时区为GMT+8 beijing。该时间取自商户服务器。注:订单生成时间与超时时间需要同时传入才会生效。

订单超时时间

time_expire

String(14)

订单失效时间,格式为yyyymmddhhmmss,如2009122791010秒表示为20091227091010。时区为GMT+8 beijing。该时间取自商户服务器。注:订单生成时间与超时时间需要同时传入才会生效。

收银员

op_user_id

String(32)

操作员帐号,默认为商户号

门店编号

op_shop_id

String(32)


终端编号

op_device_id

String(8)

终端设备编号,收单机构为商户终端分配的唯一编号。

(取值同terminal_info中terminal_id字段)

商品标记

goods_tag

String(32)

商品标记

终端信息

terminal_info

String

商户侧受理终端信息,字段详

细说明参考统一被扫其他扩展字段说明

随机字符串

nonce_str

String(32)

随机字符串,不长于 32 

签名

sign

String(32)

MD5签名结果,详见安全规范

授权交易机构

sign_agentno

String(12)

授权交易的服务商机构代码,商户授权给服务商交易的情况下必填,签名使用服务商的密钥

连锁商户号

groupno

String(15)

连锁商户为其下门店发交易的情况必填,签名使用连锁商户的密钥

 

返回结果

数据按XML的格式实时返回

 

字段名

变量名

必填

类型

说明

版本号

version

String(8)

版本号,version默认值是2.0

字符集

charset

String(8)

可选值 UTF-8 ,默认为 UTF-8

签名方式

sign_type

String(8)

签名类型,取值范围:

MD5(默认);

SM3;

授权交易机构

sign_agentno

String(12)

授权交易的服务商机构代码,商户授权给服务商交易的情况下返回,签名使用服务商的密钥

连锁商户号

groupno

String(15)

连锁商户为其下门店发交易的情况返回,签名使用连锁商户的密钥

返回状态码

status

String(16)

0表示成功,非0表示失败此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 、pay_result共同来判断

返回信息

message

String(128)

返回信息,如非空,为错误原因签名失败参数格式校验错误

网关返回码

code

String(32)

网关返回码

查询判断

need_query

String(1)

用来判断是否需要调用查询接口,值为Y时需要,值为N时不需要

以下字段在 status  0的时候有返回

业务结果

result_code

String(16)

0表示成功,非0表示失败,交易终态请以pay_result为准

商户号

mch_id

String(32)

商户号,由平台分配

设备号

device_info

String(32)

终端设备号

随机字符串

nonce_str

String(32)

随机字符串,不长于 32 

错误代码

err_code

String(32)

具体错误码请看文档最后错误码列表

其中USERPAYING代表用户输密中,需要继续查询;

错误代码描述

err_msg

String (128)

结果信息描述

签名

sign

String(32)

MD5签名结果,详见安全规范

以下字段在 status  result_code 都为 0的时候有返回

商户appid

appid

String(32)

受理商户appid

用户标识

openid

String(128)

用户在受理商户 appid 下的唯一标识

微信用户全局标识

user_id

String(128)

微信用户唯一标识码

用户标识

sub_openid

String(128)

用户在子商户appid下的唯一标识

交易类型

trade_type

String(32)

pay.weixin.micropay——微信被扫支付pay.alipay.micropay——支付宝被扫支付pay.unionpay.micropay——银联被扫支付

是否关注公众账号

is_subscribe

String(1)

用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效

支付结果

pay_result

Int

支付结果:0—成功;其它失败(支付结果以此字段为准)

支付结果信息

pay_info

String(64)

支付结果信息,支付成功时为空

平台订单号

transaction_id

String(32)

平台交易号

第三方订单号

out_transaction_id

String(32)

第三方订单号

子商户是否关注

sub_is_subscribe

String(1)

用户是否关注子公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效

子商户appid

sub_appid

String

子商户appid

商户订单号

out_trade_no

String(32)

商户系统内部的定单号,32个字符内、可包含字母

总金额

total_fee

Int

总金额,以分为单位,不允许包含任何字、符号

现金支付金额【微信】 

cash_fee

Int

现金支付金额订单现金支付金额,详见支付金额

免充值优惠金额  

mdiscount

Int

免充值优惠金额,以分为单位

开票金额 【支付宝】

invoice_amount 

String(11) 

用户在交易中支付的可开发票的金额

现金券金额

coupon_fee

Int

现金券支付金额<=订单总金额, 订单总金额-现金券金额为现金支付金额,以分为单位

优惠详情【微信】

promotion_detail

String(6000)

微信优惠详情,透传微信官方营销详情字段,json格式字符串

交易支付使用的资金渠道 【支付宝】

fund_bill_list


示例值{"amount":"0.01","fundChannel":"PCREDIT"}


└ fund_channel

String(32)

交易使用的资金渠道,详见 支付渠道列表


└ amount

Price(32)

该支付工具类型所使用的金额

买家支付宝账号【支付宝】  

buyer_logon_id

String(64)

买家支付宝账号

买家付款金额【支付宝】

buyer_pay_amount

Price

买家付款的金额,单位为元,两位小数。

买家支付宝用户ID【支付宝】

buyer_user_id

String(28)

买家在支付宝的用户id

集分宝付款金额【支付宝】

point_amount

Price

使用集分宝付款的金额,单位为元,两位小数。

实收金额【支付宝】

receipt_amount

Price

实收金额,单位为元,两位小数。

优惠详情【支付宝】

discount_goods_detail

String(1024)

优惠详情,内容见【单品优惠活动字段说明】

货币种类

fee_type

String(8)

货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY

附加信息

attach

String(127)

商家数据包,原样返回

付款银行

bank_type

String(16)

银行类型

唯一识别码

uuid

String(64)

唯一识别码

银行订单号

bank_billno

String(32)

银行订单号

支付完成时间

time_end

String(14)

支付完成时间,格式为yyyyMMddhhmmss,如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自平台服务器