Alipay, China's leading third-party online payment solutionAlipay, China's leading third-party online payment solution

结算

下图展示了平台商发起分账结算到 Antom 通知结算打款结果的整个流程:

12.png

图 1. 结算流程

  1. 交易完成后,资金会进入二级商户的 Antom 结算账户中,资金在约定账期内不可发起结算。
  2. 待资金达到约定账期后,平台商通过接口发起结算请求,对资金进行分账结算。
  3. Antom 根据结算请求中的分账信息把资金存储到各方的 Antom 结算账户中。
  4. Antom 向平台商通知分账结算申请的结果。
  5. 待资金达到约定的结算周期后,Antom 会向各方发起结算打款。
  6. Antom 通知平台商交易的结算打款结果。

发起结算请求

发起结算请求之前,平台商需要从 Antom 通过 支付结果通知 接口发送的异步通知或 查询支付结果 接口的返回结果中获取该笔支付可以发起结算的最早时间,通过返回的 earliestSettlementTime 字段表示。

当交易到达可结算的最早时间后,平台商可以调用 结算 接口发起分账和结算。在请求中,平台商需要通过参数 settlementDetails 传入资金结算和分账的明细。样例如下:

copy
{
    "settlementRequestId": "REQUEST_20230618160427985",
    "paymentId": "20230618194010800190188000009014801",
    "settlementDetails": [
        {
            "settleTo": "SELLER",
            "settlementAmount": {
                "currency": "BRL",
                "value": "100"
            }
        },
        {
            "settleTo": "MARKETPLACE",
            "settlementAmount": {
                "currency": "BRL",
                "value": "200"
            }
        }
    ]
}

分账与结算响应样例如下:

copy
{
    "settlementRequestId": "REQUEST_2023061816065****",
    "settlementId": "2023061819401888819018800000901****",
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}

响应中的 resultStatus 代表的是本次分账与结算申请是否成功的结果,并不代表已经结算打款成功。

接收结算打款异步通知

同一账期内的多笔款项会合并成一笔款项向平台商或二级商家结算银行账户打款,在打款成功后 Antom 会通过 通知打款结果 接口向平台商发送结算打款结果异步通知。

异步通知的地址需要平台商在开发者中心进行设定。在 Alipay 开发者中心 Integration Settings 标签页下,编辑 Notification URL。

结算打款异步通知的样例如下:

copy
{
        "settlementBatchId": "2023061819411188819018800000901****",
    "notifyType": "SETTLEMENT_RESULT",
    "settleTo": "SELLER",
    "referenceMerchantId": "MERCHANT_2023061813584****",
    "settlementArrivalTime": "2023-06-27T12:01:01+08:00",
    "actualSettlementAmount": {
        "currency": "BRL",
        "value": "20000"
    },
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}

其中通知中的 settleTo 字段表示该结算打款的对象是谁,result.resultStatus 表示本次结算打款的结果。当 result.resultStatus 的值为 S 时,表示结算打款成功;当 result.resultStatus 的值为 F 时,表示结算打款失败,失败原因可通过 result.resultCode 及对应的 result.resultMessage 来查看。

收到 Antom 的异步通知后,需要您按照如下规定格式返回响应。若未按要求响应异步通知,或者因为网络原因异步通知未送达,通知会在 24 小时内自动重发。通知至多重发 8 次或直至收到正确响应终止发送。发送间隔如下:0分钟,2分钟,10分钟,10分钟,1小时,2小时,6小时,15小时。

copy
{
    "result": {
        "resultStatus": "S",
        "resultCode": "SUCCESS",
        "resultMessage": "success."
    }
}