聚合支付

支付对象

关于支付,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时,分账对象列表中不支持传入手续费承担方

响应

同步返回一个 支付对象 的 JSON。

调用示例

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

短信验证码

响应

同步返回一个 支付对象 的 JSON。

调用示例

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 返回终态结果

响应

同步返回一个 退款对象 的 JSON。

调用示例

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)

用户地址

email

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

SettleAccount对象 列表

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

用户地址

email

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

用户地址

email

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)

用户地址

email

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)

企业电话

email

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

SettleAccount对象 列表

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

企业电话

email

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

企业电话

email

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时,分账对象列表中不支持传入手续费承担方

响应

成功时同步返回一个包含 支付确认对象 的 JSON。

调用示例

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

响应

成功时同步返回一个包含 支付确认对象 的 JSON。

调用示例

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

设备静态信息,详见 设备信息

响应

成功时同步返回一个包含 支付撤销对象 的 JSON。

调用示例

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

响应

成功时同步返回一个包含 支付撤销对象 的 JSON。

调用示例

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"
}