聚合支付¶
支付对象¶
关于支付,Adapay 系统内数据是通过 Payment对象 的形式进行流转,所有的支付相关信息都会存储在这个对象中,您可以通过 Adapay 开放的方法创建一个新的 Payment对象,也可以通过 Payment对象 的唯一标识 id 来查询一个已经存在的 Payment对象 状态。
使用 Adapay 前端 SDK 进行支付时,也会用到 Payment对象,服务端在传 Payment对象 到客户端进行支付前,请先使用序列化方式将对象转换成 JSON 字符串。
属性 |
类型 |
描述 |
---|---|---|
id |
String(64) |
由 Adapay 生成的支付对象 id, 该 id 在 Adapay 系统内唯一 |
object |
String(20) |
支付对象,payment |
created_time |
Timestamp |
支付创建时的 10 位时间戳 |
order_no |
String(64) |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
prod_mode |
String(5) |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
app_id |
String(64) |
控制台 主页面应用的app_id |
pay_channel |
String(20) |
支付渠道,参见 支付渠道 说明 |
pay_amt |
String(16) |
交易金额(必须大于 0),保留两位小数点,如0.10、100.05等 |
currency |
String(3) |
详见 货币代码 |
query_url |
String(128) |
可临时用来查询支付订单状态的链接,此链接的有效期只有30分钟 |
description |
String(128) |
订单附加说明 |
expend |
Map |
支付渠道请求成功返回的额外参数。详见 支付渠道 expend参数 说明 |
party_order_id |
String(64) |
用户账单上的商户订单号 |
out_trans_id |
String(64) |
用户账单上的交易订单号 |
end_time |
String(14) |
用户支付完成时间 |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建支付对象¶
当您想发起一次支付请求时需要通过 Adapay 提供的创建方法获取一个新的 Payment对象,您可使用此 Payment对象 发起支付。 对于支付结果,Adapay 会发送 异步消息通知 告知。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
pay_channel |
String(20) |
Y |
支付渠道,参见 支付渠道 |
pay_amt |
String(14) |
Y |
交易金额,必须大于0,保留两位小数点,如0.10、100.05等 |
pay_mode |
String(20) |
N |
支付模式,delay- 延时分账模式(值为 delay 时,div_members 字段必须为空);值为空时并且div_mermbers不为空时,表示实时分账;值为空时并且div_mermbers也为空时,表示不分账; |
goods_title |
String(64) |
Y |
商品标题 |
goods_desc |
String(127) |
Y |
商品描述信息,微信小程序和微信公众号该字段最大长度42个字符 |
currency |
String(3) |
N |
3位 ISO 货币代码,小写字母,默认为人民币:cny,详见 货币代码 |
div_members |
String |
N |
分账对象信息列表,最多仅支持7个分账方,json 数组形式,详见 分账对象信息列表 |
description |
String(128) |
N |
订单附加说明 |
time_expire |
String(20) |
N |
订单失效时间,输入格式:yyyyMMddHHmmss,最长失效时间为微信、支付宝:反扫类:3分钟;非反扫类:2小时;云闪付:1天,值为空时默认最长时效时间 |
device_info |
Map |
Y |
前端设备信息,详见 设备信息 |
expend |
Map |
N |
支付渠道额外参数,JSON格式,条件可输入,详见 支付渠道 expend参数 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
fee_mode |
String(1) |
N |
手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方 |
调用示例¶
Java
// 请求参数
Map<String, Object> paymentParams = new HashMap<String, Object>();
paymentParams.put("order_no", "123456789");
paymentParams.put("pay_amt", "0.05");
paymentParams.put("app_id", "app_XXXXXXXX");
paymentParams.put("pay_channel", "alipay");
paymentParams.put("goods_title", "Your goods_title");
paymentParams.put("goods_desc", "Your goods_desc");
paymentParams.put("description", "payment Discription");
paymentParams.put("div_members", [{"amount":"0.05", "fee_flag":"Y", "member_id":"member_id_test"}]);
// 调用创建方法,获取 Payment对象_
Map<String, Object> response = Payment.create(paymentParams);
成功响应
{
"id": "002112020012010545810065165317376983040",
"created_time": "1579488898",
"order_no": "123456789",
"prod_mode": "true",
"app_id": "app_XXXXXXXX",
"pay_channel": "alipay",
"pay_amt": "0.05",
"currency": "cny",
"query_url": "https://api.adapay.tech/v1/expire/payments/1/49a10b45183a876b6269acb0f517bdcf",
"status": "succeeded",
"description": "payment Discription",
"expend": {
"pay_info": "bax028781ovixf6i8xyf60be"
}
}
创建快捷支付确认¶
当 创建支付对象 中 pay_channel 为 fast_pay 时,Adapay 会向用户已绑定快捷卡对应的预留手机号发送短信验证码,需要通过该功能输入用户收到的短信验证码进行验证。 验证结果,Adapay 会发送 异步消息通知 告知。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
payment_id |
String(64) |
Y |
由 Adapay 生成的支付对象 id |
sms_code |
String(6) |
Y |
短信验证码 |
调用示例¶
Java
Map<String, Object> confirmParams = new HashMap<String, Object>();
confirmParams.put("payment_id", "002112020012010545810065165317376983040");
confirmParams.put("sms_code", "123456");
confirmParams.put("app_id", "app_XXXXXXXX");
Map<String, Object> result = FastPay.confirm(confirmParams);
成功响应
{
"app_id":"app_XXXXXXXX",
"created_time":"1606440833",
"id":"002112020112709335210178209923564879872",
"object":"payment",
"order_no":"123456789",
"pay_amt":"0.05",
"pay_channel":"fast_pay",
"prod_mode":"true",
"status":"succeeded"
}
创建快捷支付短信重发¶
当 创建支付对象 中 pay_channel 为 fast_pay 时,Adapay 会向用户已绑定快捷卡对应的预留手机号发送短信验证码,若用户未收到短信验证码,可通过该功能对原快捷支付重发短信验证码。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
payment_id |
String(64) |
Y |
由 Adapay 生成的支付对象 id |
响应¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
status |
String |
Y |
当前查询状态,参见 状态 说明 |
error_code |
String |
N |
错误码,详见 错误 |
error_msg |
String |
N |
错误描述,详见 错误 |
error_type |
String |
N |
错误类型,详见 错误 |
invalid_param |
String |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
Map<String, Object> smsCodeParam = new HashMap<String, Object>();
smsCodeParam.put("payment_id", "20190912");
Map<String, Object> result = FastPay.smsCode(smsCodeParam);
成功响应
{
"status": "succeeded"
}
查询支付对象¶
通过 Payment对象 的 id 查询一个已创建的 Payment对象。仅支持查询支付交易发起之后3天内的交易状态,3天之后的交易状态请使用 对账单下载 对账,或登陆 控制台 查询。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
payment_id |
String |
Y |
由 Adapay 生成的支付对象 id |
响应¶
查询的结果将通过一个 JSON 同步返回,返回参数如下:
参数 |
描述 |
||
---|---|---|---|
id |
String(64) |
Y |
由 Adapay 生成的支付对象 id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
pay_channel |
String(20) |
Y |
支付渠道 |
pay_amt |
String(16) |
N |
交易金额,必须大于 0,保留两位小数点,如0.10、100.05等 |
party_order_id |
String(64) |
N |
用户账单上的商户订单号 |
open_id |
String(64) |
N |
若为微信渠道,则为微信openid,若为支付宝渠道,则为buyerid |
buyer_logon_id |
String(100) |
N |
支付宝买家登录账号 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
// 在完成初始化设置情况下,调用查询方法,获取 Payment 查询结果
Map<String, Object> response = Payment.query("002112020012010545810065165317376983040");
成功响应
{
"id": "002112020012010545810065165317376983040",
"order_no": "123456789",
"pay_amt": "0.05",
"pay_channel": "alipay",
"status": "succeeded"
}
查询支付对象列表¶
该功能可查询已发起的支付对象,支持使用请求订单号、支付对象id、以及按时间范围分页查询。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
order_no |
String(64) |
N |
创建支付对象时上送的请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
payment_id |
String(64) |
N |
Adapay 生成的支付对象 id |
page_index |
int |
N |
当前页码,取值范围 1~300000,默认值为 1 |
page_size |
int |
N |
页面容量,取值范围 1~20,默认值为 10 |
created_gte |
String |
N |
查询大于等于创建时间(13位时间戳) |
created_lte |
String |
N |
查询小于等于创建时间(13位时间戳);若不为空时,created_gte 字段值不能为空且小于created_lte 时间 |
响应¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
object |
String(8) |
Y |
支付对象列表,list |
prod_mode |
String(4) |
Y |
是否prod模式,true是prod模式,false是mock模式 |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
order_no |
String(64) |
N |
创建支付对象时上送的请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
payment_id |
String(64) |
N |
Adapay 生成的支付对象 id |
has_more |
boolean |
Y |
是否还有更多,true-是,false-否 |
payments |
List |
N |
支付对象列表,若未查询到结果时,字段为空 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
payments字段说明:
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
id |
String(64) |
Y |
Adapay 生成的支付对象 id |
object |
String(20) |
Y |
支付对象,payment |
created_time |
String(10) |
Y |
收银台对象创建时间戳 |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
app_id |
String(64) |
Y |
应用的app_id |
pay_channel |
String(20) |
Y |
支付渠道,参见 支付渠道 |
pay_amt |
String(14) |
Y |
交易金额 |
pay_mode |
String(20) |
N |
支付模式,delay- 延时分账模式;值为空时,表示实时分账。 |
fee_amt |
String(20) |
N |
手续费金额 |
div_members |
List |
N |
分账对象信息列表,详见 分账对象信息列表 |
payment_confirms |
List |
N |
支付确认对象 列表 |
fee_mode |
String(1) |
N |
手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I。 |
reserved_amt |
String(14) |
Y |
若为延时分账时,已发起支付撤销的总金额 |
refunded_amt |
String(14) |
Y |
若为实时分账时,已发起退款的总金额 |
confirmed_amt |
String(14) |
Y |
若为延时分账时,已发起支付确认的总金额 |
party_order_id |
String(64) |
N |
用户账单上的商户订单号 |
out_trans_id |
String(64) |
N |
用户账单上的交易订单号 |
open_id |
String(64) |
N |
若为微信渠道,则为微信openid,若为支付宝渠道,则为buyerid |
buyer_logon_id |
String(100) |
N |
支付宝买家登录账号 |
end_time |
String(14) |
N |
用户支付完成时间 |
coupon_infos |
String |
N |
优惠券信息,使用 JSON格式 |
cash_pay_amt |
String(14) |
N |
现金支付金额 |
discount_amt |
String(14) |
N |
优惠金额 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
调用示例¶
Java
Map<String, Object> paymentParams = new HashMap<>();
paymentParams.put("app_id", "app_XXXXXXXX");
paymentParams.put("page_index", "1");
paymentParams.put("page_size", "10");
paymentParams.put("created_gte", "1571466657929");
paymentParams.put("created_lte", "1571898657929");
Map<String, Object> paymentList = Payment.queryList(paymentParams);
成功响应
{
"app_id": "app_XXXXXXXX",
"has_more": false,
"object": "list",
"payments": [
{
"app_id": "app_XXXXXXXX",
"cash_pay_amt": "0.08",
"confirmed_amt": "1.00",
"coupon_infos": "[{\"activeId\":\"15642411\",\"addnInfo\":\"\",\"couponAmt\":\"0.02\",\"couponId\":\"24549842316\",\"couponName\":\"测试0.02元券\",\"couponRange\":\"GLOBAL\",\"couponType\":\"COUPON\",\"goodsInfo\":[],\"merchantContribute\":\"0.00\",\"otherContribute\":\"0.00\"}]",
"created_time": "1596511538",
"discount_amt": "0.02",
"end_time": "20200811104755",
"fee_amt": "0.00",
"fee_mode": "I",
"has_more": false,
"id": "0021102020080411253810136563443156504576",
"object": "payment",
"order_no": "202004281596511504701",
"out_trans_id": "4211111717202117235171717297",
"party_order_id": "02212008170274571683231",
"pay_amt": "99.00",
"pay_channel": "alipay",
"pay_mode": "delay",
"payment_confirms": [
{
"app_id": "app_XXXXXXXX",
"confirm_amt": "1.00",
"confirmed_amt": "1.00",
"created_time": "1597051983",
"description": "description",
"div_members": [
{
"amount": "0.50",
"fee_flag": "N",
"member_id": "0"
}, {
"amount": "0.50",
"fee_flag": "Y",
"member_id": "member_id_14149"
}
],
"fee_amt": "0.00",
"fee_mode": "I",
"id": "0021120200810173302990138830232292175872",
"object": "payment_confirm",
"order_no": "jsdk_payment_confirm_1597051981734",
"refunded_amt": "0.00",
"reserved_amt": "0.00",
"status": "succeeded",
"prod_mode": "true"
}
],
"refunded_amt": "0.00",
"reserved_amt": "0.16",
"status": "succeeded",
"prod_mode": "true"
}
],
"status": "succeeded",
"prod_mode": "true"
}
支付关单¶
针对已经创建的 支付对象,您可以调用关单接口进行交易的关闭。调用此接口后,该用户订单将不再能支付成功。 对于关单功能的使用有如下规则:
1.存在关单记录,不能再次关单
2.交易时间 1分钟 内无法关单成功
3.正扫交易时间超过 2小时 无法关单成功
4.支付宝正扫接口,如果用户没有扫码,订单不能关闭成功(二维码给用户展示,如果用户没有用手机去扫码,那这笔就不能关单; 如果用户扫过了的话(无需支付成功)就可以关单了)—-微信正扫无此条限制
5.网银和快捷类交易都不支持关单操作
对于已经成功付款的订单,请使用 退款对象 接口进行退款处理。我们建议您只有针对未支付的订单调用关单接口。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
payment_id |
String(32) |
Y |
由 Adapay 生成的支付对象 id |
reason |
String(255) |
N |
关单描述 |
expend |
String(255) |
N |
扩展域 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
响应¶
关单的结果将通过一个 JSON 同步返回,返回参数如下:
参数 |
描述 |
||
---|---|---|---|
payment_id |
String(64) |
Y |
由 Adapay 生成的支付对象 id |
created_time |
String(10) |
Y |
支付创建时的时间戳 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
// 在完成初始化设置情况下,调用关单方法获取结果
Map<String, Object> response = Payment.close("002112020012010545810065165317376983040");
成功响应
{
"payment_id": "002112020012010545810065165317376983040",
"created_time": "1579488898",
"status": "succeeded"
}
退款对象¶
属性 |
类型 |
描述 |
---|---|---|
id |
String(64) |
由 Adapay 生成的退款对象 id |
object |
String(20) |
退款对象,refund |
refund_order_no |
String(64) |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
payment_id |
String(64) |
退款目标支付对象 id |
refund_amt |
String(16) |
退款金额(必须大于 0),保留两位小数点,如0.10、100.05等 |
prod_mode |
String(5) |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
trans_state |
String(16) |
退款状态,S-成功,F-失败,P-处理中 |
created_time |
String(10) |
退款对象创建时间 |
succeed_time |
String(16) |
退款成功时间 |
fee_amt |
String(16) |
退款手续费 |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建退款对象¶
当您的业务需要发起退款时,可通过 Adapay 系统提供的创建 Refund对象 方法创建一个退款对象,资金会原路退回用户的支付宝或微信中。 支持一次全额或多次部分退款,退款次数最多不超过10次。多次部分退款时,当前退款金额 + 已退款金额不能大于原支付金额。 对于每次撤销交易,Adapay 都会通过 异步消息通知 告知结果。
注:创建退款对象同步返回成功,表示Adapay受理成功,退款结果以异步通知为准。支持退款最长时间为178天,若返回码是“order_id_not_exists 订单记录不存在”,既超过退款期限,无法退款成功。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
id |
String(64) |
Y |
当支付确认成功后进行退款,请传入支付确认对象的id;当实时分账成功后进行退款,请传入支付对象的id。 |
refund_order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
refund_amt |
String(16) |
Y |
退款金额,若退款金额小于原交易金额,则认为是部分退款,必须大于0,保留两位小数点,如0.10、100.05等 |
reason |
String(512) |
N |
退款描述 |
expend |
String(512) |
N |
扩展域 |
device_info |
String(1024) |
N |
前端设备信息,详见 设备信息 |
div_members |
String(1024) |
N |
分账对象信息列表,json 形式,详见 分账对象信息列表 ;若原交易对象未分账,则创建退款对象时,该字段不传;若原交易对象分账,则退款分账对象必须在原交易参与的分账方范围内,分账对象列表内的总金额必须等于退款金额,每个分账对象的退分账金额必须满足:退分账金额+已退分账金额 <= 原交易分账对象的分账金额。 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
fail_fast |
String(1) |
N |
快速失败标识:N 或者为空时-退款失败及时返回错误,仅支持实时分账场景;为Y时,退款失败会走 Adapay 人工审核流程,核对后再次出款或回账,最晚 T+3 返回终态结果 |
调用示例¶
Java
// 在完成初始化设置情况下,调用方法,获取 Refund对象
String id = "002112020012010545810065165317376983040";
Map<String, Object> refundParams = new HashMap<String, Object>();
refundParams.put("refund_amt", "0.05");
refundParams.put("refund_order_no", "123456789");
Map<String, Object> response = Refund.create(id, refundParams);
成功响应
{
"id": "002112020012010545810065165317376983041",
"created_time": "1410778843",
"payment_id": "002112020012010545810065165317376983040",
"refund_amt": "0.05",
"trans_state": "refunded",
"fee_amt": "0.00",
"status": "pending"
}
查询退款对象¶
您可以在任何时候,通过退款查询接口确认退款状态。通过 退款对象 的 id 或支付对象的id查询已创建的退款对象。
请求参数¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
refund_id |
String(64) |
N |
Adapay生成的退款对象id,三者必传其一 |
payment_id |
String(64) |
N |
Adapay生成的支付对象id,三者必传其一 |
refund_order_no |
String(64) |
N |
退款订单号,三者必传其一 |
响应¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
prod_mode |
String(5) |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
refunds |
List |
N |
退款对象列表,若未查询到结果时,字段为空 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
refunds字段说明:
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
refund_id |
String(64) |
Y |
Adapay生成的退款对象id |
trans_status |
String(1) |
Y |
退款状态:I-初始,P-处理中,F-失败,S-成功 |
payment_id |
String(64) |
Y |
Adapay生成的支付对象id |
refund_amt |
String(16) |
Y |
退款金额 |
fee_amt |
String(16) |
N |
退款手续费,退款成功时有值 |
refund_order_no |
String(64) |
Y |
退款订单号 |
调用示例¶
Java
Map<String, Object> refundParams = new HashMap<>(2);
refundParams.put("payment_id", payment_id);
refundParams.put("refund_id", refund_id);
refundParams.put("refund_order_no", refund_order_no);
Map<String, Object> refund = Refund.query(refundParams);
成功响应
{
"status": "succeeded",
"prod_mode": "true",
"refunds": [
{
"payment_id": "002112019110811022810038712892084113408",
"refund_id": "0021120191108110337980038713178955902976",
"refund_order_no": "refundOrderNo00211201911081103379",
"trans_status": "P",
"refund_amt": "0.01",
"fee_amt": ""
}
]
}
用户¶
个人用户( Member)¶
属性 |
类型 |
描述 |
---|---|---|
app_id |
String(64) |
控制台 主页面应用的app_id |
member_id |
String(64) |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
location |
String(128) |
用户地址 |
String(64) |
用户邮箱 |
|
gender |
String(16) |
MALE:男,FEMALE:女 |
tel_no |
String(11) |
用户手机号 |
nickname |
String(16) |
用户昵称 |
user_name |
String(64) |
用户姓名 |
cert_type |
String(2) |
证件类型,仅支持:00-身份证 |
cert_id |
String(64) |
证件号 |
created_time |
String(10) |
创建时的时间戳 |
prod_mode |
String(5) |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
disabled |
String(1) |
是否禁用该用户,Y:是,N:否 |
identified |
String(1) |
是否已实名认证,Y:是,N:否 |
settle_accounts |
List |
|
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建用户对象¶
创建用户对象用于将商户 member_id 与 Adapay 系统做关联,商户需要保证 member_id 在应用 app_id 下唯一。关联完成后, 可以创建结算账户用于用户分账功能。
注:若历史已创建结算账户成功的 member_id,则可以直接使用收银台对象功能。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
location |
String(128) |
N |
用户地址 |
String(64) |
N |
用户邮箱 |
|
gender |
String(16) |
N |
MALE:男,FEMALE:女,为空时表示未填写 |
nickname |
String(16) |
N |
用户昵称 |
tel_no |
String(11) |
N |
用户手机号,使用 收银台对象 功能必填 若创建用户对象用于分账功能,则手机号字段一定不要上送 |
user_name |
String(64) |
N |
用户姓名,使用 收银台对象 功能必填 若创建用户对象用于分账功能,则用户姓名字段一定不要上送 |
cert_type |
String(2) |
N |
证件类型,仅支持:00-身份证,使用 收银台对象 功能必填 若创建用户对象用于分账功能,则证件类型字段一定不要上送 |
cert_id |
String(64) |
N |
证件号,使用 收银台对象 功能必填 若创建用户对象用于分账功能,则证件号字段一定不要上送 |
响应
成功时同步返回一个包含 Member对象 的 JSON。
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(7);
memberParams.put("member_id", "member_id_test");
memberParams.put("app_id", "app_XXXXXXXX");
memberParams.put("location", "上海市徐汇区宜山路700号");
memberParams.put("email", "123@163.com");
memberParams.put("gender", "MALE");
memberParams.put("tel_no", "13153333333");
memberParams.put("nickname", "nick_name");
Map<String, Object> member = Member.create(memberParams);
成功响应
{
"member_id": "member_id_test",
"created_time": "1568908104",
"gender": "MALE",
"identified": "N",
"tel_no": "13153333333",
"prod_mode": "true",
"nickname": "nick_name",
"disabled": "N",
"location": "上海市徐汇区宜山路700号",
"app_id": "app_XXXXXXXX",
"email": "123@163.com",
"object": "member",
"status": "succeeded"
}
创建实名用户对象¶
接口版本:v1
请求方法:POST
接口功能号:members.realname
创建用户对象用于将商户 member_id 与 Adapay 系统做关联,商户需要保证 member_id 在应用 app_id 下唯一。 需要上送真实个人姓名和证件信息。关联完成后,可以直接用于用户分账功能。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
location |
String(128) |
N |
用户地址 |
String(64) |
N |
用户邮箱 |
|
gender |
String(16) |
N |
MALE:男,FEMALE:女,为空时表示未填写 |
nickname |
String(16) |
N |
用户昵称 |
tel_no |
String(11) |
Y |
用户手机号 |
user_name |
String(64) |
Y |
用户姓名 |
cert_type |
String(2) |
Y |
证件类型,仅支持:00-身份证 |
cert_id |
String(64) |
Y |
证件号 |
响应
成功时同步返回一个包含 Member对象 的 JSON。
属性 |
类型 |
描述 |
---|---|---|
app_id |
String(64) |
控制台 主页面应用的app_id |
member_id |
String(64) |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
location |
String(128) |
用户地址 |
String(64) |
用户邮箱 |
|
gender |
String(16) |
MALE:男,FEMALE:女 |
tel_no |
String(11) |
用户手机号 |
nickname |
String(16) |
用户昵称 |
user_name |
String(64) |
用户姓名 |
cert_type |
String(2) |
证件类型,仅支持:00-身份证 |
cert_id |
String(64) |
证件号 |
created_time |
String(10) |
创建时的时间戳 |
prod_mode |
String(5) |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
disabled |
String(1) |
是否禁用该用户,Y:是,N:否, |
identified |
String(1) |
是否已实名认证,Y:是,N:否, |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(10);
memberParams.put("adapay_func_code", "members.realname");
memberParams.put("member_id", "member_id_test");
memberParams.put("app_id", "app_XXXXXXXX");
memberParams.put("location", "上海市徐汇区宜山路700号");
memberParams.put("email", "123@163.com");
memberParams.put("gender", "MALE");
memberParams.put("tel_no", "13153333333");
memberParams.put("user_name", "用户A");
memberParams.put("cert_type", "00");
memberParams.put("cert_id", "131008200001013048");
Map<String, Object> member = AdapayCommon.requestAdapay(memberParams);
成功响应
{
"member_id": "member_id_test",
"created_time": "1568908104",
"gender": "MALE",
"identified": "N",
"tel_no": "13153333333",
"prod_mode": "true",
"userName": "用户A",
"cert_type":"00",
"cert_id":"131008200001013048"
"disabled": "N",
"identified":"Y"
"location": "上海市徐汇区宜山路700号",
"app_id": "app_XXXXXXXX",
"email": "123@163.com",
"object": "member",
"status": "succeeded"
}
查询用户对象¶
查询已创建的单个用户对象
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
响应
成功时同步返回一个包含 Member对象 的 JSON。
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("member_id", "member_id_test");
memberParams.put("app_id", "app_XXXXXXXX");
Map<String, Object> member = Member.query(memberParams);
成功响应
{
"member_id": "member_id_test",
"created_time": "1568908104",
"gender": "MALE",
"identified": "N",
"tel_no": "13153333333",
"prod_mode": "true",
"nickname": "nick_name",
"disabled": "Y",
"location": "上海市徐汇区宜山路700号",
"app_id": "app_XXXXXXXX",
"email": "1234@163.com",
"object": "member",
"status": "succeeded"
}
查询用户对象列表¶
查询商户应用 id 下已创建的用户对象列表
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
page_index |
int |
N |
当前页码,取值范围 1~300000,默认值为 1 |
page_size |
int |
N |
页面容量,取值范围 1~20,默认值为 10 |
created_gte |
String |
N |
查询大于等于创建时间(13位时间戳) |
created_lte |
String |
N |
查询小于等于创建时间(13位时间戳);若不为空时,created_gte 字段值不能为空且小于created_lte 时间 |
响应
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
object |
String |
N |
用户对象列表,list |
members |
List |
N |
Member对象 列表,若未查询到结果时,字段为空 |
prod_mode |
String(5) |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
has_more |
boolean |
Y |
是否还有更多,true-是,false-否 |
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("page_index", "1");
memberParams.put("app_id", "app_XXXXXXXX");
memberParams.put("page_size", "20");
memberParams.put("created_gte", String.valueOf(System.currentTimeMillis() - 5 * 60 * 1000));
memberParams.put("created_lte", String.valueOf(System.currentTimeMillis()));
Map<String, Object> member = Member.queryList(memberParams);
成功响应
{
"members": [{
"member_id": "member_id_test",
"created_time": "1568908104",
"gender": "MALE",
"identified": "N",
"tel_no": "13153333333",
"prod_mode": "true",
"nickname": "nick_name",
"disabled": "Y",
"location": "上海市徐汇区宜山路700号",
"app_id": "app_XXXXXXXX",
"email": "1234@163.com",
"object": "member",
"status": "succeeded"
}],
"prod_mode": "true",
"has_more": false,
"object": "list",
"status": "succeeded"
}
企业用户(CorpMember)¶
属性 |
类型 |
描述 |
---|---|---|
app_id |
String(64) |
控制台 主页面应用的app_id |
order_no |
String(64) |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
member_id |
String(64) |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
name |
String(50) |
企业名称 |
prov_code |
String(4) |
省份编码 (省市编码) |
area_code |
String(4) |
地区编码 (省市编码) |
social_credit_code |
String(18) |
统一社会信用码 |
social_credit_code_expires |
String(8) |
统一社会信用证有效期(格式:YYYYMMDD,例如:20190909) |
business_scope |
String(200) |
经营范围 |
legal_person |
String(20) |
法人姓名 |
legal_cert_id |
String(20) |
法人身份证号码 |
legal_cert_id_expires |
String(8) |
法人身份证有效期(格式:YYYYMMDD,例如:20190909) |
legal_mp |
String(11) |
法人手机号 |
address |
String(256) |
企业地址 |
zip_code |
String(6) |
邮编 |
telphone |
String(30) |
企业电话 |
String(40) |
企业邮箱 |
|
attach_file |
File |
上传附件,传入的中文文件名称为 UTF-8 字符集 URLEncode 编码后的字符串。内容须包含三证合一证件照、法人身份证正面照、法人身份证反面照、开户银行许可证照。 压缩 zip包后上传,最大限制为 9 M。 |
bank_code |
String(8) |
银行代码,如果需要自动开结算账户,本字段必填(详见附录 银行代码) |
bank_acct_type |
String(1) |
银行账户类型:1-对公;2-对私,如果需要自动开结算账户,本字段必填 |
card_no |
String(40) |
银行卡号,如果需要自动开结算账户,本字段必填 |
card_name |
String(64) |
银行卡对应的户名,如果需要自动开结算账户,本字段必填 |
settle_accounts |
List |
|
audit_state |
String(16) |
审核状态,状态包括:A-待审核;B-审核失败;C-开户失败;D-开户成功但未创建结算账户;E-开户和创建结算账户成功 |
audit_desc |
String(128) |
审核结果描述 |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建企业用户对象¶
创建企业用户对象是将商户 member_id 与 Adapay 系统做关联,商户需要保证 member_id 在应用 id 下唯一。 创建企业用户对象实际是发起企业用户申请,同步返回 pending 状态表示申请已受理,人工审核后,审核成功或失败结果会 异步消息通知 告知。
审核成功,则创建企业用户对象成功;审核失败,您可根据审核失败原因修改对应要素,重新调用创建企业用户对象发起申请。
创建企业用户对象若上送了银行代码、银行账户类型、银行卡号、银行卡开户姓名要素时,人工审核成功后,Adapay 系统自动创建企业用户结算账户对象;若未上送,则不会自动创建结算账户对象,但您可调用创建结算账户对象单独创建结算账户。
注:当银行账户类型为2-对私时,请务必绑定一张 Ⅰ类 银行卡,若绑定了一张 Ⅱ类 银行卡时,当结算金额超过10000元时,银行会提示金额超限导致结算失败。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
name |
String(50) |
Y |
企业名称 |
prov_code |
String(4) |
Y |
省份编码 (省市编码) |
area_code |
String(4) |
Y |
地区编码 (省市编码) |
social_credit_code |
String(18) |
Y |
统一社会信用码 |
social_credit_code_expires |
String(8) |
Y |
统一社会信用证有效期 |
business_scope |
String(200) |
Y |
经营范围 |
legal_person |
String(20) |
Y |
法人姓名 |
legal_cert_id |
String(20) |
Y |
法人身份证号码 |
legal_cert_id_expires |
String(8) |
Y |
法人身份证有效期 |
legal_mp |
String(11) |
Y |
法人手机号 |
address |
String(256) |
Y |
企业地址 |
zip_code |
String(6) |
N |
邮编 |
telphone |
String(30) |
N |
企业电话 |
String(40) |
N |
企业邮箱 |
|
attach_file |
File |
Y |
上传附件,传入的中文文件名称为 UTF-8 字符集 URLEncode 编码后的字符串。内容须包含三证合一证件照、法人身份证正面照、法人身份证反面照、开户银行许可证照。 压缩 zip包后上传,最大限制为 9 M。 |
bank_code |
String(8) |
N |
银行代码,如果需要自动开结算账户,本字段必填(详见附录 银行代码) |
bank_acct_type |
String(1) |
N |
银行账户类型:1-对公;2-对私,如果需要自动开结算账户,本字段必填 |
card_no |
String(40) |
N |
银行卡号,如果需要自动开结算账户,本字段必填 |
card_name |
String(64) |
N |
银行卡对应的户名,如果需要自动开结算账户,本字段必填;若银行账户类型是对公,必须与企业名称一致 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
同步返回
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
order_no |
String(64) |
Y |
请求订单号 |
member_id |
String(64) |
Y |
商户下的用户id |
app_id |
String(64) |
Y |
控制台主页面应用的app_id |
created_time |
String(8) |
Y |
创建时的时间戳 |
prod_mode |
String(5) |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("member_id", "jsdk_member\_"+System.currentTimeMillis());
memberParams.put("app_id", "app_XXXXXXXX");
memberParams.put("order_no","jsdk_order\_"+System.currentTimeMillis());
memberParams.put("social_credit_code_expires", "1111");
memberParams.put("business_scope", "123");
memberParams.put("name", "中国测试有限公司");
memberParams.put("prov_code", "0011");
memberParams.put("area_code", "1100");
memberParams.put("social_credit_code", "201932658452655");
memberParams.put("legal_person", "张测试");
memberParams.put("legal_cert_id", "321485199014234852");
memberParams.put("legal_cert_id_expires", "20220112");
memberParams.put("legal_mp", "13958465215");
memberParams.put("address", "中国上海");
memberParams.put("zip_code", "225485");
memberParams.put("telphone", "41164452");
memberParams.put("email" , "ceshi@qq.com");
memberParams.put("bank_code", "652142");
memberParams.put("bank_acct_type", "1");
memberParams.put("card_no", "622546895642156");
memberParams.put("card_name", "中国测试有限公司");
File file = new File("/demo/test.zip");
Map<String, Object> member = CorpMember.create(memberParams,file);
成功响应
{
"member_id": "jsdk_member_1568908107580",
"order_no": "jsdk_order_1568908107580",
"created_time": "20190919234828",
"prod_mode": "true",
"app_id": "app_XXXXXXXX",
"status": "pending"
}
更新企业用户对象¶
更新企业用户对象可以将企业用户信息进行变更, member_id 不变。同步返回 pending 状态表示申请已受理,人工审核后,审核成功或失败结果会 异步消息通知 告知。
审核成功,则更新企业用户对象成功;审核失败,您可根据审核失败原因修改对应要素,重新调用更新企业用户对象发起申请。
更新企业用户对象不支持更新银行代码、银行账户类型、银行卡号、银行卡开户姓名等要素,如需更新结算账户信息,请删除结算账户后重新创建。
更新企业用户对象成功后,为避免结算异常,请及时更新结算账户信息。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
member_id |
String(64) |
Y |
商户下已创建成功的企业用户id |
name |
String(50) |
N |
企业名称 |
prov_code |
String(4) |
N |
省份编码 (省市编码) |
area_code |
String(4) |
N |
地区编码 (省市编码) |
social_credit_code_expires |
String(8) |
N |
统一社会信用证有效期 |
business_scope |
String(200) |
N |
经营范围 |
legal_person |
String(20) |
N |
法人姓名 |
legal_cert_id |
String(20) |
N |
法人身份证号码 |
legal_cert_id_expires |
String(8) |
N |
法人身份证有效期 |
legal_mp |
String(11) |
N |
法人手机号 |
address |
String(256) |
N |
企业地址 |
zip_code |
String(6) |
N |
邮编 |
telphone |
String(30) |
N |
企业电话 |
String(40) |
N |
企业邮箱 |
|
attach_file |
File |
N |
上传附件,传入的中文文件名称为 UTF-8 字符集 URLEncode 编码后的字符串。内容须包含三证合一证件照、法人身份证正面照、法人身份证反面照、开户银行许可证照。 压缩 zip包后上传,最大限制为 9 M。 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
同步返回
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
order_no |
String(64) |
Y |
请求订单号 |
member_id |
String(64) |
Y |
商户下的用户id |
app_id |
String(64) |
Y |
控制台主页面应用的app_id |
created_time |
String(8) |
Y |
创建时的时间戳 |
prod_mode |
String(5) |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("adapay_func_code", "corp_members.update");
memberParams.put("member_id", member_id);
memberParams.put("app_id",app_id);
memberParams.put("order_no","jsdk_order_"+System.currentTimeMillis());
memberParams.put("social_credit_code_expires", "1111");
memberParams.put("business_scope", "123");
memberParams.put("name", "中国测试有限公司");
memberParams.put("prov_code", "0011");
memberParams.put("area_code", "1100");
memberParams.put("legal_person", "张测试");
memberParams.put("legal_cert_id", "321485199014234852");
memberParams.put("legal_cert_id_expires", "20220112");
memberParams.put("legal_mp", "13958465215");
memberParams.put("address", "中国上海");
memberParams.put("zip_code", "225485");
memberParams.put("telphone", "41164452");
memberParams.put("email" , "ceshi@qq.com");
File file = new File("/demo/test.zip");
Map<String, Object> member = AdapayCommon.requestAdapayFile(memberParams, file, merchantKey);
成功响应
{
"member_id": "jsdk_member_1568908107580",
"order_no": "jsdk_order_1568908107580",
"created_time": "20190919234828",
"prod_mode": "true",
"app_id": "app_XXXXXXXX",
"status": "pending"
}
查询企业用户对象¶
查询已创建的企业用户对象
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
响应
成功时同步返回一个包含 CorpMember对象 的 JSON。
调用示例
Java
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("member_id", "member_id_test");
memberParams.put("app_id", "app_XXXXXXXX");
Map<String, Object> member = CorpMember.query(memberParams);
成功响应
{
"address": "湖南省滨州市",
"app_id": "app_XXXXXXXX",
"area_code": "4201",
"business_scope": "",
"email": "",
"legal_cert_id": "#011pvYcG/6l6ofY38Ql6P31eUb/xoAqNLSL",
"legal_cert_id_expires": "",
"legal_mp": "#0 11HGjFbJFO8mBejceLLqFypw==",
"legal_person": "xxxx",
"member_id": "member_id_test",
"name": "测试企业用户信息 4",
"prov_code": "0042",
"social_credit_code": "91410300X148288455",
"social_credit_code_expires": "",
"telphone": "",
"zip_code": "",
"status": "succeeded",
"prod_mode": "true"
}
结算账户(SettleAccount)¶
属性 |
类型 |
描述 |
---|---|---|
id |
String(64) |
由 Adapay 生成的结算账户对象 id |
object |
String(20) |
结算账户对象,settle_account |
channel |
String(16) |
目前仅支持:bank_account(银行卡) |
create_time |
String(10) |
创建时的时间戳 |
prod_mode |
String(5) |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
account_info |
Object |
结算账户信息,参见 结算账户信息对象 |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建结算账户对象¶
创建结算账户对象是为一个已创建用户对象创建结算账户,用于对用户分账金额的结算,目前仅支持绑定银行卡结算账户。
用户创建对私结算账户时,会对银行卡号、银行卡开户姓名、身份证号三要素认证,若认证失败,则创建结算账户失败。
每个结算账户对象 Adapay 系统会生成一个唯一的 id,可用于查询结算账户对象,或者删除结算账户对象。
注:当银行账户类型为2-对私时,请务必绑定一张 Ⅰ类 银行卡,若绑定了一张 Ⅱ类 银行卡时,当结算金额超过10000元时,银行会提示金额超限导致结算失败。
注:若创建结算账户对象是在22:30分之后创建成功的,那么该用户的结算会延后一个结算日结算;若是在22:30分之前,用户会正常结算。
注:若用户想更新银行卡,则需要先调用删除结算账户对象,再使用原 member_id 重新创建结算账户对象,且必须与原创建结算账户使用的身份证和银行卡户名保持一致。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
channel |
String |
Y |
目前仅支持:bank_account(银行卡) |
account_info |
Object |
Y |
结算账户信息,参见 结算账户信息对象 |
响应
成功时同步返回一个包含 SettleAccount对象 的 JSON。
调用示例
Java
Map<String, Object> settleCountParams = new HashMap<String, Object>(4);
Map<String, Object> accountInfo = new HashMap<String, Object>(9);
accountInfo.put("card_id","6222021703001692221");
accountInfo.put("card_name","袁电茜");
accountInfo.put("cert_id","310109200006062491");
accountInfo.put("cert_type","00");
accountInfo.put("tel_no","18888888881");
accountInfo.put("bank_code","03060000");
accountInfo.put("bank_acct_type","2");
accountInfo.put("prov_code","0031");
accountInfo.put("area_code","3100");
settleCountParams.put("member_id", "member_id_test");
settleCountParams.put("app_id", "app_XXXXXXXX");
settleCountParams.put("channel","bank_account");
settleCountParams.put("account_info", accountInfo);
Map<String, Object> settleCount = SettleAccount.create(settleCountParams);
成功响应
{
"account_info": {
"area_code": "1401",
"bank_acct_type": "2",
"bank_code": "0105999",
"bank_name": "",
"card_id": "622700****0576",
"card_name": "xxx",
"cert_id": "1401****0631",
"cert_type": "00",
"prov_code": "0014",
"tel_no": "137****xxxx"
},
"app_id": "app_XXXXXXXX",
"channel": "bank_account",
"create_time": "1568963254",
"id": "0006440476699456",
"type": "",
"status": "succeeded",
"prod_mode": "true"
}
查询结算账户对象¶
使用 Adapay 系统生成的结算账户对象 id 查询已创建的结算账户对象信息。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
settle_account_id |
String(64) |
Y |
由 Adapay 生成的结算账户对象 id |
响应
成功时同步返回一个包含 SettleAccount对象 的 JSON。
调用示例
Java
Map<String, Object> settleCountParams = new HashMap<String, Object>(3);
settleCountParams.put("settle_account_id", "0006440476699456");
settleCountParams.put("member_id", "member_id_test");
settleCountParams.put("app_id", "app_XXXXXXXX");
Map<String, Object> settleCount = SettleAccount.query(settleCountParams);
成功响应
{
"account_info": {
"area_code": "1401",
"bank_acct_type": "2",
"bank_code": "0105999",
"bank_name": "",
"card_id": "622700****0576",
"card_name": "xxx",
"cert_id": "1401****0631",
"cert_type": "00",
"prov_code": "0014",
"tel_no": "137****xxxx"
},
"app_id": "app_XXXXXXXX",
"channel": "bank_account",
"create_time": "1568963254",
"id": "0006440476699456",
"type": "",
"status": "succeeded",
"prod_mode": "true"
}
删除结算账户对象¶
删除结算账户对象是对已创建完成的结算账户对象进行删除操作。删除结算账户成功后,支付时不再支持分账功能。您可再调用创建结算账户对象创建新的结算账户。删除结算账户对象需要 Adapay 系统生成的结算账户对象 id 进行删除。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
settle_account_id |
String(64) |
Y |
由 Adapay 生成的结算账户对象 id |
响应
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
id |
String(64) |
Y |
由 Adapay 生成的结算账户对象 id |
prod_mode |
boolean |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
status |
String |
Y |
当前交易的状态,参见 状态 说明 |
error_code |
String |
N |
错误码,详见 错误 |
error_msg |
String |
N |
错误描述,详见 错误 |
error_type |
String |
N |
错误类型,详见 错误 |
invalid_param |
String |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例
Java
Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
settleCountParams.put("settle_account_id", "0006440476699456");
settleCountParams.put("member_id", "member_id_test");
settleCountParams.put("app_id", "app_XXXXXXXX");
Map<String, Object> settleCount = SettleAccount.delete(settleCountParams);
成功响应
{
"status": "succeeded",
"id":"0006440476699456",
"prod_mode": "true"
}
修改结算配置¶
该功能支持修改商户或用户结算账户的起始金额、结算留存金额、结算信息摘要等。
假如起始金额为100.00元,当用户发起结算时入款总金额超过100.00元时,用户才会发起结算,结算金额为结算发起时的用户余额。
假如结算留存金额为150.00元,当用户发起结算时入款总金额超过150.00元时,用户才会发起结算,结算金额为结算发起时的用户余额 - 150.00元。
注:本接口不能更改结算卡,如需更改结算账户的结算卡,请先删除结算账户,再重新创建结算账户。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户下的用户id,若为商户本身时,传入0 |
settle_account_id |
String(64) |
N |
Adapay系统返回的结算账户id,若为商户本身时,不传该值 |
min_amt |
String(16) |
N |
结算起始金额 ( 0.00格式,整数部分最长13位,小数部分最长2位) min_amt, remained_amt,channel_remark至少有一个不为空 |
remained_amt |
String(16) |
N |
结算留存金额 ( 0.00格式,整数部分最长13位,小数部分最长2位) |
channel_remark |
String(200) |
N |
结算信息摘要,银行出款时摘要信息 |
响应
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
id |
String(64) |
Y |
由Adapay生成的结算账户对象id |
object |
String(8) |
Y |
结算账户对象,settle_account |
created_time |
String(16) |
Y |
创建时的时间戳 |
prod_mode |
String(16) |
Y |
是否prod模式,true是prod模式,false是mock模式 |
channel |
String(16) |
Y |
目前仅支持:bank_account(银行卡) |
account_info |
Object |
Y |
结算账号信息 |
status |
String |
Y |
当前交易的状态,参见 状态 说明 |
error_code |
String |
N |
错误码,详见 错误 |
error_msg |
String |
N |
错误描述,详见 错误 |
error_type |
String |
N |
错误类型,详见 错误 |
invalid_param |
String |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
account_info字段说明:
参数 |
类型 |
非空 |
说明 |
---|---|---|---|
card_id |
String(64) |
Y |
银行卡号 |
card_name |
String(16) |
Y |
银行账户名称 |
cert_id |
String(30) |
Y |
身份证号 |
cert_type |
String(2) |
N |
默认:00-身份证 |
tel_no |
String(11) |
Y |
手机号 |
bank_code |
String(8) |
Y |
详见开户银行编码附录 |
bank_name |
String(64) |
N |
开户银行名称 |
bank_acct_type |
String(1) |
Y |
银行账户类型:1-对公;2-对私 |
prov_code |
String(4) |
Y |
省份 |
area_code |
String(4) |
Y |
地区 |
min_amt |
String(16) |
N |
结算起始金额 ( 0.00格式,整数部分最长13位,小数部分最长2位),修改结算配置时返回 |
remained_amt |
String(16) |
N |
结算留存金额 ( 0.00格式,整数部分最长13位,小数部分最长2位),修改结算配置时返回 |
channel_remark |
String(200) |
N |
结算信息摘要,银行出款时摘要信息,修改结算配置时返回 |
调用示例
Java
Map<String, Object> params = new HashMap<>(6);
params.put("app_id", "app_XXXXXXXX");
params.put("member_id", "member_id_test");
params.put("settle_account_id", "0006440476699456");
params.put("min_amt", "20.00");
params.put("remained_amt", "50.00");
params.put("channel_remark", "摘要测试");
Map<String, Object> settleCount = SettleAccount.update(params, apiKey);
成功响应
{
"object": "settle_account",
"status": "succeeded",
"prod_mode": "true",
"id": "0006440476699456",
"create_time": "1573020003",
"app_id": "app_XXXXXXXX",
"channel": "bank_account",
"account_info": {
"card_id": "622202****2228",
"card_name": "吕雄然",
"cert_type": "00",
"cert_id": "3101****5961",
"tel_no": "138****4636",
"bank_code": "03060000",
"bank_name": "",
"bank_acct_type": "2",
"prov_code": "0011",
"area_code": "1100",
"min_amt": "20.00",
"remained_amt": "50.00",
"channel_remark": "摘要测试"
}
}
查询结算明细列表¶
用户创建结算账户成功后,可查询该用户在Adapay系统发起结算明细,查询时间间隔必须小于等于31天。若查询商户自身结算明细时,用户id可输入0。
请求参数
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
member_id |
String(64) |
Y |
商户用户对象 id,只能为英文、数字或者下划线的一种或多种组合,若查询商户本身时,传入值0 |
settle_account_id |
String |
N |
由Adapay生成的结算账户对象id,若查询商户本身时,可以为空 |
begin_date |
String(8) |
Y |
结算起始日期,格式为 yyyyMMdd |
end_date |
String(8) |
Y |
结算结束日期,格式为 yyyyMMdd,日期间隔必须小于等于31天 |
响应
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
object |
String(20) |
Y |
结算明细列表,list |
prod_mode |
String |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
settle_details |
List |
N |
结算账户已发起结算明细列表,若未查询到结果时,字段为空 |
status |
String |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String |
N |
错误码,详见 错误 |
error_msg |
String |
N |
错误描述,详见 错误 |
error_type |
String |
N |
错误类型,详见 错误 |
invalid_param |
String |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
settle_details字段说明:
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
card_name |
String(64) |
Y |
结算账户名称 |
card_no |
String(64) |
Y |
脱敏的结算账号 |
settle_date |
String(8) |
Y |
结算日期 |
settle_amt |
String(16) |
Y |
结算金额 |
settle_fee_amt |
String(16) |
Y |
结算手续费金额 |
settle_stat |
String(16) |
Y |
结算状态,succeeded:成功;failed:失败;pending:处理中;no-started:未发起结算 |
settle_type |
String(2) |
Y |
结算类型,T1:T+1日结算;D1: D+1日结算;B:结算失败回账记录 |
settle_message |
String(128) |
N |
结算失败描述信息 |
调用示例
Java
Map<String, Object> queryParams = new HashMap<String, Object>(5);
queryParams.put("settle_account_id", "0006440476699456");
queryParams.put("member_id", "member_id_test");
queryParams.put("app_id", "app_XXXXXXXX");
queryParams.put("begin_date", "20191012");
queryParams.put("end_date", "20191015");
Map<String, Object> settleCount = SettleAccount.detail(queryParams);
成功响应
{
"prod_mode": "true",
"settle_details": [
{
"settle_type": "T1",
"settle_stat": "successed",
"card_no": "130234****8399",
"settle_amt": "6.98",
"settle_fee_amt": "0.00",
"settle_date": "20191014",
"card_name": "adapay测试商户"
},
{
"settle_type": "T1",
"settle_stat": "successed",
"card_no": "130234****8399",
"settle_amt": "5.00",
"settle_fee_amt": "0.00",
"settle_date": "20191012",
"card_name": "adapay测试商户"
}
],
"object": "list",
"status": "succeeded"
}
支付确认对象¶
参数 |
类型 |
说明 |
---|---|---|
id |
String(64) |
Adapay生成的支付确认对象id |
object |
String(20) |
支付确认对象,payment_confirm |
created_time |
String(10) |
创建时的时间戳 |
prod_mode |
String(4) |
是否prod模式,true是prod模式,false是mock模式 |
app_id |
String(64) |
控制台 主页面应用的app_id |
payment_id |
String(64) |
Adapay生成的支付对象id |
order_no |
String(64) |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
confirm_amt |
String(14) |
确认金额, 必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。 |
fee_amt |
String(14) |
支付确认手续费金额 |
confirmed_amt |
String(16) |
原支付对象已确认金额。 |
reserved_amt |
String(16) |
原支付对象已撤销金额,包括已撤销完成金额和撤销处理中的金额。 |
refunded_amt |
String(16) |
当前支付确认对象已退款金额,包括已退款完成金额和退款处理中的金额。 |
description |
String(128) |
附加说明 |
div_members |
List |
分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表 |
fee_mode |
String(1) |
手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方 |
status |
String(16) |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
错误码,详见 错误 |
error_msg |
String(128) |
错误描述,详见 错误 |
error_type |
String(32) |
错误类型,详见 错误 |
invalid_param |
String(32) |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建支付确认对象¶
创建支付确认对象适用于延时分账的场景。只有已支付完成且延时分账的Payment对象,才支持调用创建支付确认对象。支持一次全额或多次部分确认,多次部分确认时,当前确认金额 + 已确认金额 + 已撤销金额不能大于原支付金额。
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
payment_id |
String(64) |
Y |
Adapay生成的支付对象id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
confirm_amt |
String(14) |
Y |
确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。 |
description |
String(128) |
N |
附加说明 |
div_members |
List |
N |
分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表 |
fee_mode |
String(1) |
N |
手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方 |
调用示例¶
Java
Map<String, Object> confirmParams = new HashMap<>();
confirmParams.put("payment_id", "002112019101810164110031091225392021504");
confirmParams.put("order_no", "java\_sdk\_paymemt\_confirm\_" + System.currentTimeMillis());
confirmParams.put("confirm_amt", "0.02");
confirmParams.put("description", "description");
List<Map<String, String>> memberList = new ArrayList<>();
Map<String, String> divMember = new HashMap<>(3);
divMember.put("member_id", "0");
divMember.put("amount", "0.02");
divMember.put("fee_flag", "Y");
memberList.add(divMember);
confirmParams.put("div_members", memberList);
Map<String, Object> paymentConfirm = PaymentConfirm.create(confirmParams);
成功响应
{
"app_id": "app_XXXXXXXX",
"confirm_amt": "0.02",
"fee_amt": "0.00",
"confirmed_amt": "0.00",
"created_time": "1571378447",
"description": "description",
"div_members": [
{
"amount": "0.02",
"fee_flag": "Y",
"member_id": "0"
}
],
"id": "002112019101814004710031147620004315136",
"object": "payment_confirm",
"order_no": "jsdk_payment_confirm_1571378445992",
"refunded_amt": "0.00",
"reserved_amt": "0.00",
"status": "succeeded",
"prod_mode": "true"
}
查询支付确认对象¶
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
payment_confirm_id |
String(64) |
Y |
Adapay生成的支付确认对象id |
调用示例¶
Java
Map<String, Object> confirmParams = new HashMap<>();
confirmParams.put("payment_confirm_id", "002112019101814004710031147620004315136");
Map<String, Object> paymentConfirm = PaymentConfirm.query(confirmParams);
成功响应
{
"app_id": "app_XXXXXXXX",
"confirm_amt": "0.02",
"fee_amt": "0.00",
"confirmed_amt": "0.00",
"created_time": "1571378447",
"description": "description",
"div_members": [
{
"amount": "0.02",
"fee_flag": "Y",
"member_id": "0"
}
],
"id": "002112019101814004710031147620004315136",
"object": "payment_confirm",
"order_no": "jsdk_payment_confirm_1571378445992",
"refunded_amt": "0.00",
"reserved_amt": "0.00",
"status": "succeeded",
"prod_mode": "true"
}
查询支付确认对象列表¶
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
payment _id |
String(64) |
N |
Adapay生成的支付对象id |
order_no |
String(64) |
N |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
page_index |
int |
N |
当前页码,取值范围1~300000,默认值为1 |
page_size |
int |
N |
页面容量,取值范围1~20,默认值为10 |
created_gte |
String |
N |
查询大于等于创建时间戳 |
created_lte |
String |
N |
查询小于等于创建时间戳;若不为空时,created_gte字段值不能为空且小于created_lte时间 |
响应¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
object |
String(8) |
Y |
支付确认对象列表,list |
prod_mode |
String(4) |
Y |
是否prod模式,true是prod模式,false是mock模式 |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
payment_id |
String(64) |
N |
Adapay生成的支付对象id |
has_more |
boolean |
Y |
是否还有更多,true-是,false-否 |
payment_confirms |
List |
N |
支付确认对象 列表,若未查询到结果时,字段为空 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
Map<String, Object> confirmParams = new HashMap<>();
confirmParams.put("app_id", "app_XXXXXXXX");
confirmParams.put("payment_id", "");
confirmParams.put("page_index", "1");
confirmParams.put("page_size", "10");
confirmParams.put("created_gte", "1571466657929");
confirmParams.put("created_lte", "1571898657929");
Map<String, Object> paymentConfirmList = PaymentConfirm.queryList(confirmParams);
成功响应
{
"app_id": "app_XXXXXXXX",
"has_more": true,
"object": "list",
"payment_confirms": [
{
"app_id": "app_XXXXXXXX",
"confirm_amt": "0.02",
"fee_amt": "0.00",
"confirmed_amt": "0.00",
"created_time": "1571378447",
"description": "description",
"div_members": [
{
"amount": "0.02",
"fee_flag": "Y",
"member_id": "0"
}
],
"id": "002112019101814004710031147620004315136",
"object": "payment_confirm",
"order_no": "jsdk_payment_confirm_1571378445992",
"refunded_amt": "0.00",
"reserved_amt": "0.00",
"status": "succeeded",
"prod_mode": "true"
}
],
"status": "succeeded",
"prod_mode": "true"
}
支付撤销对象¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
id |
String(64) |
Y |
Adapay生成的支付撤销对象id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
object |
String(8) |
Y |
支付撤销对象,payment_reverse |
prod_mode |
String(4) |
Y |
true是prod模式,false是mock模式 |
payment_id |
String(64) |
Y |
原支付交易id |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
reverse_amt |
String(16) |
Y |
撤销金额,必须大于0,保留两位小数点,如0.10、100.05等 |
reversed_amt |
String(16) |
Y |
原支付对象已撤销金额,包括已撤销完成金额和撤销处理中的金额 |
confirmed_amt |
String(16) |
Y |
当前支付对象已确认金额 |
refunded_amt |
String(16) |
Y |
当前支付确认对象已退款金额,包括已退款完成金额和退款处理中的金额 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 |
created_time |
String(13) |
N |
创建时间戳 |
succeed_time |
String(13) |
N |
撤销成功时间戳 |
channel_no |
String(64) |
N |
扫码收银台返回的退款交易流水号 |
status |
String(16) |
Y |
当前支付撤销状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
创建支付撤销对象¶
创建支付撤销对象适用于延时分账的场景。只有已支付完成且为延时分账的 Payment 对象,在没有创建支付确认对象成功之前,可以调用创建支付撤销对象,用来撤销支付,资金会原路退回用户的支付宝或微信中。 支持一次全额或多次部分撤销,撤销次数最多不超过10次。多次部分撤销时,当前撤销金额 + 已撤销金额 + 已确认金额不能大于原支付金额。 对于每次撤销交易,Adapay 都会通过 异步消息通知 告知结果。
注:创建支付撤销对象同步返回成功,表示 Adapay 受理成功,撤销结果以异步通知为准。支持撤销最长时间为178天,若返回码是”order_id_not_exists 订单记录不存在”,既超过退款期限,无法撤销成功。
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
payment_id |
String(64) |
Y |
Adapay生成的支付对象id |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 |
notify_url |
String(250) |
N |
异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数。 |
reverse_amt |
String(14) |
Y |
撤销金额,必须大于0,保留两位小数点,如0.10、100.05等。撤销金额必须小于等于支付金额 - 已确认金额 - 已撤销(撤销成功+撤销中)金额。 |
reason |
String(512) |
N |
撤销描述 |
expand |
String(512) |
N |
扩展域 |
device_info |
String(1024) |
N |
设备静态信息,详见 设备信息 |
调用示例¶
Java
Map<String, Object> reverseParams = new HashMap<>();
reverseParams.put("app_id", "app_XXXXXXXX");
reverseParams.put("payment_id", "002112019101810164110031091225392021504");
reverseParams.put("reverse_amt", "0.01");
reverseParams.put("order_no", "jsdk_reverse" + System.currentTimeMillis());
Map<String, Object> paymentReverse = PaymentReverse.create(reverseParams);
成功响应
{
"id": "002112019102413120700033309700010668032",
"object": "payment_reverse",
"status": "succeeded",
"prod_mode": "true",
"order_no": "jsdk_reverse1571893921558",
"payment_id": "002112019101810164110031091225392021504",
"app_id": "app_XXXXXXXX",
"reverse_amt": "0.01",
"reversed_amt": "0.00",
"confirmed_amt": "0.00",
"refunded_amt": "0.00",
"created_time": "1571893927000",
"succeed_time": "1571894004000",
"channel_no": "2019102499R0ida0"
}
查询支付撤销对象¶
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
reverse_id |
String(64) |
Y |
Adapay生成的支付撤销对象id |
调用示例¶
Java
Map<String, Object> reverseParams = new HashMap<>();
reverseParams.put("reverse_id", "002112019102413120700033309700010668032");
Map<String, Object> paymentReverse = PaymentReverse.query(reverseParams);
成功响应
{
"id": "002112019102413120700033309700010668032",
"object": "payment_reverse",
"status": "succeeded",
"prod_mode": "true",
"order_no": "jsdk_reverse1571893921558",
"payment_id": "002112019101810164110031091225392021504",
"app_id": "app_XXXXXXXX",
"reverse_amt": "0.01",
"reversed_amt": "0.00",
"confirmed_amt": "0.00",
"refunded_amt": "0.00",
"created_time": "1571893927000",
"succeed_time": "1571894004000",
"channel_no": "2019102499R0ida0"
}
查询支付撤销对象列表¶
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
payment _id |
String(64) |
N |
Adapay生成的支付对象id |
page_index |
int |
N |
当前页码,取值范围1~300000,默认值为1 |
page_size |
int |
N |
页面容量,取值范围1~20,默认值为10 |
created_gte |
String |
N |
查询大于等于创建时间戳 |
created_lte |
String |
N |
查询小于等于创建时间戳;若不为空时,created_gte字段值不能为空且小于created_lte时间 |
响应¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
object |
String(8) |
Y |
支付确认对象列表,list |
prod_mode |
String(4) |
Y |
是否prod模式,true是prod模式,false是mock模式 |
app_id |
String(64) |
Y |
控制台 主页面应用的app_id |
payment_id |
String(64) |
N |
Adapay生成的支付对象id |
has_more |
boolean |
Y |
是否还有更多,true-是,false-否 |
payment_reverses |
List |
N |
支付撤销对象 列表,若未查询到结果时,字段为空 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
Map<String, Object> reverseParams = new HashMap<>();
reverseParams.put("app_id", "app_XXXXXXXX");
reverseParams.put("payment_id", "");
reverseParams.put("page_index", "1");
reverseParams.put("page_size", "10");
reverseParams.put("created_gte", "1571466657929");
reverseParams.put("created_lte", "1571898657929");
Map<String, Object> paymentReverseList = PaymentReverse.queryList(reverseParams);
成功响应
{
"app_id": "app_XXXXXXXX",
"has_more": true,
"object": "list",
"payment_confirms": [
{
"id": "002112019102413120700033309700010668032",
"object": "payment_reverse",
"status": "succeeded",
"prod_mode": "true",
"order_no": "jsdk_reverse1571893921558",
"payment_id": "002112019101810164110031091225392021504",
"app_id": "app_XXXXXXXX",
"reverse_amt": "0.01",
"reversed_amt": "0.00",
"confirmed_amt": "0.00",
"refunded_amt": "0.00",
"created_time": "1571893927000",
"succeed_time": "1571894004000",
"channel_no": "2019102499R0ida0"
}
],
"status": "succeeded",
"prod_mode": "true"
}
支付确认撤销对象¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
payment_confirm_id |
String(64) |
Y |
支付确认对象id |
payment_confirm_reverse_id |
String(64) |
N |
Adapay生成的支付确认撤销对象id |
confirm_reverse_amt |
String(14) |
Y |
支付确认撤销金额 |
status |
String(64) |
N |
当前交易状态,参见 状态 说明 |
div_members |
List |
N |
分账对象信息 列表。json对象 形式,详见 分账对象信息列表 |
创建支付确认撤销对象¶
接口说明: 创建支付确认撤销对象适用于延时分账的场景。只有已支付完成且为延时分账的 Payment 对象,在创建支付确认对象成功之后,可以调用创建支付确认撤销对象,用来撤销支付确认订单,资金会退回到商户的临时过渡户中。 仅支持支付确认订单的全额撤销,不支持发生过退款的支付确认订单再发起撤销。
注:创建支付确认撤销对象同步返回成功,表示 Adapay 处理成功,资金实时退回到商户的临时过渡户中,可再次发起支付确认请求。支付确认撤销请求无时间限制,若支付确认撤销后再发起支付撤销请求时最长时间仍为原支付订单可退款时长(一般为178天以内)
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
adapay_func_code |
String(64) |
Y |
Adapay接口功能号:payments.confirm.reverse |
payment_confirm_id |
String(64) |
Y |
Adapay生成的支付确认对象id |
order_no |
String(64) |
Y |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
reason |
String(512) |
N |
支付确认撤销描述 |
响应¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
object |
String(32) |
N |
支付确认撤销对象,confirm_reverse |
prod_mode |
String(4) |
N |
是否prod模式,true是prod模式,false是mock模式 |
order_no |
String(64) |
N |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
payment_confirm_id |
String(64) |
N |
Adapay生成的支付确认对象id |
payment_confirm_reverse_id |
String(64) |
N |
Adapay生成的支付确认撤销对象id |
confirm_reverse_amt |
String(14) |
N |
支付确认撤销金额 |
status |
String(16) |
N |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
Map<String, Object> confirmReverseParams = new HashMap<>();
confirmReverseParams.put("adapay_func_code", "payments.confirm.reverse");
confirmReverseParams.put("payment_confirm_id", "002112025392021504");
confirmReverseParams.put("reason", "test");
confirmReverseParams.put("order_no", "jsdk_confirm_reverse000000000");
Map<String, Object> confirmReverseResult = AdapayCommon.requestAdapay(confirmReverseParams);
成功响应
{
"confirm_reverse_amt": "0.01",
"object": "confirm_reverse",
"order_no": "jsdk_confirm_reverse20230419000000",
"payment_confirm_id": "test_002112025392021504",
"payment_confirm_reverse_id": "test_002212023041910000",
"prod_mode": "false",
"status": "succeeded"
}
查询支付确认撤销对象¶
通过 支付确认撤销对象 的请求订单号或id 或 原支付确认对象id查询已创建的支付确认撤销对象,必须三选一上送。
请求参数¶
参数 |
类型 |
必填 |
说明 |
---|---|---|---|
adapay_func_code |
String(64) |
Y |
Adapay接口功能号:payments.confirm.reverse.details |
order_no |
String(64) |
N |
请求订单号,只能为英文、数字或者下划线的一种或多种组合 |
payment_confirm_id |
String(64) |
N |
Adapay生成的支付确认对象id |
payment_confirm_reverse_id |
String(14) |
N |
Adapay生成的支付确认撤销对象id |
响应¶
参数 |
类型 |
必填 |
描述 |
---|---|---|---|
prod_mode |
String(5) |
Y |
是否 prod模式,true 是 prod模式,false 是 mock模式 |
confirm_reverses |
List |
N |
支付确认撤销对象 列表,若未查询到结果时,字段为空 |
status |
String(16) |
Y |
当前交易状态,参见 状态 说明 |
error_code |
String(32) |
N |
错误码,详见 错误 |
error_msg |
String(128) |
N |
错误描述,详见 错误 |
error_type |
String(32) |
N |
错误类型,详见 错误 |
invalid_param |
String(32) |
N |
当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 |
调用示例¶
Java
Map<String, Object> confirmReverseQueryParams = new HashMap<>();
confirmReverseQueryParams.put("adapay_func_code", "payments.confirm.reverse.details");
confirmReverseQueryParams.put("order_no", "test_confirm_reverse_2023042000000");
confirmReverseQueryParams.put("payment_confirm_id", "00211201910241");
confirmReverseQueryParams.put("payment_confirm_reverse_id", "00211201910241368032");
Map<String, Object> confirmReverseQueryResult = AdapayCommon.queryAdapay(confirmReverseQueryParams);
成功响应
{
"confirm_reverses": [
{
"confirm_reverse_amt": "10.00",
"div_members": [
{
"amount": "5.00",
"app_id": "test_app_209d6c4",
"member_id": "user_0000123"
},
{
"amount": "5.00",
"member_id": "0"
}
],
"order_no": "test_confirm_reverse_2023042000000",
"payment_confirm_id": "test_confirm_reverse_00211201910241",
"payment_confirm_reverse_id": "test_confirm_reverse_00211201910241",
"status": "S"
}
],
"prod_mode": "false",
"status": "succeeded"
}