# 获取交易&退款明细

# 接口说明

此接口提供某天交易明细获取,服务商可以通过该接口获取明细来进行对账,该接口返回JSON格式的响应,每次只能提供2年内的某一天数据获取,请注意保存。

# 交易明细获取方式:

  • 方法一:

根据交易时间(即订单上传服务器的时间)拉取交易明细,获取的数据包括交易时间是当天的订单或者补缴时间是当天的订单:type=order,time_mode=trade进行传参,此时date需要传入订单交易时间所在日期;

以上适用于按照交易日获取订单状态稳定不会有变化的历史记录。不适用获取订单在拉取时间之后会变化的情况,举个例子:当前时间是10月2号,假如拉取策略是按照交易时间每天定时拉取前一天,10月1号的交易订单在2号被拉取,正常没有问题,假如1号有笔交易,在2号退款了,则不会被拉取到了(因为3号只会获取交易时间是2号的交易),就会丢失了退款的状态。

  • 方法二:

按照订单更新时间拉取交易明细:type=order,time_mode=update 进行传参。适用于每天定时拉取前一天数据,用于每日对账出报表。

# 退款明细获取方式:

根据退款时间拉取退款明细:type=refund,time_mode=trade进行传参,此时date需传入退款时间所在日期;

适用于单独获取退款明细,比如一笔交易分多次退款,可以通过该方式获取每次退款的明细。

# 注意事项

  • 对于有财务对账的场景,建议拉取名单明细入参time_mode,并传值update,确保订单状态有更新时不会错过拉取。
  • 对于重复拉取到相同订单,接入方必须能正确对订单状态识别并进行明确处理,避免订单在财务系统重复计算造成资金问题。

# 接口地址

https://open.wecard.qq.com/cgi-bin/pay/provider/v4/order-detail

# 请求方法

POST/GET

# 请求参数示例

access_token=[鉴权token]&date=20200815&page=1&pageSize=200&type=order&time_mode=update

参数 是否必填 类型 实例 说明
access_token String 应用有效凭证
date Integer 232 日期
schoolCode Integer 0 主体代码
page Integer 1 分页下标
page_size Integer 500 分页大小,每页最大数据是500
type String order order:拉取订单交易明细;refund:拉取退款明细
time_mode String update trade: type为order时,会根据订单上传服务器的时间获取订单明细,type为refund时,会根据订单在服务器的退款时间获取订单;update: 会根据订单在服务器的更新时间来获取订单明细

# 响应说明(交易明细)

{
    "code": 0,
    "message": "成功",
    "data": {
        "has_more": 1,
        "accounts": [{
        "name": "xxxx学校",
        "summary": {
            "order_num": 500,
            "order_amount": 290600,
            "deal_amount": 290600,
            "discount_amount": 0,
            "over_amount": 0,
            "refund_amount": 0,
            "receive_amount": 290600
        },
        "list": [
            {
                "order_no": "S4449869565202012110646246673",
                "user_no": "22031305021",
                "mch_no": "1941238489",
                "mch_name": "一楼17号",
                "device_no": "SKM1941238489",
                "order_amount": 750,
                "deal_amount": 750,
                "deal_time": "2020-12-11 06:46:24",
                "order_time": "2020-12-11 06:46:24",
                "pay_time": "2020-12-11 06:46:31",
                "pay_state": "支付成功",
                "pay_channel": "微信支付",
                "acc_id": "abc",
                "channel_no": "4200000841202012115887965121",
                "channel_refund_no": "",
                "ext": "",
                "discount_amount": 0,
                "over_amount": 0,
                "receive_amount": 750,
                "scene": "card",
                "is_delay": 0,
                "org_name": "测试单位/认证测试分组",
                "org_id": "382957;382956"
            },
            {
                "order_no": "S1998869069202012110654312238",
                "user_no": "21930102035",
                "mch_no": "1941238527",
                "mch_name": "一楼54号",
                "device_no": "SKM1941238527",
                "order_amount": 600,
                "deal_amount": 600,
                "deal_time": "2020-12-11 06:54:32",
                "order_time": "2020-12-11 06:54:32",
                "pay_time": "2020-12-11 06:59:46",
                "pay_state": "支付成功",
                "pay_channel": "小钱包支付",
                "channel_no": "4200000816202012112708416464",
                "channel_refund_no": "",
                "ext": "",
                "discount_amount": 0,
                "over_amount": 0,
                "receive_amount": 600,
                "scene": "authcode",
                "is_delay": 1,
                "org_name": "测试单位/认证测试分组",
                "org_id": "382957;382956"
            }
        ]
    }]
  }
}
参数名 类型 必填 描述
code int 业务状态 0 为成功 其他为失败
message string 业务提示
data has_more int 是否有更多 1:是 0:否
accounts name string 主体名称
summary order_num int 交易笔数
order_amount decimal 发生金额
deal_amount decimal 交易金额
discount_amount decimal 折扣金额
over_amount decimal 溢价金额
refund_amount decimal 退款金额
receive_amount decimal 应收金额
list order_no string 订单号
parent_order_no string 母单
user_no string 用户电子卡号/学工号
mch_no string 子商户号
mch_name string 商户名称
device_no string 机具编号
order_amount int 订单金额
deal_amount int 交易金额
deal_time datetime 在机具上的原始消费时间
order_time datetime 交易时间(订单上传服务器的时间)
pay_time datetime 支付时间
pay_state string 支付状态描述(包括: 支付成功 、 退款成功 、未结 、 已补缴)
pay_channel string 支付渠道(微信支付人脸、微信支付刷脸代扣、支付宝支付、补贴钱包(具体的主体补贴钱包名称)、优惠券支付、福利券、余额、计次支付、微信付款码及公众号支付、微信轻松付支付)
acc_id string 支付渠道是“补贴钱包”的时候,返回补贴钱包ID;“余额”渠道下,返回的是余额钱包ID;
channel_no string 第三方支付渠道订单号
channel_refund_no string 第三方支付渠道退款单号
ext string 备注
discount_amount int 折扣金额
over_aount int 溢价金额
receive_amount int 应收金额
scene string 场景值(paycode:收款码、authcode:电子码、barcode:付款码、wxpay:非实名公众号支付、mppay:实名公众号支付、apppay:应用支付、paydept:补缴、walletcharge:余额充值、faceonline:微信支付刷脸、faceoffline:微信支付刷脸代扣、card:实体卡、syspappay:一分钱验证、apppappay:应用代扣)
is_delay int 是否延迟扣款;当type字段为0时,is_delay有实际意义
org_id string 用户下单时的部门id列表,分号分割:xxx;xxxx;xxxxx(需申请)
org_name string 用户下单时的主部门名称(需申请)
accounts_source name string 核算单位名称
amt string 金额
appid string 核算单位id
acct_sub_appid string 钱包id

# 响应说明(退款明细)

{
    "code": 0,
    "message": "成功",
    "data": {
        "has_more": 1,
        "accounts": [
          {
            "name": "xxxx学校",
            "summary": {
              "order_num": 500,
              "order_amount": 290600,
              "deal_amount": 290600,
              "discount_amount": 0,
              "over_amount": 0,
              "refund_amount": 0,
              "receive_amount": 290600
            },
            "refund_list": [
              {
                "order_no": "0X8Z131C5200388XP1708496056392",
                "refund_no": "1X8Z131C5200388XP1708496505162_0_dc",
                "channel_refund_no": "",
                "deal_amount": 1,
                "refund_amount": 1,
                "refund_time": "2024-02-21 14:21:45",
                "org_name": "测试1",
                "org_id": "798",
                "updated_at": "2024-02-21 14:21:46",
                "refund_channel": "夜宵券"
              },
              {
                "order_no": "0X8Z131C5200388XP1706862071915",
                "refund_no": "1X8Z131C5200388XP1708496623112_0_dc",
                "channel_refund_no": "",
                "deal_amount": 1,
                "refund_amount": 1,
                "refund_time": "2024-02-21 14:23:43",
                "org_name": "测试1",
                "org_id": "798",
                "updated_at": "2024-02-21 14:23:44",
                "refund_channel": "夜宵券"
              }
            ]
          }
        ]
    }
}

参数名 类型 必填 描述
code int 业务状态 0 为成功 其他为失败
message string 业务提示
data has_more int 是否有更多 1:是 0:否
accounts name string 主体名称
summary order_num int 交易笔数
order_amount decimal 发生金额
deal_amount decimal 交易金额
discount_amount decimal 折扣金额
over_amount decimal 溢价金额
refund_amount decimal 退款金额
receive_amount decimal 应收金额
refund_list order_no string 订单号
refund_no string 退款单号
channel_refund_no string 渠道退款单号
deal_amount int 支付金额
refund_amount int 退款金额
refund_time datetime 退款时间
org_name string 部门名称
org_id string 部门ID
updated_at datetime 更新时间
refund_channel string 退款渠道