# 结算能力

# 1、接口说明

结算说明:结算功能用于在交易满足结算规则后,可以根据需求分配货款,将资金从冻结户转移至可提现账户。

为了保证业务正确处理, 请按担保交易设置页面的分账周期处理分账. 订单在支付后 360 天后如果仍然未进行分账,则当笔交易无法进行资金结算;

超期未结算的订单

  1. 微信平台将自动结算给商户
  2. 支付宝会将资金停留在支付平台,无法结算

结算方式:结算用于确认一笔在途资金,将其转化为可提现资金。平台提供了两种结算方式:

  1. 自动结算:配置流程见文档 (opens new window)
  2. 主动结算:开发者主动调用下方请求结算接口,发起结算。

结算规则:

  1. 订单履约完成后发起结算,结算周期为 订单到达核销状态(订单状态为11或15)满3天后可发起结算。核销状态通过订单同步接口 (opens new window)进行同步。
  2. 结算时,快手小程序平台会收取整笔交易的平台服务费。若结算后发生退款,则平台服务费不作退还。
  3. 若有 达人分销费和服务商分销费,结算后发生退款,

结算分账方

  1. 商户:商户在该笔订单收入
  2. 苹果通道费:仅对使用苹果支付渠道收取,收取方是苹果公司,一般费率在30%左右,具体收费标准见苹果价格档位信息 | 快手小程序文档 (opens new window)。非苹果支付订单无此费用。
  3. 平台服务费:快手平台收取的服务费,费率一般在2%,个别小程序会有不同。
  4. 达人分销费:小程序订单是由达人的短视频或者直播中带货带来,需要分销给达人。非达人带货订单无此费用。
  5. 服务商分销费:小程序借助第三方服务商开发运营上线,产生的订单收入需分销给服务商。非服务商小程序无此费用。

计算规则如下:

订单支付金额: orderPayAmount

苹果通道费:appleChannelFee

服务商分销比例:developerPromotionRate

达人分销费比例:promotionRate

平台服务费比例:platformRate

商户收入 = (orderPayAmount - appleChannelFee) * (1- (developerPromotionRate + promotionRate + platformRate))

即:先扣除苹果通道费,再按照服务商/达人分销+平台服务费比例扣除费用,剩余的钱是本比订单商家收入。服务商分销费、达人分销费和平台服务费的基数,均为扣出苹果通道费后的金额。

# 2、结算接口

# 2.1、结算发起

# 2.1.1、基本信息

名称内容
HTTP URLhttps://open.kuaishou.com/openapi/mp/developer/epay/settle
HTTP MethodPOST
接口频次30QPS(小程序app_id维度)

# 2.1.2、请求头

名称字段类型内容
Content-TypeString固定值: "application/json"

# 2.1.3、入参

以下参数在query param中

字段名类型是否必填是否参与签名说明
app_idstring小程序 AppID
access_tokenstring拥有小程序支付权限的access token,获取方式见getAccessToken

以下字段放置到body json中:

字段名类型是否必填是否参与签名说明
out_order_nostring[6,32]开发者需要发起结算的支付订单号,商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
示例值:1217752501201407033233368018
out_settle_nostring[6,32]开发者的结算单号,小程序唯一。
reasonstring[1,128]结算描述,长度限制 128 个字符。1个字符=2个汉字
attachstring[0, 128]开发者自定义字段,回调原样回传.
注:1汉字=2字符;勿回传敏感信息
notify_urlstring[1,256]结算回调通知URL,必须为直接可访问的URL,不允许携带查询串。
settle_amountnumber当次结算金额,需传大于0的金额,单位为【分】
multi_copies_goods_infostring[1, 500]否(单商品多份场景必填)单商品购买多份场景,示例值:[{"copies":2}], 内容见multi_copies_goods_info字段说明
signstring开发者对核心字段签名, 防止传输过程中出现意外,签名方式见附录

multi_copies_goods_info字段说明

字段名类型说明
copiesnumber结算份数

# 2.1.4、示例

# 请求示例

curl --location --request POST 'https://open.kuaishou.com/openapi/mp/developer/epay/settle?app_id=ks707065143182458884&access_token=ChFvYXV0aC5hY2Nlc3NUb2tlbhJABVi9jvzBiHqK8ftAbMG6OsPtSy4V02gKbaX0jv2PEo-mUlhN6dpJLCO7RoI7GbkEbKKh-Vlfq5S0bN-Wgl_jjxoSXmId3s_9TpqnCS4FlyiXkIhhIiC5L9gIWwswVuCQQyTxEtvMRH6zMwpfvAQ3x6F_IrakPygFMAE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "notify_url":"https://qa-mp.test.kuaishou.com/zeus/epay/notify",
    "attach":"结算demo",
    "reason":"测试结算",
    "out_order_no":"1700813954820demob",
    "out_settle_no":"1700813954820demobutie1",
    "settle_amount":"10",
    "sign":"af2b2d3160853a76fd31496391ea74aa"
}'

# 响应

返回值为 JSON 形式,其中包括如下字段:

字段名类型说明
resultnumber状态码 1-业务处理成功。其他不成功,详细见错误码
error_msgstring错误提示信息,常见错误处理可参考附录常见问题章节
settle_nostring快手小程序平台的结算单号

示例如下(仅供参考):

{
    "result":1,
    "error_msg":"错误信息提示",
    "settle_no": "221072611585202788127"
}

# 错误码

当 result 不为 1 时,说明请求错误。错误码见附录。

下面是结算相关的错误码

错误码错误信息排查建议
10000628退款调用异常退款调用内部支付中心抛异常,请联系快手小程序客服帮忙排查

# 2.2、结算回调

当订单结算成功之后,快手小程序服务端会通过 post 方式回调开发者提供的 HTTP 接口(notify_url)。回调的内容使用小程序 secret key 进行签名,具体回调方式和重试策略见附录。

回调内容如下:

{
    "data": {
        "ks_order_no": "124040311931612458252",
        "developer_promotion_amount": 0,
        "apple_channel_fee": 0,
        "out_settle_no": "1712136150805settle",
        "attach": "结算demo",
        "ks_settle_no": "324040311746606116252",
        "promotion_amount": 1,
        "settle_amount": 8,
        "enable_promotion": true,
        "status": "SUCCESS"
    },
    "biz_type": "SETTLE",
    "message_id": "d2614163-e792-4cb9-bda3-022ffefeaf4e",
    "app_id": "ks707065143182458884",
    "timestamp": 1712136430484
}

其中和结算相关的主要是:

字段名类型说明
ks_order_nostring快手小程序平台订单号。
developer_promotion_amountnumber服务商分销金额,单位:分(仅通过服务商接入的小程序有)
apple_channel_feenumber苹果通道费,单位:分(仅苹果支付有此费)
out_settle_nostring外部结算单号,即开发者结算请求的单号。
attachstring预下单时携带的开发者自定义信息
ks_settle_nostring快手小程序平台结算单号。
promotion_amountnumber预计分销金额,单位:分
settle_amountnumber结算后给商户的金额,单位:分
statusstring结算状态。 取值:SUCCESS-成功,FAILED-失败
enable_promotionboolean是否参与分销,true:分销,false:非分销

开发者返回

开发者在接收到回调消息,并正确处理后,需要返回以下内容格式,以通知小程序平台不再持续回调:  

{
  "result" : 1,   //必填。 1-成功,其他-失败。失败小程序平台会尝试重推此消息
  "message_id" : "ChFvYXV0aC5hY2Nlc3NUb2tlbhJQvpR51x8In46B1sDB" //当前消息的message_id
}

如果开发者没有返回或者返回的result不等于1,则小程序平台会尝试重复推送此消息,开发者务必做好消息的幂等处理!

Copyright ©2024, All Rights Reserved