文档管理中心
我的

申请分账

功能介绍

华为支付系统支付成功后的订单,可由分账发起方调用此接口发起分账请求,将订单收款的资金分账给接收方商户。

说明

1、一笔订单申请一次或者多次分账请求,每次分账请求可以添加多个分账规则,但只会返回一个成功或者失败的请求标识。

2、分账完成的订单不能再次发起分账。

3、分账金额不能超过最大分账比例对应的金额。

使用约束

换单重试,视为新的业务订单,需开发者自行将新的业务订单关联业务原订单。接口重入规则说明如下(供参考):

展开

重入判定字段

支持原单重入场景

建议换单重试场景

商户分账订单号(mercAllocOrderNo)

  1. 请求分账接口失败,建议根据错误码排查后,支持同一商户分账订单号重入。
  2. 请求分账接口成功,原商户分账订单号重入,接口会幂等返回。该笔订单状态以异步结果通知或同步查询接口里为准。

分账订单状态返为ALLOC_FAILED,则订单进入失败终态。如需重新分账,需要换单重试。

接口原型

承载协议

HTTPS POST

接口方向

开发者服务器-> 华为支付服务器

接口URL

https://petalpay-developer.cloud.huawei.com.cn/api/v1/allocation/orders

数据格式

请求消息:Content-Type: application/json

响应消息:Content-Type: application/json

请求参数

  • Request Header
    展开

    参数

    是否必选

    参数类型

    描述

    Content-Type

    是

    String

    取值为:application/json; charset=UTF-8

    PayMercAuth

    是

    String

    取值为:PayMercAuth的JSON串

  • Request Body
    展开

    参数

    是否必填

    参数类型

    描述

    mercAllocOrderNo

    是

    String

    商户分账订单号,由商户自己生成,商户需保证订单信息唯一性。最大长度46。

    sysTransOrderNo

    是

    String

    华为支付系统订单号。

    allocationDetails

    是

    List<MercAllocRuleDetail>

    分账详情。

    说明

    金额总和,不能超过配置/默认最大分账比例

    allocFinish

    否

    boolean

    分账完结标识。详见“解冻剩余分账金额”部分。

    • true:完结分账
    • false:不完结分账(默认)
    说明

    超过180天分账未完结,系统自动发起分账指令,全部分给收单方

    callbackUrl

    是

    String

    回调通知地址,最大长度512。

    payload

    否

    String

    商户预留信息,最大长度255。

  • 请求示例
    收起
    自动换行
    深色代码主题
    复制
    1. POST /api/v1/allocation/orders
    2. Content-Type: application/json;charset=UTF-8
    3. PayMercAuth: {"callerId":"10132120***","traceId":"202307260838511046791","time":1690331931382,"authId":"120291744647139***","headerSign":"3P4ucKr5UvIaUTk5msgVpNr0NMSKLvQtRwzFWeLMouuJu4nHCL4Kd4eSMHEH2AxVQlwPcU********************D6FdC7tkBPIgRkGaSq/4BSh0sQfG0wyOiA3suYe223Jl7HBy4cySl4x56yD0=","bodySign":"EvZS2tli2PG7OsjAcOxCrNcgpeVfzWtnsJDBcN4YnwUQANEN9Unb8ahaN2********************PxoKIRGSbuqg+O8lSmlKmpFV6itYX/FK/R5ag3vN9AqBMbHjz+lb3scgoHPvprKJ6KphPh0YTPIS9+xqY="}
    4. Accept: application/json
    5. {
    6. "mercAllocOrderNo": "Demo_1690331931205",
    7. "sysTransOrderNo": "12407030857530004914518***",
    8. "allocationDetails": [
    9. {
    10. "fromMercNo": "102752210***",
    11. "toMercNo": "103732320***",
    12. "amount": 1
    13. }
    14. ],
    15. "allocFinish": false,
    16. "callbackUrl": "https://www.xxxxxx.com/hw/pay/callback/callback",
    17. "payload": "example-payload"
    18. }

响应参数

  • Response Header
    展开

    参数

    是否必选

    参数类型

    描述

    Content-Type

    是

    String

    取值为:application/json; charset=UTF-8

  • Response Body
    展开

    参数

    是否必选

    参数类型

    描述

    resultCode

    是

    String

    返回码,"000000"表示成功,其他表示见错误码

    resultDesc

    是

    String

    结果描述

    subCode

    否

    String

    业务错误码

    subDesc

    否

    String

    业务错误描述信息

    sign

    是

    String

    签名值

    sysAllocationOrderNo

    是

    String

    华为支付分账订单号

  • 响应示例
    收起
    自动换行
    深色代码主题
    复制
    1. HTTP/1.1 200 OK
    2. Content-Type: application/json; charset=UTF-8
    3. {
    4. "resultCode": "000000",
    5. "resultDesc": "Success.",
    6. "sign": "MEQCIEIWzdpziRyTi8vhwWHFuDdxfsiw********************0YAMabeCgTDG77e+2XJItvq/ZkIcCN5/B20pQ==",
    7. "sysAllocationOrderNo": "1241023181702089457838601***"
    8. }

错误码

(resultCode非400000的错误码请看公共错误码说明)

展开

resultCode

resultDesc

subCode

subDesc

400000

业务处理失败

INVALID_ARGUMENTS

参数不合法

400000

业务处理失败

CHECK_ORDER_STATUS

订单状态异常

400000

业务处理失败

UNKNOW_ERROR

服务暂不可用,请稍后重试

400000

业务处理失败

ORDER_NOT_SUPPORT

订单不支持分账

400000

业务处理失败

CHECK_TRANSACTION_ORDER_STATUS

交易订单状态异常

400000

业务处理失败

NEED_CHANGE_ORDER

请换单重试

400000

业务处理失败

MERC_ORDER_NOT_EXIST

商户订单号不存在

400000

业务处理失败

ALLOCATION_FINISH

分账已完结

400000

业务处理失败

ALLOCATION_AMOUNT_ERROR

分账金额异常

400000

业务处理失败

INVALID_MERC_NO

无效商户号

400000

业务处理失败

CHECK_MERC_STATUS

商户状态异常

400000

业务处理失败

MERC_NOT_SUPPORT_ALLOCATION

商户不支持分账

400000

业务处理失败

CHECK_ALLOCATION_MERC

分账接收方商户号不合法