1.3 消费
消费与支付消费接口区别:
消费订单允许马上支付,如果支付失败或要分单支付(支付一部分消费金额),再通过 支付消费 接口重新支付或支付剩余部分
消费订单(就是指创建订单)时,可以指明即时分账或确权分账
若为拉卡拉不分账模式,分账规则为空即可
终端IP:必须上传,并且要求上传公网IP,能让风控定位到的公网IP才行
如何获取终端基站和终端地理位置:
基站信息就是商户通过APP去获取手机的位置和基站信息,网上可以百度一下方法,有方法可以获取,如果实在获取不到,上送服务器的固定值,但是IP地址必须送用户端公网的值
参考方式: https://blog.csdn.net/android_ls/article/details/8672442
注:
1)全部支付完成前,如果有退款,则必须调用完成订单接口进行分账
请求参数说明
service : order.consume.request
params :
字段名 | 说明 | 参数类型 | 取值 | 是否必选 |
---|---|---|---|---|
buyer_member_no | 买家会员标识 | Long | 可选 | |
seller_member_no | 卖家会员标识 | Long | 必选 | |
out_order_no | 应用平台订单号 | String(32) | 接口调用方上送、唯一 | 必选 |
amount | 订单金额 | Long | 单位:分 | 必选 |
pay_amount | 首次支付金额,支付金额<=订单金额 | Long | 单位:分 | 必选 |
本次不支付传0 | ||||
out_request_no | 平台支付请求号 | String | 可选 | |
pay_method | 支付方式 | JSON(256) | 详见 | 可选 |
pay_amount = 0可不传 | ||||
auth_type | 验证方式 | Long | 一、无会员或者临时会员不传 二、有会员情况下(使用余额) 1)短信验证 2)密码验证(目前只支持支付账户) |
可选 |
terminal_ip | 终端IP | String | 支付方式为SCAN时,上传支付者IP | 必选 |
其他支付方式,上传商户支付相关设备的ip | ||||
split_rule_data | 分账规则 | JSON(256) | 分账时必传,分账规则为空时,消费金额中所有钱默认分账给商户 分账规则中分账方必须实名并且设置会员角色 分账记录总金额=订单金额 |
可选 |
front_url | 前台通知地址 | String(100) | 可选 | |
back_url | 后台通知地址 | String(100) | 可选 | |
order_name | 订单名称 | String(100) | 最多100个字符 | 必选 |
exts | 扩展参数 | String(32) | 最多32个字符 | 可选 |
split_mode | 分账模式 | Long | 0:即时分账 | 必选 |
1:确权分账 | ||||
auto_settle_type_after_split | 分账后自动提现模式 | Long |
11:分账后D1提现(订单笔笔结算专用,项目需要特殊申请,正常不需要传该字段) |
可选 |
pay_method的格式 例如下:
"pay_method":{
"SCAN":{
"hb_fq_seller_percent":""
"merchant_no":""
"amount":"1"
"term_base_station":""
"hb_fq_num":""
"member_no":""
"bar_code":"6854584110694928384"
"channel_type":""
"app_id":""
"term_loc":""
}
}
分账模板格式:
{
"rule_id" : "10001",//规则ID
"params" : {//规则中的参数值
"参数1" : "1000",
"参数2" : "1000"
},
"members" : {//分账参与方在规则中的角色 ,会员角色唯一
"会员1ID" : "角色1",
"会员2ID" : "角色2",
}
}
自定义模板格式:
{
"split_list": [
{
"member_no": "",
"amount": "",
"special_account_no":"S005", //可选,如不填,则进入余额账户,选择了则分到商户佣金专用账户,仅商户会员可选
},
{
"member_no": "",
"amount": ""
}
]
}
响应参数说明
response解析后的结果:
字段名 | 说明 | 参数类型 | 取值 | 是否必选 | |
---|---|---|---|---|---|
status | 服务调用是否成功 | String | ”OK”表示成功; “ERROR”表示失败 |
必选 | |
result | JSON Object类型的返回值 | ||||
order_no | 订单号 | Long | 必选 | ||
pay_status | 支付状态 | Long | 详见
pay_amount > 0时返回 |
可选 | |
order_status | 订单状态 | Long | 详见 | 必选 | |
error_message | 错误信息 | String | 可选 | ||
pay_seq_no | 支付流水号 | String | pay_amount > 0时返回 | 可选 | |
split_rule_result | 分账会员列表 | JSONArray | 必选 | ||
split_seq_no | 分账流水号 | String | 可选 | ||
buyer_member_no | 买家会员标识 | String | 有买家会员时返回 | 可选 | |
pay_info | 支付信息 | JSONObject | { prepay_id: (支付宝) package: (微信) timestamp:(微信) pay_sign:(微信) nonce_str: (微信) appId: (微信) trade_no:(POS) qr_code:(支付宝qrcode返回) pay_token:支付令牌(线下APP支付、快捷支付) redirect_url:银联 pay_no:(转账支付、快捷支付) bts_url: 无卡分期支付url counter_url:网关收银台支付url pay_order_no:网关收银台支付订单号 cqp_mp_app_id(云闪付小程序) cqp_mp_path(云闪付小程序path) prepay_id(微信APP 预支付交易会话ID) pay_sign(微信APP 支付签名信息) app_id(微信APP 移动应用appid) time_stamp(微信APP 时间戳) nonce_str(微信APP 随机字符串) package(微信APP 订单详情扩展字符串) sign_type(微信APP 签名方式) partner_id(微信APP 从业机构号) } |
可选 | |
qzt_channel_pay_request_no | 钱帐通请求通道的流水号 | String | 支付完成返回 | 可选 | |
channel_trade_no | 渠道交易流水号(收单) | String(32) | 支付成功返回 | 可选 | |
channel_seq_no | 渠道支付流水号(收单) | String(32) | 支付成功返回 | 可选 | |
pay_channel_trade_no | 支付通道交易流水号(支付宝、微信) | String(32) | 支付成功返回 | 可选 | |
third_party_payment | 三方支付渠道 | String(32) | 交易完成返回 微信:WECHAT 支付宝:ALIPAY |
可选 | |
open_id | 微信/支付宝/云闪付 的openid | String | 可选 | ||
sub_open_id | 微信子appid的openid | String | 可选 | ||
pay_time | 支付时间 | String(32) | yyyy-MM-dd HH:mm:ss | 可选 | |
confirm_url | 密码确认的URL地址 | String | 网关支付时返回 | 可选 | |
is_confirm | 是否需要确认 | boolean | 可选 | ||
error_code | 错误代码 | 仅当status=error时有效 | 可选 | ||
message | 错误信息 | 仅当status=error时有效 | 可选 |
split_rule_result 的格式为:
{
"split_list": [
{
"member_no": "6644218545729445888",
"amount": "1"
},
{
"member_no": "6648138619129438208",
"amount": "1"
}
]
}
例:
{
"split_list": [
{
"member_no": "6644218545729445888",
"amount": "1"
},
{
"member_no": "6648138619129438208",
"amount": "1"
}
]
}
文档更新时间: 2024-08-29 11:16 作者:周兴奎