Files
hfb_sys/docs/乐刷商户交易.md
T

117 KiB
Raw Blame History

API目录

分类 接口中文名 接口英文名 描述
下单接口 统一下单接口 /cgi-bin/lepos_pay_gateway
.cgi
主扫,C扫B。消费者主动扫码。
条码支付 条码支付 /cgi-bin/lepos_pay_gateway.cgi 被扫,B扫C。消费者出示付款码被扫。
交易结果 支付结果通知 / 返回支付结果。影响推送的因素较多,建议接交易结果查询接口。
交易结果查询 /cgi-bin/lepos_pay_gateway.cg 查询交易结果
退款 退款 /cgi-bin/lepos_pay_gateway.cgi 进行退款操作
退款查询 /cgi-bin/lepos_pay_gateway.cgi 查询退款信息
退款结果通知 查看退款结果
订单关闭接口 订单关闭 /cgi-bin/lepos_pay_gateway.cgi 关闭订单
授权码 授权码查询用户openid /cgi-bin/lepos_pay_gateway.cgi 查询openid
授权码获取银联云闪付用户ID 获取云闪付用户ID
异步通知 刷卡、扫码支付异步通知

****数字签名

(1)为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名校验。

(2)签名有两个步骤,先按一定规则拼接要签名的原始串,再选择具体的算法和密钥计算出签名结果。

(3)原始串中,字段名和字段值都采用原始值,不进行URL Encode。

(4)平台返回的应答或通知消息可能会由于升级增加参数,请验证应答签名时注意允许这种情况。

签名方法

(1)设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

2)在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

签名样例

1)假设需要传递的参数如下:

serverquery_status
merchant_id1234567890
third_order_id12345678901
nonce_str12345678901

(2)对参数按照key=value的格式,并按照参数名ASCII字典序排序如下

stringA=merchant_id=1234567890&nonce_str=12345678901&server=query_status&third_order_id=12345678901

3)拼接商户秘钥key

stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d" //注:key为商户密钥key

4)计算签名

交易报文MD5计算:sign=MD5(stringSignTemp).toUpperCase()
通知报文MD5计算:sign=MD5(stringSignTemp).toLowerCase()
交易报文SM3计算:sign=SM3(stringSignTemp).toUpperCase()
通知报文SM3计算:sign=SM3(stringSignTemp).toLowerCase()

注:md5加密为32位。
SM3签名为64位
(1)设所有请求数据为集合M(请求数据中需上送sign_typeSM3,不上送默认为使用MD5),将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),

使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

2)在stringA最后拼接上key得到stringSignTemp字符串,

并对stringSignTemp进行SM3运算,再将得到的字符串所有字符转换为大写,得到sign值signValue

特别注意

1)请求数据验签方法

除sign、leshua、resp_code字段外,其他参数按照签名方法验签,空值不传递,不参与签名组串。

2)应答数据验签方法

除sign、leshua、resp_code字段外,其他参数按照签名方法验签,空值参与签名组串。
(注:微信刷脸接口是全字段加签)

3)支付结果通知验签方法

除sign、leshua、error_code字段外,其他参数按照签名方法验签,空值参与签名组串。

商户维度接入,支付结果通知验签需要向商务申请 商户获取代理商解析密钥

判断付款码规则

```java 支付宝:支付授权码,25~30开头的长度为16~24位的数字, 实际字符串长度以开发者获取的付款码长度为准 微信:扫码支付授权码,设备读取用户微信中的条码或二维码信息(注:用户刷卡条形码规则:18位纯数字以10、11、12、13、14、15开头) 银联二维码:62开头19位数字 数字人民币:0100开头的数字,其中01002 工行(数字人民币的不完整,后续会有改动) 01003 农行 01004 中行 01005 建行 01007 网商 01008 邮储 01009 交通银行 ```

1、统一下单(主扫:C扫B

1.1接口说明

代理商在C扫B场景调用此支付接口完成下单,支持支付宝拉码支付、公众号支付、服务窗支付、银联JS支付、微信小程序支付。

测试商户信息及请求密钥和回调密钥请联系我们获取。

生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司。

1.2请求方式

POST

1.3请求地址

测试环境域名:https://t-paygate.lepass.cn

生产环境域名:https://paygate.leshuazf.com

接口地址:/cgi-bin/lepos_pay_gateway.cgi

1.4频率限制

4000次/s

1.5业务入参

变量名 必填 限制 类型 说明
service M string 接口名
get_tdcode(此为固定值)
t0 O int T0交易标志
默认为00d1交易 1d0交易
sign_type 0 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
pay_way M 16 string 支付类型
详见下方支付类型
merchant_id M 10 string 乐刷商户号
由乐刷分配
user_name O string 收银员名称
third_order_id M 64 string 商户内部订单号
可以包含字母:确保同一个商户下唯一
amount M 10 string 订单总金额
金额不能为零或负数
jspay_flag M 1 string 支付类型
0-支付宝Native扫码支付、银联Native扫码支付;
1-微信JSAPI、支付宝JSAPI支付、银联JSAPI支付;
2-微信、支付宝简易支付<跳转乐刷收银台支付>;
jspay_flag=2时必传jump_url,否则会报错)
3-微信小程序支付、支付宝小程序支付
注:
1)微信拉码支付已下线;
2)如需接入银联JS支付,请联系乐刷运营沟通域名报备。
3)数字货币支付当前仅支持jspay_flag=0
royalty O 1 string 交易分账标识
0:普通交易 1:分账(用于分账的交易需传该参数) 2:交易主体分账(延迟结算)
3:预授权
注:如果未传该字段默认为0,按不分账处理
appid M 32 string appid
条件必填,微信支付时必填。填微信公众号支付的公众号id或微信小程序支付的小程序appid;
传了会使用此appid 进行下单
sub_openid C 32 string sub_openid
微信JSAPI、微信小程序、支付宝JSAPI、支付宝小程序、银联JSAPI支付必填
extend_business_params O string 该字段 为JSON格式的字符串,当前可透传支付宝的参数见下表
具体格式详见文档下方:业务拓展参数示例注:花呗分期商家订单传参贴息示例:
"extend_business_params":"{"business_params":{ "enable_thirdparty_subsidy":"N"}}"
如果第三⽅贴息活动为全场贴息,默认可贴息,传⼊ N 值则本笔交易禁⽤三⽅贴息;
如果第三⽅贴息活动为指定订单传参贴息,默认禁⽤贴息,传⼊Y 值则本笔交易启⽤三⽅贴息
jump_url O 128 string 前台跳转地址
简易支付时必填,完成后,乐刷将跳转到该页面,需做UrlEncode 处理
(受微信支付宝限制,已失效,可不传)
notify_url O 128 string 通知地址
接收乐刷通知(支付结果通知)的URL,需做UrlEncode 处理,需要绝对路径,确保乐刷能正确访问,若不需要回调请忽略
client_ip O 16 string 商户发起交易的IP地址
body O 256 string 商品描述
不能包含回车换行等特殊字符
shop_no O 16 string 商户门店编号
只能是汉字、英文字母、数字。注:该参数不上传给微信、支付宝
pos_no O 16 string 商户终端编号
只能是汉字、英文字母、数字 注意:银联类型交易时,只能 8位:数字字母 不支持 特殊字符
attach O 96 string 附加数据
下单成功原样返回;注意:只能是汉字、英文字母、数字
limit_pay O 1 string 指定支付方式
1:禁止使用信用卡;
0或者不填:不限制
goods_tag O 32 string 订单优惠标记
订单优惠标记(订单级别-品类级别),透传给微信,对应微信的goods_tag字段。微信会自动进行优惠匹配计算和核销。
用于给整个订单打上一个"标签",主要用于代金券立减优惠场景,示例:"coffee"
goods_detail O 8000 string 单品详情
微信
单品级详细信息,透传给微信,对应微信的detail字段,**注意**不是对应detail.goods_detail字段。微信会自动进行优惠匹配计算和核销。
按微信单品优惠券格式传递透传给微信,请做UrlEncode
示例:{"goods_detail":[{"merchant_goods_id":"xiaomi_14_pro","goods_name":"小米14 Pro","quantity":1,"unit_price":499900}]}

银联
银联扫码交易时,透传给银联的“收款方附加数据”acqAddnData参数,当前银联的单品营销及扫码点餐均使用到该参数,具体参数格式及说明见:银联收款方附加数据
order_expiration O string 订单有效时间
单位:秒(支付宝的超时时间最小粒度为分钟,建议上送的为60的整数倍)最大时效600s
hb_fq_num O string 花呗分期数
支付宝花呗分期数,支持3、6、12期
front_url C string 前端跳转地址
银联JSAPI支付时选填,支付成功时跳转
front_fail_url C string 支付失败前端跳转地址
银联JSAPI支付时选填,支付失败时跳转
nonce_str M 32 string 随机字符串
sign M 32 string 签名
MD5签名结果
device_info O 32 string 设备编号
针对微信、支付宝有效,透传至银联。
微信:数字、字母、下划线格式
支付宝:目前支持非0开头的数字
store_id O 32 string 门店编号
针对微信、支付宝有效,透传至银联。
微信:数字、字母、下划线格式
ass_merchant_id O 32 string 通道商户号
非必填。可使用指定的微信、支付宝子商户号进行交易,一个乐刷商户号有多个通道商户号情况下可用。
注:对应乐刷商户号大于200条时不能传该参数
pnrins_id_cd O 32 string 银联服务商标识
银联扫码交易时,透传给银联,对应银联的 pnrInsIdCd参数。
gps_info O 512 string gps信息
校验GPS信息格式, 如:-128.12,23.1 -- 1. xxx,xxx -- 2. 经度xxx为[-180180]之间的浮点数,维度xxx为[-90,90]之间的浮点数,最多保留小数点八位float(11,8)
bs_info O 512 string 基站信息
校验基站信息格式,
格式说明: -- 1. 格式为:xxx,xxx,xxx,xxx 如:460,1,12,23454 -- 2. xxx均为整数,长度不超过11位

基站信息,从左至右依次对应以下几个字段: mcc: 移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。我国为460 mnc:移动网号,由两位数字组成,用于识别移动用户所归属的移动网 lac:位置区编码,为寻呼而设置的一个区域,覆盖一片地理区域,按寻呼量划分 ci :负责收发的天线所朝向的扇区编号
extend_business_params O - string 见下extend_business_params参数表
scene_info O - string 该字段用于上报场景信息,仅针对微信交易有效,目前支持上报实际门店信息。该字段 为JSON格式的字符串,对象格式为{"store_info":{"id": "门店 ID","name ": "名称","area_code": "编码","address": "地址"}} ,字段详细说明参考下文。
need_receipt O - boolean 电子发票功能。仅针对微信交易有效,需要和微信公众平台的发票功能联合使用。
枚举:
(只能为true或false,只支持全小写字母或全大写字母)
1. true
2. false
terminal_info M - String 商户侧受理终端信息
terminal_info为String类型,内容为json
terminal_info="{"longitude":"-121.48352","latitude":"+31.221345","network_license":"P3100","device_type":"01","device_id":"54MPDz39","serial_num":"5","app_version":"v1.1.1","device_ip":"252.1.1.25"}"

terminal_info不能为空,如无终端信息则按此规则传参:device_type和serial_num必传:
device_type固定传11
serial_num=lhsd+商户编号

json内各参数说明
longitude:经度,+代表东经,-代表西经。
latitude:纬度,+代表北纬,-代表南纬。
network_license:银行卡受理终端入网编号。该
编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行 分配。银联直连终端必填。
格式:5 位字符,例如 P3100
device_type:设备类型,01:自动柜员机(含 ATM 和 CDM)和 多媒体自助终端
02:传统 POS
03mPOS
04:智能 POS
05II 型固定电话
06:云闪付终端;
07:保留使用;
08:手机 POS
09:刷脸付终端;
10:条码支付受理终端;
11:条码支付辅助受理终端;
12:行业终端(公交、地铁用于指定行
业的终端);
13MIS 终端;

serial_num:设备序列号,设备类型02、
03、04、05、06、08、09 或 10 时必填
encrypt_rand_num:仅在被扫支付类交易报文中出现:若付 款码为 19 位数字,则取后 6 位; 若付款码码为 EMV 二维码,则取其 tag 57 的卡号/token 号的后 6 位
secret_text:仅在条码支付交易报文中出现:64bit
的密文数据,对终端硬件序列号和加密 随机因子加密后的结果。 本子域取值为:64bit 密文数据进行 base64 编码后的结果。该字段需要服务商和厂商联调时由厂商sdk之类加密后给出。
app_version:终端应用程序的版本号。应用程序变更
应保证版本号不重复。当长度不足时, 右补空格。固定8位
device_ip:终端交易IP。如经、维度信息未上送,该字段必送。

extend_business_params 参数表

变量名 必填 限制 类型 说明
business_params O - String
goods_detail O - String
extend_params O - String
seller_id O 28 String 卖家支付宝用户 ID。如果该值为空,则默认为商户签约账号对应的支付宝用户 ID
discountable_amont O 11 Price 参与优惠计算的金额,单位为元,精确到 小 数 点 后 两 位 , 取值范围[0.01,100000000]。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】
undiscountable_amount O 11 Price 不参与优惠计算的金额,单位为元,精确 到 小 数 点 后 两 位 , 取 值 范 围[0.01,100000000]。如果该值未传入,但传入了【订单总金额】和【可打折金额】,则该值默认为【订单总金额】-【可打折金额】
buyer_logon_id O 100 String 买家支付宝账号
operator_id O 28 String 商户操作员编号
enable_pay_channels O 128 String 可用渠道,用户只能在指定渠道范围内支付。当有多个渠道时用“,”分隔,与 disable_pay_channels 互 斥。
settle_info O - SettleInfo 描述结算信息,json 格式,详见结算参数说明
alipay_store_id O 32 String 支付宝的店铺编号
ext_user_info O - ExtUserInfo 外部指定买家
qr_code_timeout_express O 6 String 该笔订单允许的最晚付款时间,逾期将关闭交易,从生成二维码开始计时。取值范围:1m~15d。 m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在 0 点关闭)。 该参数数值不接受小数点,如 1.5h,可转换为90m。
(对应jspay_flag为0时)
merchant_order_no O 32 String 商户原始订单号,最大长度限制32 位
(对应jspay_flag为1/2/3时)
disable_pay_channels O 64 String 禁用支付渠道,多个渠道以逗号分割,如 同时禁用信用支付类型和积分,则 disable_pay_channels="cre dit_group,point" 具体的渠道以支付宝或者银联提供的为准

场景信息scene_info字段说明(当前仅针对微信交易会透传给微信):

名称 参数名 必填 类型 示例值 描述
门店Id id String(32) SZTX001 门店唯一标识
门店名称 name String(64) 腾讯大厦腾大餐厅 门店名称
门店行政区划码 area_code String(6) 440305 门店所在地行政区划码
门店详细地址 address String(128) 科技园中一路腾讯大厦 门店详细地址

1.6业务出参

变量名 必填 限制 类型 说明
resp_code M string 返回状态码
0 - 成功,非0 - 失败。注:此字段是通信标识,是否获取到二维码要看result_code
resp_msg C string 返回错误信息
错误描述:resp_code非0时返回
result_code M 1 string 业务结果
0 - 成功,非0 - 失败
error_code O string 错误码
参考错误码信息表
error_msg O string 错误信息描述
attach O 96 string 附加数据
原样返回;注意:只能是汉字、英文字母、数字
merchant_id M 10 string 乐刷商户号
由乐刷分配
sub_merchant_id M string 通道商户号
微信、支付宝、QRC商户号
third_order_id M 64 string 商户内部订单号
nonce_str M 32 string 随机字符串
sign M 32 string MD5签名结果
td_code C string 二维码链接
非公众号支付返回,可直接通过该链接生成二维码扫码支付(jspay_flag传0-2该字段才会返回)
jspay_info C string 支付信息
原生公众号、服务窗、小程序,返回json格式字符串、银联JS支付返回URL,用云闪付打开此链接即可调起支付 生效时间:默认10分钟,具体时间看订单有效时间
jspay_url C string 支付跳转地址
简易支付时返回。重定向到该url可以完成后续支付流程。返回二维码链接有效期为10分钟;
leshua_order_id M 32 string 乐刷订单号
pay_way M string 支付类型
详见下方支付类型
cost_time C string 请求耗时
请求接口耗费的时间
channel_flag O 32 string 通道标记
GXST:高校食堂
PUBWEL:公益
PUBPAY:公缴
ZFBLH:支付宝新蓝海
SLZXY:私立中小幼
INS:保险
ONLINE:线上
YLLZ:绿洲
alipay_infos O trade_no:银联交易号

注意事项

(1)所有涉及到金额的单位都位分,币种为RMB,最小为1分,不允许出现小数

(2)文档中参数,标识为必填必须上送(如果缺少会报错),非必填的可填可不填(简易支付"支付跳转地址"字段为必传),

(3)返回参数中必填为是的参数是一定会返回的,必填为否的参数则不一定返回,因升级或配置等情况实际返回参数可能不会跟文档完全一致,必须以实际接收到的参数为准

获取微信用户openid
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842&token=&lang=zh_CN
获取支付宝用户openid
https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8ujLD6&treeId=115&articleId=104114&docType=1

公众号支付请求示例

1、请求格式如下:

https://paygate.leshuazf.com/cgi-bin/lepos_pay_gateway.cgi?amount=1&
appid=wx00e59fa8be9ba128&jspay_flag=1&merchant_id=3219113278&
nonce_str=lnxouwc0r7l93453x5&order_expiration=60&pay_way=WXZF&service=get_tdcode&
sub_openid=oe5BX0qaVuC5vqYdj65GlUcyAVUM&third_order_id=202004271809453917&sign=2A500B7F906284717212304A9BCFB33D

返回示例

1、响应格式如下:

<leshua>
	<resp_code><![CDATA[0]]></resp_code>
	<merchant_id><![CDATA[3219113278]]></merchant_id>
	<sign><![CDATA[D6D8B65D19C2874D645C8AB3001BDFC6]]></sign>
	<pay_way><![CDATA[WXZF]]></pay_way>
	<third_order_id><![CDATA[202004271809453917]]></third_order_id>
	<jspay_info><![CDATA[{"appId":"wx00e59fa8be9ba128","timeStamp":"1587982188","nonceStr":"0331f99e446a406a933f599102c6a096","package":"prepay_id=wx271809485236369bff1b171c1846357400","signType":"RSA","paySign":"uNoENZ3BOqggJptJRPw9PLCN759+GPlGcgQ9J1XVE/TSiA0pR6wro6ZqBMtyQ2GixTnJcvwfilZK7Bf8TJQ1jMizWB6BjbjJMtpptLtFNGTexjW/QqjubIVRqlNYPepSZiPYNNDsk3DwvaiYKzIahQ1T4SP8nSdTVEsttgqwAgIyccB87/oNN/EHPtCCuFHDYoDdB5k0JW8PBybFXg0zuy1GxqBhHyi/DESzd+Ke8hi6ZZgFcFzWEl55hhxASMvsbXjbSenK98eGwd/f/sJa5zZjS1snt24n56vnkUkjEi31KL/j7u5xBx3l97WZESJN3Kdda2zwWIMNKYbSE+MpQQ=="}]]></jspay_info>
	<nonce_str><![CDATA[hamzqguihsivovvcovgfqkrxxpklovxk]]></nonce_str>
	<result_code><![CDATA[0]]></result_code>
	<leshua_order_id><![CDATA[9000024427820118]]></leshua_order_id>
	<sub_merchant_id><![CDATA[344415140]]></sub_merchant_id>
</leshua>

支付宝拉码支付请求示例

1、请求格式如下:

https://t-paygate.lepass.cn/cgi-bin/lepos_pay_gateway.cgi?amount=1&jspay_flag=0
&merchant_id=0000000018&nonce_str=w1hxpdiu9nkjfw5qrp&order_expiration=60&
pay_way=ZFBZF&service=get_tdcode&third_order_id=202004291733230374&
sign=340DB607E3BEE2BAE60807B3601008E2

返回示例

1、响应格式如下:

<leshua>
	<resp_code><![CDATA[0]]></resp_code>
	<merchant_id><![CDATA[0000000018]]></merchant_id>
	<sign><![CDATA[8208ADC9E7E6DD8B7B020E2C14B58C68]]></sign>
	<result_code><![CDATA[0]]></result_code>
	<third_order_id><![CDATA[202004291733230374]]></third_order_id>
	<pay_way><![CDATA[ZFBZF]]></pay_way>
	<nonce_str><![CDATA[ibtzcpizitpmtenowvzasczstffcubex]]></nonce_str>
	<td_code><![CDATA[https://qr.alipay.com/bax00753gvtsjixecagz00ce]]></td_code>
	<leshua_order_id><![CDATA[0000005701801120]]></leshua_order_id>
	<sub_merchant_id><![CDATA[2088231796689692]]></sub_merchant_id>
</leshua>

2、条码支付(被扫:B扫C

请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string upload_authcode(此为固定值)
t0交易标志 t0 O int 默认为00d1交易 1d0交易
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
付款码 auth_code M string 支持以下付款码:
1. 微信数字付款码
2. 支付宝数字付款码
3. 云闪付APP 62开头付款码
4. 银行APP 62开头付款码
5. 数字人民币APP付款码(0100开头)
6. 支付宝刷脸付款码(fp开头)
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id M 64 string 商户内部订单号,可以包含字母:确保同一个商户下唯一
订单金额 amount M 10 string 总金额
分账标识 royalty O 1 string 交易分账标识
0:普通交易 1:分账(用于分账的交易需传该参数) 2:交易主体分账(延迟结算)
3:预授权
注:如果未传该字段默认为0,按不分账处理
商户公
众账号 ID
appid O 32 string 商户或者商户所属渠道号主体的公众号appid,由微信统一分配,仅对微信交易生效,传送前请确定商户和该appid已经建立绑定关系
通知地址 notify_url O 128 string 接收乐刷通知的URL,需做UrlEncode 处理,需要绝对路径,确保乐刷能正确访问,若不需要回调请忽略
用户IP地址 client_ip O 16 string 商户发起交易的IP地址
商品描述 body O 256 string 商品描述,不能包含回车换行等特殊字符
商户门店编号 shop_no O 16 string 只能是汉字、英文字母、数字
商户终端编号 pos_no O 16 string 只能是汉字、英文字母、数字 注意:银联类型交易时,只能 8位:数字字母 不支持 特殊字符
附加数据 attach O 96 string 支付成功原样返回;注意:只能是汉字、英文字母、数字
指定支付方式 limit_pay O 1 string 1:禁止使用信用卡;0或者不填:不限制
订单优惠标记 goods_tag O 32 string 订单优惠标记,透传给微信
商品详情 goods_detail O 8000 string 微信单品优惠券格式传递,透传给微信;
银联扫码交易时,透传给银联的“收款方附加数据”acqAddnData参数,当前银联的单品营销及扫码点餐均使用到该参数,具体参数格式及说明见:银联收款方附加数据
花呗分期数 hb_fq_num O string 支付宝花呗分期数,支持3、6、12期
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
业务拓展参数 extend_business_params O 8000 string 该字段 为JSON格式的字符串,当前可透传支付宝的参数见下表
具体格式详见文档下方:业务拓展参数示例
注:花呗分期商家订单传参贴息示例:
"extend_business_params":"{"business_params":{ "enable_thirdparty_subsidy":"N"}}"
如果第三⽅贴息活动为全场贴息,默认可贴息,传⼊ N 值则本笔交易禁⽤三⽅贴息;
如果第三⽅贴息活动为指定订单传参贴息,默认禁⽤贴息,传⼊Y 值则本笔交易启⽤三⽅贴息
设备编号 device_info O 32 string 针对微信、支付宝有效,透传至银联。
微信:数字、字母、下划线格式
支付宝:目前支持非0开头的数字
门店编号 store_id O 32 string 针对微信、支付宝有效,透传至银联。
微信:数字、字母、下划线格式
支付宝:目前支持非0开头的数字
通道商户号 ass_merchant_id O 32 string 非必填。可使用指定的微信、支付宝子商户号进行交易,一个乐刷商户号有多个通道商户号情况下可用。
注:对应乐刷商户号大于200条时不能传该参数
银联服务商标识 pnrins_id_cd O 32 string 银联扫码交易时,透传给银联,对应银联的 pnrInsIdCd参数。
gps信息 gps_info O 512 string 校验GPS信息格式, 如:-128.12,23.1 -- 1. xxx,xxx -- 2. 经度xxx为[-180180]之间的浮点数,维度xxx为[-90,90]之间的浮点数,最多保留小数点八位float(11,8)
** 基站信息** bs_info O 512 string 校验基站信息格式,
格式说明: -- 1. 格式为:xxx,xxx,xxx,xxx 如:460,1,12,23454 -- 2. xxx均为整数,长度不超过11位

基站信息,从左至右依次对应以下几个字段: mcc: 移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。我国为460 mnc:移动网号,由两位数字组成,用于识别移动用户所归属的移动网 lac:位置区编码,为寻呼而设置的一个区域,覆盖一片地理区域,按寻呼量划分 ci :负责收发的天线所朝向的扇区编号
场景信息 scene_info O string 该字段用于上报场景信息,仅针对微信交易有效,目前支持上报实际门店信息。该字段 为JSON格式的字符串,对象格式为{"store_info":{"id": "门店 ID","name ": "名称","area_code": "编码","address": "地址"}} ,字段详细说明参考下文。
电子发票功能 need_receipt O boolean 电子发票功能。仅针对微信交易有效,需要和微信公众平台的发票功能联合使用。
枚举:
(只能为true或false,只支持全小写字母或全大写字母)
1. true
2. false
交易终端信息 terminal_info O String 商户侧受理终端信息,格式为json 格 式。 如terminal_info= { "longitude":"-121.48352",#option "latitude":"+31.221345",#option
"network_license":"P3100", "device_type":"01" "device_id":"54MPDz39", "serial_num":"5", "app_version": "v1.1.1" "device_ip": "252.1.1.25" , }

json内各参数说明
longitude:经度,+代表东经,-代表西经。
latitude:纬度,+代表北纬,-代表南纬。
network_license:银行卡受理终端入网编号。该
编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行 分配。银联直连终端必填。
格式:5 位字符,例如 P3100
device_type:设备类型,01:自动柜员机(含 ATM 和 CDM)和 多媒体自助终端
02:传统 POS
03mPOS
04:智能 POS
05II 型固定电话
06:云闪付终端;
07:保留使用;
08:手机 POS
09:刷脸付终端;
10:条码支付受理终端;
11:条码支付辅助受理终端;
12:行业终端(公交、地铁用于指定行
业的终端);
13MIS 终端;

serial_num:设备序列号,设备类型02、
03、04、05、06、08、09 或 10 时必填
encrypt_rand_num:仅在被扫支付类交易报文中出现:若付 款码为 19 位数字,则取后 6 位; 若付款码码为 EMV 二维码,则取其 tag 57 的卡号/token 号的后 6 位
secret_text:仅在条码支付交易报文中出现:64bit
的密文数据,对终端硬件序列号和加密 随机因子加密后的结果。 本子域取值为:64bit 密文数据进行 base64 编码后的结果。该字段需要服务商和厂商联调时由厂商sdk之类加密后给出。
app_version:终端应用程序的版本号。应用程序变更
应保证版本号不重复。当长度不足时, 右补空格。固定8位
device_ip:终端交易IP。如经、维度信息未上送,该字段必送。

extend_business_params参数:

变量名 必填 限制 类型 说明 示例
business_params O - Object 商户传入业务信息,应用于安全,营销
等参数直传场景,格式为 json 格式。
goods_detail O - Array 订单包含的商品列表信息,数组格式。
一般在支付宝扫码点餐业务中上传点餐的商品信息
[{"goods_id": "5544", "goods_name": "爽口青笋丝","price": "0.50","quantity": 2,"goods_category": "888", "categories_tree": "888","body": "爽口青笋丝","show_url":"pageFoodChain/storeDetail/main?suid=10"}]
┖goods_id M 32 String 商品的编号
┖alipay_goods_id O 32 String 支付宝定义的统一商品编号
┖goods_name M 256 String 商品名称
┖quantity M 10 Number 商品数量
┖price M 9 Price 商品价格,单位为元
┖goods_category O 24 String 商品类目
┖categories_tree O 128 String 商品类目数,从商户品类目根节点到叶子节点的类目id组成,类目id使用 分割
┖body O 1000 String 商品描述信息
┖show_url O 400 String 商品的展示地址 http://www.alipay.co
m/xxx.jpg
extend_params O - Object 支付宝业务扩展参数
┖sys_service_provid
er_id
O String
┖hb_fq_num O String
┖hb_fq_seller_percent O String
┖industry_reflux_info O String
┖card_type O String
seller_id O 28 String 如果该值为空,则默认为商户签约账号对应的支付宝用户ID预授权场景下无需上送
discountable_amont O 11 Price 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】
undiscountable_amount O 11 Price 不参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。如果该值未传入,但传入了【订单总金额】和【可打折金额】,则该值默认为【订单总金额】-【可打折金额】
operator_id O 28 String 商户操作员编号
alipay_store_id O 32 String 支付宝的店铺编号
merchant_order_no O 32 String 商户的原始订单号
ext_user_info O - ExtUserInfo 外部指定买家
promo_params O 512 PromoParam 优惠明细参数,通过此属性补充营销参数
terminal_params O 2048 String json 格式;商户传入终端设备。如:
{"credential":"28763443825664394:20180207192030954:abcdefGHIJKLMN","signature":"xxxxxxx","terminalType":"IOT"}
advance_payment_type O 20 String 支付模式类型, 若 值 为ENJOY_PAY_V2表示当前交易允许走先享后付 2.0 垫资
query_options O 1024 String[] 返回查询选项,商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。如:["fund_bill_list","voucher_detail_list","discount_goods_detail"]
disable_pay_channels O 64 String 禁用支付渠道,多个渠道以逗号分割,如 同时禁用信用支付类型和积分,则 disable_pay_channels="cre dit_group,point" 具体的渠道以支付宝或者银联提供的为准

场景信息scene_info字段说明(当前仅针对微信交易会透传给微信):

名称 参数名 必填 类型 示例值 描述
门店Id id String(32) SZTX001 门店唯一标识
门店名称 name String(64) 腾讯大厦腾大餐厅 门店名称
门店行政区划码 area_code String(6) 440305 门店所在地行政区划码
门店详细地址 address String(128) 科技园中一路腾讯大厦 门店详细地址

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
商户号 merchant_id M 10 string 由乐刷分配
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
订单状态 status M string 详见下方订单状态
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
支付类型 pay_way M string 详见下方支付类型
支付完成时间 pay_time C string 支付成功时才返回
银行类型 bank_type O string 使用银行卡支付以外的(如零钱)全部展示为others,使用银行卡支付的详见下方付款银行类型
用户openid openid C string 支付成功时才返回
微信、支付宝等订单号 out_transaction_id C string 支付成功时才返回
用户子标识 sub_openid C string 支付成功时才返回。微信:公众号APPID下用户唯一标识;支付宝:买家的支付宝用户ID
附加数据 attach O 96 string 支付成功原样返回;注意:只能是汉字、英文字母、数字
交易类型 trade_type C string 支付成功时才返回:MICROPAY-条码支付,NATIVE-原生扫码支付,JSAPI-公众号支付、服务窗支付,SmPgPay-小程序支付,JSAPIQuick-简易支付
通道订单号 channel_order_id C string 支付成功时才返回
通道订单时间 channel_datetime C string 支付成功时才返回
支付宝红包金额 coupon C string 支付成功时才返回,单位(分)
应结算金额 settlement_amount C string 实际结算金额,支付成功时才返回,单位(分)
折扣优惠金额 discount_amount C string 订单优惠金额,支付成功时才返回,单位(分)
优惠详情 promotion_detail O string 银联单品的具体优惠详情;
微信优惠详情说明:微信官网
活动标志 active_flag O string 活动标志。WXLZ:微信绿洲;ZFBLH:支付宝蓝海
买家实付金额 buyer_pay_amount C String 微信、支付宝此值有效
请求耗时 cost_time C string 请求接口耗费的时间
通道标记 channel_flag O 32 string GXST:高校食堂
PUBWEL:公益
PUBPAY:公缴
ZFBLH:支付宝新蓝海
SLZXY:私立中小幼
INS:保险
ONLINE:线上
银联/网联状态码 channel_code C JSON 透传银联的返回码。
银联支付宝:code, sub_code 银联微信:return_code, result_codeerr_code 银联二维码平台:respCode 条码前置平台:status、code、result_code、err_code。
以上各种code,仅在银联返回时透传。
格式:<channel_code></channel_code>
alipay_infos 见下alipay_infos参数表

alipay_infos参数表

参数名 变量名 必填 限制 类型 说明
total_amount M 11 Price 交易金额(单位:分, 类型:数字)
settle_amount C 11 String 结算币种订单金额
pay_amount C 11 String 支付币种订单金额
receipt_amount M 11 String 实收金额(单位:分, 类型:数字)
point_amount C 11 Price 使用集分宝付款的金额
invoice_amount C 11 Price 交易中可给用户开具发票的金额(单位:元)
fund_bill_list M TradeFundBill[] 交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options 中指定时才返回该字段信息。
card_balance C 11 Price 支付宝卡余额
store_name C 512 String 发生支付交易的商户门店名称
discount_goods_detail C 1024 String 本次交易支付所使用的单品券优惠的商品优惠信息。只有在 query_options中指定时才返回该字段信息。
async_payment_mode C 20 String 异步支付模式,先享后付业务会返回该参 数 , 目 前 有 三 种 值 ASYNC_DELAY_PAY( 异 步 延 时 付款); ASYNC_REALTIME_PAY( 异步准实时付款); SYNC_DIRECT_PAY(同步直接扣款);
purchase_merchant_contribute C 8 Price 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额
auth_trade_pay_mode C 64 String 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY
advance_amount C 11 String 先享后付 2.0 垫资金额,不返回表示没有走垫资,非空表示垫资支付的金额
business_params C 512 String 商户传入业务信息,具体值要和支付宝约定将商户传入信息分发给相应系统,应用于安全,营销等参数直传场景格式为 json 格式
buyer_user_type C 18 String 买家用户类型。 CORPORATE:企业用户;PRIVATE:个人用户。
buyer_user_name C 128 String 买家名称;买家为个人用户时为买家姓名,买家为企业用户时为企业名称;
mdiscount_amount C 11 String 商家优惠金额
discount_amount C 11 String 平台优惠金额
charge_flags C 64 String 费率活动标识,当交易享受活动优惠费率时,返回该活动的标识;(1)蓝海活动优惠费率 0,值为 bluesea_1(2) 特 殊 行 业 优 惠 费 率 0 值 为industry_special_00(3) 特殊行业优惠费率千一,值为industry_special_01
buyer_logon_id M 100 String 买家支付宝账号
订单优惠金额

微信支付包含商户和微信给的优惠金额,支付宝支付只包含商户给的优惠金额,银联二维码支付只包含商户给的优惠金额

业务拓展参数示例

"extend_business_params": "{ "
   extend_params ":{ "
   sys_service_provider_id ":"
   208812333665551 ",  "
   food_order_type ":"
 home_delivery " } }",

银联单品营销请求示例

请求地址?amount=100&auth_code=XXXXXXXXXXXXXXXX&goods_detail=
%7b%22goodsInfo%22%3a%5b%7b%22id%22%3a%2212341234%22%2c%22name%22%3a%22%e6%b5%8b%e8%af%95%e5%95%86%e5%93%81%22%2c%22price%22%3a%22100%22%2c%22quantity%22%3a%221%22%7d%5d%7d
&merchant_id=XXXXXXXXXX&nonce_str=7aee8b722a614cfa9cfb39ad5409fcdf&service=upload_authcode&third_order_id=UB4C0D38F5091465F920200326100751&
sign=69fb04df6dda8bfd3110e4891efedc8b
银联收款方附加数据

price 和 quantity 字段为数字类型

银联扫码交易时good_detail示例: 
{ 
  "orderInfo" : { 
    "title" :"日用品", 
    "dctAmount" :"10000", 
    "addnInfo" :"屈臣氏(人民广场)店" 
  },
  "goodsInfo" : [ 
    {"id": "1234567890",
     "name": "商品 1", 
     "price": 500, 
     "quantity": 1
    },
    {
      "id": "1234567891", 
      "name": "商品 2", 
      "price": 1000, 
      "quantity": 2, 
      "category": "类目 1", 
      "addnInfo": "商品图片 http://www.95516.com/xxx.jpg" } ] 
}

注:

  1. 银联扫码点餐时,在该域的订单信息 orderInfo 子域中的附加信息 addnInfo 字段需填写该门店对应的品牌标识、门店标识、桌号(其中 SaaS 收银的支付交易需有 品牌标识、门店标识,扫码点餐的支付交易必须有品牌标识、门店标识、桌号)。addnInfo 字段的参考格 式为:{brandId=值&storeId=值&tableNo=值},例如: addnInfo={brandId=AXMX&storeId=12345&tableNo=12}
  2. 银联单品营销时,按照银联需要的内容,在该域的商品信息goodsInfo上送对应的商品信息。

注意事项

(1)所有涉及到金额的单位都位分,币种为RMB,最小为1分,不允许出现小数

(2)文档中参数,标识为必填必须上送(如果缺少会报错),非必填的可填可不填

(3)返回参数中必填为是的参数是一定会返回的,必填为否的参数则不一定返回,因升级或配置等情况实际返回参数可能不会跟文档完全一致,必须以实际接收到的参数为准

3.扫码支付结果

3.1、扫码支付结果通知

由于诸多因素都会影响到支付结果的通知,推送可能存在延迟,并且不能保证100%推送成功。故强烈建议主接交易查询接口。

**POST Content-Type: text/xml; charset=utf-8 **

通知参数

参数名 变量名 必填 限制 类型 说明
错误码 error_code O string 参考错误码信息表
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使 用MD5算法)
签名 sign M 32 string MD5签名结果
商户号 merchant_id M 10 string 乐刷商户号
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
乐刷订单号 leshua_order_id M 32 string
商户订单号 third_order_id M 64 string
订单金额 amount M string
订单状态 status M string 详见下方订单状态
支付类型 pay_way M string 详见下方支付类型
支付时间 pay_time M string '2020-09-15 10:11:30'
银行类型 bank_type O string 使用银行卡支付以外的(如零钱)全部展示为others,使用银行卡支付的详见下方付款银行类型
用户openid openid O string
微信、支付宝等订单号 out_transaction_id O string
用户子标识 sub_openid C string 支付成功时才返回。微信:微信公众号APPID 下用户唯一标识;支付宝:买家的支付宝用户ID
附加数据 attach O 96 string 原样返回;注意:只能是汉字、英文字母、数字
交易类型 trade_type C string 支付成功时才返回:MICROPAY-条码支付,NATIVE-原生扫码支付,JSAPI-公众号支付、服务窗支付,SmPgPay-小程序支付,JSAPIQuick-简易支付
通道订单号 channel_order_id C string 支付成功时才返回
通道订单时间 channel_datetime C string 支付成功时才返回
支付宝红包金额 coupon C string 支付成功时才返回
应结算金额 settlement_amount C string 实际结算金额,支付成功时才返回
折扣优惠金额 discount_amount C string 本订单优惠金额,支付成功时才返回
优惠详情 promotion_detail O string 银联单品的具体优惠详情;微信优惠详情说明:微信官网
活动标志 active_flag O string 活动标志:WXLZ:微信绿洲 ZFBLH:支付宝蓝海
买家实付金额 buyer_pay_amount O String 微信、支付宝此值有效
付款方附加数据 iss_addn_data M String 格式如下
设备编号 device_info O 32 string 上游返回时才返
门店编号 store_id O 32 string 上游返回时才返
通道标记 channel_flag O 32 string GXST:高校食堂
PUBWEL:公益
PUBPAY:公缴
ZFBLH:支付宝新蓝海
SLZXY:私立中小幼
INS:保险
ONLINE:线上
花呗分期期数 hb_fq_num O string 支付宝花呗分期数,一般为3、6、12期,乐刷透传,具体期数由支付宝侧限定
支付宝优惠信息 alipay_infos string 见下alipay_infos参数表
分期信息 install_info O string 包含分期笔数(install_nums)/分期付款手续费率(install_rate)/商户补贴手续费率(merchant_fee_subsidy)

alipay_infos参数表

变量名 必填 限制 类型 说明
total_amount M 11 Price 交易金额(单位:分, 类型:数字)
point_amount O 11 Price 积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等
invoice_amount O 11 Price 交易中用户支付的可开具发票的金额,单位为元,两位小数。该金额代表该笔交易中可以给用户开具发票的金额
receipt_amount O 11 String 实收金额(单位:分, 类型:数字)
discount_goods_detail M 1024 String 本次交易支付所使用的单品券优惠的商品优惠信息。只有在 query_options中指定时才返回该字段信息。
mdiscount_amount O 11 String 商家优惠金额
discount_amount O 11 String 平台优惠金额
buyer_logon_id M 100 String 买家支付宝账号
fund_bill_list M 256 TradeFundBill[] 交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options 中指定时才返回该字段信息。

注意:

1、支付发起后,乐刷一般30s左右才会返回支付通知,如需快速获取支付结果,请调用“交易结果查询”接口发起查询。

2、支付通知的频率:0s/15s/30s/1m/4m/34m/64m/94m/124m/184m

支付类型
类型 说明 状态
WXZF 微信 支持
ZFBZF 支付宝 支持
UPSMPAY 银联二维码 支持

iss_addn_data参考格式:

参数名 变量名 类型 说明
商品优惠信息 dctDetail String 商品优惠明细
商品编号 id String 参与优惠的商品编号
优惠活动编号 dctId String 优惠活动的编号
商品优惠数量 dctQuantity String 参与优惠的商品数量
商品优惠金额 dctPrice String 商品的优惠总金额(分)
issAddnData= {
  "dctDetail" : [{
    "id": "1234567890",
    "dctId": "app012345",
    "dctQuantity": 1",
    "dctPrice": "500"
  },{
    "id": "1234567891",
    "dctId": "app012345",
    "dctQuantity": "2",
    "dctPrice": "1000",

返回参数

返回内容 说明
000000 通知成功,乐刷收到此返回后不会继续通知。返回内容000000是string类型,没有双引号。示例:return 000000;
其他 乐刷收到回复或者未收到回复,系统会再次通知。为避免资源浪费,请核实并确保响应信息的准确性,可以是否重复通知为检查手段

注意:

1.回调地址为统一下单或条码支付的通知地址。

2.交易回调处理时间为5S内。

3.支付成功才进行推送。

付款银行类型

通道 说明
微信 https://pay.weixin.qq.com/wiki/doc/api/mch_bank.php?chapter=4_2
支付宝 https://alipay.open.taobao.com/doc2/detail?treeId=26&articleId=103259&docType=1
银联二维码 1 - 借记卡 2- 贷记卡

3.2、扫码交易结果查询

请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

(4)注:查询时,除非返回明确的支付成功、支付失败、订单关闭等最终状态,其他错误或者未支付状态,都需要再查询,直到得到明确的支付状态。如果超过一段时间还是未支付,可以调用关闭订单接口。

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string query_status(此为固定值)
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id O 64 string 选填
乐刷订单号 leshua_order_id O 16 string third_order_id和leshua_order_id必填1个,优先使用leshua_order_id
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
商户号 merchant_id M 10 string 由乐刷分配
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
订单状态 status M string 详见下方订单状态
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
订单金额 amount M string
支付类型 pay_way M string 详见下方支付类型
支付完成时间 pay_time C string 支付成功时才返回
银行类型 bank_type O string 使用银行卡支付以外的(如零钱)全部展示为others,使用银行卡支付的详见下方付款银行类型
用户openid openid C string 支付成功时才返回
微信、支付宝等订单号 out_transaction_id C string 支付成功时才返回
用户子标识 sub_openid C string 支付成功时才返回。微信:微信公众号APPID下用户唯一标识;支付宝:买家的支付宝用户ID
附加数据 attach O 96 string 支付成功时原样返回;注意:只能是汉字、英文字母、数字
交易类型 trade_type C string 支付成功时才返回:MICROPAY-条码支付,NATIVE-原生扫码支付,JSAPI-公众号支付、服务窗支付,SmPgPay-小程序支付,JSAPIQuick-简易支付
通道订单号 channel_order_id C string 支付成功时才返回
通道订单时间 channel_datetime C string 支付成功时才返回
支付宝红包金额 coupon C string 支付成功时才返回,单位(分)
应结算金额 settlement_amount C string 实际结算金额,支付成功时才返回
折扣优惠金额 discount_amount C string 订单优惠金额,支付成功时才返回
优惠详情 promotion_detail O string 银联单品的具体优惠详情;

微信优惠详情说明:微信官方文档
活动标志 active_flag O string 活动标志。WXLZ:微信绿洲;ZFBLH:支付宝蓝海
买家实付金额 buyer_pay_amount O String 微信、支付宝此值有效
请求耗时 cost_time C string 请求接口耗费的时间
退款金额
refund_amount O string 订单已退款的金额
简易支付标识 simple_url_flag O string 1表示是简易支付,0表示不是简易支付
设备编号 device_info O 32 string 上游返回时才返
门店编号 store_id O 32 string 上游返回时才返
支付中间态补充 interm_state O 32 O 目前仅针对微信支付,订单为支付中时返回:
NOTPAY,USERPAYING
通道标记 channel_flag O 32 string GXST:高校食堂
PUBWEL:公益
PUBPAY:公缴
ZFBLH:支付宝新蓝海
SLZXY:私立中小幼
INS:保险
ONLINE:线上
花呗分期期数 hb_fq_num O string 支付宝花呗分期数,一般为3、6、12期,乐刷透传,具体期数由支付宝侧限定
alipay_infos 见下alipay_infos参数表

alipay_infos参数表

变量名 必填 限制 类型 说明
total_amount M 11 Price 交易金额(单位:分, 类型:数字)
point_amount O 11 Price 积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等
invoice_amount O 11 Price 交易中用户支付的可开具发票的金额,单位为元,两位小数。该金额代表该笔交易中可以给用户开具发票的金额
receipt_amount O 11 String 实收金额(单位:分, 类型:数字)
discount_goods_detail M 1024 String 本次交易支付所使用的单品券优惠的商品优惠信息。只有在 query_options中指定时才返回该字段信息。
mdiscount_amount O 11 String 商家优惠金额
discount_amount O 11 String 平台优惠金额
buyer_logon_id M 100 String 买家支付宝账号
fund_bill_list M 256 TradeFundBill[] 交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options 中指定时才返回该字段信息。

注意事项

(1)所有涉及到金额的单位都位分,币种为RMB,最小为1分,不允许出现小数

(2)文档中参数,标识为必填必须上送(如果缺少会报错),非必填的可填可不填

(3)返回参数中必填为是的参数是一定会返回的,必填为否的参数则不一定返回,因升级或配置等情况实际返回参数可能不会跟文档完全一致,必须以实际接收到的参数为准

4、扫码退款

4.1、扫码退款接口

注意:超过三个月的订单,无法退款请注意
****一个交易订单号,最多支持发起50次退款
请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

(4)退款一般会返回退款中的状态,如需获取真实退款状态,请调用退款查询接口

(5)每笔支付订单部分退款次数不能超过50次

(6)退款有效期为60天,即订单发起后的60天内可以退款

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string unified_refund 注:此为固定值
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id O 64 string
乐刷订单号 leshua_order_id O 32 string 商户订单号跟乐刷订单号必填1个,优先使用leshua_order_id
商户退款单号 merchant_refund_id M 64 string 可以包含字母(不能有“_”等特殊字符),确保同一商户下唯一
附加数据 attach O 96 string 退款成功原样返回;注意:只能是汉字、英文字母、数字
退款金额 refund_amount M 10 string 退款金额,可做部分退款
退款类型 refund_type O string 0:不使用账户余额退款,
1:可以使用账户余额退款(优先使用正向交易抵扣,正向交易不够抵扣情况下可用账户余额进行退款)。
2:限定只可以用账户余额进行退款
不传默认不使用账户余额退款 (注意: 实时清分的只能使用账户退款 )
随机字符串 nonce_str M 32 string 随机字符串,长度要求32位以内
通知地址 notify_url O 128 string 接收乐刷退款结果通知的URL,需做Url Encode处理,需要绝对路径,确保乐刷能正确访问
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
附加数据 attach O 96 string 退款成功原样返回;注意:只能是汉字、英文字母、数字
商户号 merchant_id M 10 string 由乐刷分配
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
订单状态 status M string 详见下方订单状态
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
退款金额 refund_amount M string 退款金额
商户退款id merchant_refund_id M 64 string
乐刷退款id leshua_refund_id M 32 string
订单总金额 total_amount M string 订单总金额
订单余额 order_balance M string 订单余额:本次退款后订单剩余金额
实际退款金额 settlement_refund_amount O string 实际退款金额
折扣优惠退款金额 discount_refund_amount O string 折扣优惠退款金额
退款优惠详情 refund_detail O string 退款优惠详情
请求耗时 cost_time C string 请求接口耗费的时间

4.2、扫码退款查询

请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

(4)注: 此接口如果查询到退款状态为中间状态时,会同步向上游查询一次退款状态;如果查询到是退款异常情况时,会同步向上游重新发起一次退款请求。

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string unified_query_refund 注:此为固定值
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id O 64 string
乐刷订单号 leshua_order_id O 32 string 跟third_order_id必填1个
商户退款单号 merchant_refund_id O 64 string
乐刷退款单号 leshua_refund_id O 32 string 跟merchant_refund_id必填1个
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0代表成功,非0代表失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
附加数据 attach O 96 string 原样返回;注意:只能是汉字、英文字母、数字
商户号 merchant_id M 10 string 由乐刷分配
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
订单状态 status M string 详见下方订单状态
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
退款金额 refund_amount M string 退款金额
商户退款id merchant_refund_id M 64 string
乐刷退款id leshua_refund_id M 32 string
订单总金额 total_amount M string
退款时间 refund_time O string 退款成功时间:退款成功才返回
实际退款金额 settlement_refund_amount O string 实际退款金额
折扣优惠退款金额 discount_refund_amount O string 折扣优惠退款金额
退款优惠详情 refund_detail O string 退款优惠详情
请求耗时 cost_time C string 请求接口耗费的时间

4.3、扫码退款结果通知

由于诸多因素都会影响到支付结果的通知,推送可能存在延迟,并且不能保证100%推送成功。故强烈建议主接交易查询接口。

通知参数

字段名 变量名 必填 长度限制 类型 说明
错误码 error_code O string 参考错误码信息表
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
订单状态 status M string 详见下方订单状态
失败原因 failure_reason O string 失败原因
附加数据 attach O 96 string 原样返回;注意:只能是汉字、英文字母、数字
商户号 merchant_id M 10 string 由乐刷分配
通道商户号 sub_merchant_id M string 微信、支付宝、QRC商户号
商户订单号 third_order_id M 64 string 商户内部订单号
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
退款金额 refund_amount M string 退款金额
商户退款id merchant_refund_id M 64 string
乐刷退款id leshua_refund_id M 32 string
订单总金额 total_amount M string
退款时间 refund_time C string 退款成功时间:退款成功才返回
折扣优惠退款金额 discount_refund_amount O String 折扣优惠退款金额
实际退款金额 settlement_refund_amount O String 实际退款金额
退款优惠详情 refund_detail O String 退款优惠详情(在退款成功后才返回)

注意:

1、发起退款请求后,乐刷一般30s左右才会返回支付通知,如需快速获取支付结果,请调用“退款”接口发起查询。

返回参数

返回内容 说明
000000 通知成功,乐刷收到此返回后不会继续通知
其他 乐刷收到回复或者未收到回复,系统会再次通知。为避免资源浪费,请核实并确保响应信息的准确性,可以是否重复通知为检查手段

5、扫码订单关闭接口

请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

(4)统一条码支付的订单后15秒后才允许调用订单关闭接口,统一下单订单无此限制。
5)银联二维码的不支持关单

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string close_order(此为固定值)
sign_type sign_type O 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;(不上送默认为使用MD5算法)
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id O 64 string 选填
乐刷订单号 leshua_order_id O 16 string third_order_id和leshua_order_id必填1个,优先使用leshua_order_id
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
用户子标识 sub_openid M string
订单状态 status M string
乐刷订单号 leshua_order_id M 32 string 乐刷订单号
交易类型 pay_way M string 详见下方支付类型
订单金额 amount M string
请求耗时 cost_time C string 请求接口耗费的时间
订单状态
说明
0 支付中
2 支付成功
6 订单关闭
8 支付失败
10 退款中
11 退款成功
12 退款失败

6、授权码

授权码相关接口与**条码支付接口**配套使用

6.1、授权码查询用户openid


请求地址

1/cgi-bin/lepos_pay_gateway.cgi

(2)测试商户信息及请求密钥和回调密钥请联系我们获取。

(3)生产环境走完协议流程并且联调完提交测试报告后,我司运营同事将会提供参数给贵司

(4)注: 此接口需要上送户付款码和对应的微信公众号appid才能查询到用户openid

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string query_openid 注:此为固定值
商户号 merchant_id M 10 string 由乐刷分配
授权码 auth_code M 32 string 微信授权码
微信appid appid M 32 string 微信公众号ID
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg C string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
用户子标识 sub_openid M string
商户号 merchant_id M 10 string 由乐刷分配
微信用户标识 openid M string 乐刷appid下的用户微信openid

6.2、授权码获取银联云闪付用户ID

简要描述

(1)使用用户授权码换取银联云闪付用户ID,使用此ID发起银联JS支付

注: 此步骤的前置条件:与公司归属银联分公司签署协议,并添加域名白名单获取用户授权码。

请求参数

参数名 变量名 必填 限制 类型 说明
接口名 service M string query_userid(此为固定值)
商户号 merchant_id M 10 string 由乐刷分配
用户授权码 user_auth_code M string
随机字符串 nonce_str M 32 string 随机字符串
银联支付标识 app_up_identifier C 收款方识别HTTP请求User Agent中包含银联支付标识,格式为“UnionPay/<版本号> <App标识>”,注意APP标识仅支持字母和数字。云闪付app支付不填,云闪付外app必填。示例:UnionPay/1.0 ICBCeLife
签名 sign M 32 string MD5签名结果

返回参数

参数名 变量名 必填 限制 类型 说明
返回状态码 resp_code M string 0 - 成功,非0 - 失败。注:此字段是通信标识,业务状态要看result_code
返回错误信息 resp_msg O string 错误描述:resp_code非0时返回
业务结果 result_code M 1 string 0 - 成功,非0 - 失败
错误码 error_code O string 参考错误码信息表
错误码描述 error_msg O string 错误信息描述
商户号 merchant_id M 10 string 由乐刷分配
商户订单号 third_order_id M 64 string 商户内部订单号
随机字符串 nonce_str M 32 string 随机字符串
签名 sign M 32 string MD5签名结果
用户ID user_id O string
支付类型
类型 说明 状态
WXZF 微信 支持
ZFBZF 支付宝 支持
UPSMZF 银联二维码 支持
DCPAY 数字货币 支持
订单状态
说明
0 支付中
2 支付成功
6 订单关闭
8 支付失败
10 退款中
11 退款成功
12 退款失败
付款银行类型
通道 说明
微信 https://pay.weixin.qq.com/wiki/doc/api/mch_bank.php?chapter=4_2
支付宝 https://alipay.open.taobao.com/doc2/detail?treeId=26&articleId=103259&docType=1
银联二维码 1 - 借记卡 2- 贷记卡
业务拓展参数示例(支付宝小程序需传)
"extend_business_params": "{ "
business_params ": {
 "bizSource": "mAppQrFood",
 "sourcePath": "pageFoodChain/shopTakeOut/main?suid=10"
	},
	"goods_detail": [{
 "goods_id": "5544",
 "goods_name": "爽口青笋丝",
 "price": "0.50",
 "quantity": 2,
 "goods_category": "888",
 "categories_tree": "888",
 "body": "爽口青笋丝",
 "show_url": "pageFoodChain/storeDetail/main?suid=10"
	}], "extend_params": {
 "sys_service_provider_id": "208812333665551",
 "food_order_type": "home_delivery"
	}
}",

条码支付接口goods_detail,按银联单品营销格式传递**参数goodsInfo,格式如下**

 "goods_detail":{ 
   "goodsInfo" : [
     {
   		"id": "1234567890",
   		"name": "商品 1", 
   		"price": "500", 
   		"quantity": "1"},
     {  
       "id": "1234567891",
       "name": "商品 2",
       "price": "1000",
       "quantity": "2",
       "category": "类目 1",
       "addnInfo": "商品图片 http://www.95516.com/xxx.jpg"}]
 },

7、刷卡及扫码支付异步通知

采用HTTP 标准的POST协议(请使用 application/x-www-form-urlencoded 此Content-Type接收通知消息),为了保证数据正确性、准确性,数据必须验证签名。

返回数据(支付成功通知如下)

<leshua>
    <error_code>0<error_code>
     <amount>1<amount>
     <attach>0<attach>
     <bank_type>ALIPAYACCOUNT<bank_type>
     <buyer_pay_amount><buyer_pay_amount>
     <channel_datetime>2018-12-07 22:42:39<channel_datetime>
     <channel_order_id>7551000001201812073279154152<channel_order_id>
     <coupon>0<coupon>
     <discount_amount>0<discount_amount>
     <goods_tag><goods_tag>
     <leshua_order_id>1812072242293655<leshua_order_id>
     <merchant_id>0000000018<merchant_id>
     <openid>2088032562556921<openid>
     <out_transaction_id>2018120722001456935441223102<out_transaction_id>
     <pay_time>2018-12-07 22:42:39<pay_time>
     <pay_way>ZFBZF<pay_way>
     <royalty>0<royalty>
     <settlement_amount>1<settlement_amount>
     <sign>0b574d40e722ec76b55d4e8795f71182<sign>
     <status>2<status>
     <sub_openid><sub_openid>
     <third_order_id>20181207224223102101<third_order_id>
     <trade_type>NATIVE<trade_type>
<leshua>

返回数据(刷卡支付成功通知如下)

<leshua>
<error_code>0</error_code>    
<amount>600</amount>    
<authorize_code>000000</authorize_code> 
<batch_no>000010</batch_no>   
<card_type></card_type>    
<cups_merchant_id>890584058130851</cups_merchant_id>  
<cups_terminal_id>89147601</cups_terminal_id>  
<flow_id>000109</flow_id>  
<leshua_order_id>2203221139307885</leshua_order_id> 
<leshua_refund_id>220322393155923079</leshua_refund_id> 
<leshua_sn>2041000394</leshua_sn> 
<merchant_id>6012514015</merchant_id>   
<merchant_returngoods_id>20220322114213731</merchant_returngoods_id>
<pan_overseas></pan_overseas>    
<pan_type></pan_type>   
<reference_number>113935096395</reference_number>    
<returngoods_time>2022-03-22 11:41:43</returngoods_time>   
<sign>21e70c91171b8d6ba00dea3c3ef6affa</sign>
<sn>218JCA8L7760</sn>
<status>32</status>   
<third_order_id>20220322114005352</third_order_id>    
<transaction_id>220322393155923079</transaction_id>
</leshua>

返回数据(扫码退款成功通知如下)

<leshua> 
  <error_code>0</error_code>  
  <attach/>  
  <discount_refund_amount>0</discount_refund_amount>  
  <leshua_order_id>90001401275201</leshua_order_id>  
  <leshua_refund_id>90002391275201</leshua_refund_id>  
  <merchant_id>9115219</merchant_id>  
  <merchant_refund_id>0000091152192752007041753</merchant_refund_id>  
  <nonce_str>mccqvx9q0d5nifcsd0uv9xlmkxgr6kdg</nonce_str>  
  <refund_time>2020-07-04 17:53:24</refund_time>  
  <settlement_refund_amount>1000</settlement_refund_amount>  
  <sign>426adb68310b659953d18b629c1a2e7e</sign>  
  <status>11</status>  
  <sub_merchant_id>208860057301617</sub_merchant_id>  
  <third_order_id>0000091152192752007041749</third_order_id>  
  <total_amount>5500</total_amount> 
</leshua>

7.1 扫码支付成功通知

(1)通知 URL 是代理商后台配置的通知地址。扫码支付成功后,乐刷会把相关支付信息和用户信息发送到该 URL,商户需要接收处理信息。对后台通知交互时,如果收到商户的应答不是成功或者超时,乐刷认为通知失败,会通过一定的策略定期重新发起通知,尽可能的提高通知的成功率,但是不保证通知最终一定能成功。由于存在重复发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。系统必须能够正确处理重复的通知。

(2)验证签名方法:通知的 error_code、sign 字段不参与签名,签名方式参照数据格式及数据签名说明,其中签名 key 统一由乐刷提供。另外,组织签名串时空值也参与签名。

通知参数

字段名 变量名 必填 长度限制 类型 说明
错误码 error_code string 参照错误码信息参照表
sign_type sign_type 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法;
签名 sign 32 string MD5 签名结果
商户号 merchant_id 10 string 乐刷商户号
乐刷订单号 leshua_order_id 32 string
商户订单号 third_order_id 64 string
订单金额 amount string
订单状态 status string 见下方订单的状态
支付类型 pay_way string 见下方支付类型
支付时间 pay_time string '2018-08-20 19:19:19'
银行类型 bank_type string
用户openid openid string
微信、支付宝等订单号 out_transaction_id string
用户子标识 sub_openid string 支付成功时才返回。微信:子商户appid 下用户唯一标识;支付宝:买家的支付宝用户id;
附加数据 attach 96 string 支付成功时才返回。原样返回
交易类型 trade_type string 支付成功时才返回。(1)MICROPAY--刷卡支付/条码支付(2NATIVE--原生扫码支付(3)JSAPI--公众号支付/服务窗支付(4APP--app支付(5H5Pay-支付支付(6SmPgPay-小程序支付(7JSAPIQuick-简易支付
通道订单号 channel_order_id string 支付成功时才返回
通道订单时间 channel_datetime string 支付成功时才返回
支付宝红包金额 coupon string 支付成功时才返回,单位:分
应结算金额 settlement_amount string 实际结算金额,支付成功时才返回,单位:分
折扣优惠金额 discount_amount string 本订单优惠金额,支付成功时才返回,单位:分
优惠详情 promotion_detail string 优惠详情:微信官网
活动标志 active_flag string 活动标志:WXLZ:微信绿洲,ZFBLH:支付宝蓝海
商户终端编号 pos_no 60 string 只能是汉字、英文字母、数字 注意:银联类型交易时,只能 8位:数字字母 不支持 特殊字符

返回参数

字段名 说明
000000 通知成功,乐刷收到此返回后不会继续通知
其他 乐刷收到回复或者未收到回复,系统会再次通知。为避免资源浪费,请核实并确保响应信息的准确性,可以是否重复通知为检查手段。
支付类型
类型 说明 状态
WXZF 微信 支持
ZFBZF 支付宝 支持
UPSMZF 银联二维码 支持
QQZF QQ 支持
POS 刷卡 支持
DCPAY 数字货币 支持
UPSMPAY 银联二维码(回调时返回) 支持
订单状态值
说明
0 支付中
2 支付成功
6 订单关闭
8 支付失败
10 退款中
11 退款成功
12 退款失败
30 刷卡支付成功
31 刷卡撤销成功
32 刷卡退货成功
33 刷卡冲正成功

7.2 扫码退款通知

(1)通知 URL 与扫码支付成功通知一样,均为代理商后台配置的通知地址。扫码交易退款时、退款成功时、退款失败时,乐刷均会把相关退款信息发送到该 URL,商户需要接收处理信息。对后台通知交互时,如果收到商户的应答不是成功或者超时,乐刷认为通知失败,会通过一定的策略定期重新发起通知,尽可能的提高通知的成功率,但是不保证通知最终一定能成功。由于存在重复发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。系统必须能够正确处理重复的通知。

(2)验证签名方法:通知的 error_code、sign 字段不参与签名,签名方式参照第 3 章 数据签名,其中签名 key 统一由乐刷提供。另外,组织签名串时空值也参与签名。

通知参数

字段名 变量名 必填 长度限制 类型 说明
签名 sign 32 string MD5 签名结果
sign_type sign_type 10 string 接口签名类型::MD5/SM3。 支持MD5和国密SM3算法
订单状态 status string 见下方订单状态
失败原因 failure_reason string 失败原因
商户号 merchant_id 10 string 由乐刷分配
商户订单号 third_order_id 64 string 商户内部订单号
乐刷订单号 leshua_order_id 32 string 乐刷订单号
退款金额 refund_amount string 退款金额(分)
商户退款 id merchant_refund_id 64 string
乐刷退款 id leshua_refund_id 32 string
订单总金额 total_amount string
退款时间 refund_time string 退款成功时间-退款成功才返回

返回参数

字段名 变量名
000000 通知成功,乐刷收到此返回后不会继续通知
其他 乐刷收到回复或者未收到回复,系统会再次通知
订单状态
说明
0 支付中
2 支付成功
6 订单关闭
8 支付失败
10 退款中
11 退款成功
12 退款失败
30 刷卡支付成功
31 刷卡撤销成功
32 刷卡退货成功
33 刷卡冲正成功

7.3 刷卡交易通知

(1)通知 URL 与扫码支付成功通知一样,均为代理商后台配置的通知地址。刷卡交易成功时、刷卡撤销成功时、刷卡退货成功时、刷卡冲正成功时,乐刷均会把相关交易信息发送到该 URL,商户需要接收处理信息。对后台通知交互时,如果收到商户的应答不是成功或者超时,乐刷认为通知失败,会通过一定的策略定期重新发起通知,尽可能的提高通知的成功率,但是不保证通知最终一定能成功。由于存在重复发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。系统必须能够正确处理重复的通知。

(2)验证签名方法:通知的 error_code、sign 字段不参与签名,签名方式参照第 3 章 数据签名,其中签名 key 统一由乐刷提供。另外,组织签名串时空值也参与签名。

(3)境外卡统一按照贷记卡费率进行结算,所以返回2

通知参数

字段名 变量名 必填 长度限制 类型 说明
签名 sign 32 string MD5 签名结果
订单状态 status string 详见下方订单状态
结算类型 T0 string
设备SN号 sn string 硬件序列号和机身上一致
授权码 authorize_code 6 string 普通交易下返回000000 预授权交易不固定
失败原因 failure_reason string 失败原因
商户号 merchant_id 10 string 由乐刷分配
商户订单号 third_order_id 64 string 商户内部订单号
退货时,返回原订单的第三方订单号
乐刷订单号 leshua_order_id 32 string 乐刷订单号
退货时,返回原订单的乐刷订单号
交易金额 amount string 交易金额(分)
银行卡号 card_id string 刷卡交易时提供
卡类型 card_type 1 string 1----借记卡
2----贷记卡 3---- 准贷记
发行主体 pan_overseas 1 string 0----境内卡 1----境外卡
结算方式 pan_type 1 string (1使用商户借记卡费率,非1使用商户贷记卡费率 ) 0-----未知 1-----借记 2-----贷记 3-----准贷记 4-----借贷合一 5-----预付费 6-----半开放预付费
发卡行 bank_name string 刷卡交易时提供
刷卡pos批次号 batch_no string 每次签到后从后台获取批次号,当批交易均上送此批次号
刷卡pos流水号 flow_id 3 string 终端为每个交易随机生成的流水号,随交易信息上送
乐刷SN号 leshua_sn string 刷卡交易时提供
刷卡pos参考号 reference_number 32 string POS中心分配的流水号,作为对账参考号
银联商户号 cups_merchant_id 20 string 表示上送银联的商户编号
银联终端号 cups_terminal_id 8 string 表示上送银联的终端编号
交易流水号 transaction_id 18 string 用于表示此操作的流水号
刷卡交易时间 pay_time string 刷卡交易时提供
消费撤销时间 refund_time string 消费撤销时提供
消费退货时间 returngoods_time string 消费退货时提供
消费冲正时间 reverse_time string 消费冲正时提供
商户撤销id merchant_refund_id string 消费撤销时提供
第三方传入的撤销订单号
商户退货id merchant_returngoods_id string 消费退货时提供
第三方传入的退货订单号
乐刷退款id leshua_refund_id 18 string 消费退货时提供
乐刷生成的退货流水号
商户冲正id merchant_reverse_id string 消费冲正时提供
第三方传入的冲正订单号
到账标识 t0 1 String 0:表示t1到账 1:表示t0到账; 刷卡交易时提供

返回参数

字段名 变量名
000000 通知成功,乐刷收到此返回后不会继续通知
其他 乐刷收到回复或者未收到回复,系统会再次通知
订单状态
说明
30 刷卡支付成功
31 刷卡撤销成功
32 刷卡退货成功
33 刷卡冲正成功
41 预授权成功
43 预授权撤销成功
45 预授权完成(请求)成功
47 预授权完成(通知)成功
49 预授权完成撤销成功

7.4 刷卡交易查询

请求地址:/agentCardTransaction/cardFlowQuery

加密规则: md5hex(代理商密钥+reqSerialNo+version+ data的 json 串)

请求参数:

名称 类型 是否必须 默认值 备注 其他信息
version string 必须 版本号
agentId string 必须 代理商编号
sign string 必须 验签值
reqSerialNo string 必须 随机字符串,一般为一个和日期有关的随机数
data object 非必须
└merchantId string 必须 商户号
└operation string 必须 操作类型(query_by_order,query_by_transaction,query_by_third_order)
└orderId string 非必须 订单编号
└transactionId string 非必须 交易单号
└thirdOrderId string 非必须 第三方订单号

返回参数:

名称 类型 是否必须 默认值 备注 其他信息
traceId string 必须 请求序列号
code integer 必须 错误码
message string 必须 错误信息
data object 非必须
└orderId string 非必须 乐刷订单号
└errorCode integer 非必须 请求错误码,成功为0
└errorMsg string 非必须 错误提示信息,成功时值为空
└thirdOrderId string 非必须 商户内部订单号
└merchantId string 非必须 乐刷商户号
└amount integer 非必须 交易金额
└orderStatus integer 非必须 订单状态,0-初始状态(可能交易失败);5-交易成功;11-交易失败;53-交易失败(冲正成功);54-交易结果未知(冲正失败);3-退款成功;32-退款失败;33-退款状态未知;4-退货成功;41-退货失败;42-退货状态未知
└batchNo string 非必须 POS交易批次号
└flowNo string 非必须 POS交易流水号
└sign string 非必须 签名
└merchantName string 非必须 乐刷商户名称
transactionsInfo object [] 非必须 流水 item 类型: object
└merchantId string 非必须 乐刷商户号
└pinpadUuid string 非必须 乐刷SN
└channelMerchantId string 非必须 通道商户号
└channelTerminalId string 非必须 通道终端号
└operationType integer 非必须 操作类型,与订单状态一致
└inputType string 非必须 交易用卡方式:051-插卡有密交易;052-插卡无密交易;071-挥卡有密交易;072-挥卡无密交易;
└cardBank string 非必须 发卡行名称
└authorizeCode string 非必须 交易授权码
└referenceNo string 非必须 交易参考号
└cardId string 非必须 交易卡号
└pinpadSn string 非必须 机具终端硬件号TUSN
└time string 非必须 交易时间
└cardType integer 非必须 卡类型:0(借记卡)2(贷记卡)
└channelBatchNo string 非必须 通道交易批次号
└channelFlowNo string 非必须 通道交易流水号
└transactionId string 非必须 乐刷流水号
└channelId string 非必须 通道id
└channelMerchantName string 非必须 通道商户名称
└amount string 非必须 流水金额

8、交易错误码信息参照表

错误码 描述
-20001 参数错误或无效
-20002 无效的乐刷商户号
-20003 商户订单号格式有误
-20004 乐刷订单不存在
-20005 服务错误
-20006 验签失败
-20007 签名 Key 未配置
-20008 支付类型错误
-20009 订单金额填写有误
-20010 系统错误
-20011 非法参数
-20012 授权码为空
-20013 非法的授权码
-20014 未知类型的授权码
-20015 非法的公众号支付标识
-20016 无效乐刷订单号
-20018 无效的第三方订单号或者乐刷订单号
-20019 订单状态不允许退款
-20020 订单未退款
-20021 用户名跟商户ID不匹配
-20022 无效的第三方退款订单号
-20023 订单可退余额不足
-20024 乐刷或第三方订单号必填 1 个
-20025 乐刷或第三方退款订单号必填 1 个
-20026 第三方订单号在该商户号下已经存在
-20027 该订单已支付
-20028 订单支付失败,不能撤销
-20029 该订单已退款
-20030 该订单退款失败,不能撤销
-20031 无效的机具 SN 编号,请联系客服
-20032 机具 SN 跟商户无绑定关系
-4027 系统异常
-4006 订单不存在
-1006 该订单号已被用
-1002 无效商户号
-2034 测试商户号金额限制
-4004 订单正在处理中
-5103 商户退款 id 已存在
-5014 商户无退款权限
-5015 暂不支持退款
-5016 订单状态异常
-5017 订单可退金额不足
-5018 订单退款次数超限
-5019 订单未发起退款
-5020 接口不支持该功能
-2125 交易被风控拦截
-5035 下单异常,可能原因有通道网络异常,通道状态异常,通道商户异常等

以实际返回的错误提示(error_msg)为准