JavaJava web

支付宝微信合单支付

2021-02-24  本文已影响0人  Vchar_Fred

文章来自:https://blog.vchar.top/java/1613828179.html

什么场景下会用到合单支付呢?下面举个例子:最常见的就是商城系统了,比如用户在一笔订单里面选择了多个不同商户的商品, 为了用户体验,在支付的时候肯定是只需要支付一次即可的;
如果我们使用传统的方式即实际后就是一笔订单,直接支付下单即可,这里确实简单了,但是我们在给商户做结算的时候就麻烦了,需要后台去统计相关的财务信息然后再打款给商户;
但是如果不想去做这样复制的结算步骤,或者是可能刚开始我们的平台名气小,商户不太信任,想自己看到相关的支付账单信息。

此时我们就可以采用 微信的电商收付通 和 支付宝互联网平台直付通产品;它们都提供了多笔订单一起支付,最后金额自动分配的商家的账户上、账单资金冻结、结算、平台抽成的功能。
下面来谈谈在与它们对接的相关注意事项吧。

相关接口文档

关于二级商户进件

打开接口文档微信和支付的进件需要的资料都是一大坨,一看就是感觉很麻烦!在对接的时候不要管那么多,先用需要资料最少最简单的参数进件成功一个再说(快速理清认证流程和需要的相关资料),同时也方便其他对接支付的同学可以调试后面的支付和结算相关接口(不然后面就会卡住,很多问题不能提前发现);

微信的电商收付通二级商户进件说明

进件的相关参数直接看官方文档即可,需要说明的是在进件的通过后,会返回一个认证的链接的二维码,需要商户去扫码确认,同时银行卡认证微信需要打款确认。

支付宝的互联网平台直付通二级商户进件说明

关于支付接口

微信的合单支付说明

{
  "combine_out_trade_no": "合单订单号",
  "sub_orders": [
    {
      "out_trade_no": "子单订单号",
      "transaction_id": "子单交易订单号",
      ...
    },
    {
      "out_trade_no": "子单订单号",
      "transaction_id": "子单交易订单号",
      ...
    }
    ...
  ],
  ...
}

支付宝的合单支付接口说明

{
  "out_trade_no": "子单订单号",
  "trade_no": "子单交易订单号",
  ...
}
{
  "outTradeNo": "202002220016444498",
  "productCode": "QUICK_WAP_WAY",
  "settleInfo": {
    "settleDetailInfos": [
      {
        "amount": "0.01",
        "transInType": "defaultSettle"
      }
    ],
    "settlePeriodTime": "365d"
  },
  "subMerchant": {
    "merchantId": "11112464984"
  },
  "subject": "网球排一个",
  "timeoutExpress": "15m",
  "totalAmount": "0.01"
}

关于订单结算接口

微信和支付宝的分账接口还是存在细微差别的。注意如果你不需要分账的话,那么就不需要调用分账接口。
如果分账失败的话在重试的时候建议还是使用原来的分账单号,避免多分(支付宝和微信那边是做了幂等的);

退款是先退该订单冻结的金额,如果不够的话会直接从商户的账号上扣除金额;如果都不够那么就会退款失败

微信的订单结算说明

微信分账接口是异步处理的,因此你需要在请求分账接口后,手动去查询一下分账是否成功。如果不需要分账的话,那么直接调用完结分账即可;注意完结分账也是异步的。

调用分账或者是完结分账接口后,资金会自动解冻(也就是二级商户可以直接提现到银行卡了);

注意:微信是提供了查询二级商户资金信息的操作接口的,如:账户余额信息、提现到银行卡等。

支付宝的订单结算说明

支付宝在调用分账接口前需要先调用确认结算接口,注意调用确认结算接口后,该笔订单的资金就会解冻到商户绑定的支付宝账号上去了;同时支付宝的分账接口是同步的(即请求后立即就知道分账结果了)。

上一篇 下一篇

猜你喜欢

热点阅读