全渠道的订单履行有时会有多个公司参与,比较典型的场景是线上品牌电子商务公司与 线下品牌经销商。完成订单履行之后需要多方之间进行分账。分账的实时性将直接影响到经 销商对于品牌全渠道业务的支持力度。其次,品牌商也有提高企业财务结算及运营效率的诉 求。
阿里巴巴苍穹计划为了解决全渠道订单分账的即时性与便捷性提供了即时分账的能力。 帮助企业做到 T+0(即时)或 T+1 日等的分账能力。企业可以自研发,或者请阿里巴巴的服 务商研发全渠道企业管理软件进行分账。分账的能力将由阿里巴巴全渠道 OC 订单通过淘宝 开放平台输出。OC 订单作为企业全渠道订单,为企业全渠道服务输出订单履行的能力。
为了控制资金风险及交易和合规性检验,各个分账方需要有一个支付宝账号并且分账的 基础订单限定在淘宝或者天猫的订单。之后,在风险可控的范围内可能提供支付宝向银行卡 分账的支持及非淘系订单的分账支持。
分账主要包含两个步骤,一是准备阶段,包含分账参与账号、分账规则设置;二是分账阶段。 如下:
创建企业账号实体
top 接口名称:taobao.oc.account.create
Result<Account> createAccount(String isvKey, string userId, String desc);
获取企业账号实体
top 接口名称:taobao.oc.account.get Result<Account> getAccount(String isvKey, long userId);
创建分账规则
top 接口名称:taobao.oc.ap.rule.create
* * * * * *
Long[]divisionLayer , Map<String, String> extAttributes);
按用户获取支付宝代扣协议链接地址
top 接口名称:taobao.oc.ap.contracturl.get
Result<String> getAllocateAlipayPaymentContractUrl(long userId, String appkey);
用户是否签署支付宝代扣协议
top 接口名称: taobao.oc.ap.contractsigned.get
Result<Boolean> allocateAlipayPaymentContractSigned (long userId, String appkey);
准备工作完成后,真正的分账动作需要创建 OC 订单,并调用 OC 订单的分账接口进行分账。 分账可以在 OC 订单的主体为单位,即以订单为单位分账。还可以以商品作为单位进行分账, 即以子订单为单位分账。
分账流程图:
创建 OC 订单分账成功后,财务审核由商家财务完成,审核完成后再由平台完成打款。如果 打款未成功,则重试。
系统打款返回-1(失败)、0(创建订单)、1(成功)、2 (打款中)四个状态。API 接口使用 如下:
@param isvKey
@param divisionLayer 当按照比例的时候[10,60,40]表示按照 10%,50%,40%
当按照金额的时候[100,600,400]表示 100 分,600 分, 400 分 @param extAttributes extAttributes:
"divisionRule": "byAmount" 或者 "byPercentage",
" excutionPeriod": "month" 或者 "day" 或者 "now" Result<AllocatePaymentRule> createAllocatePaymentRule(String isvKey, long userId,
创建 OC 订单
top 接口名称:taobao.oc.order.create
* @param userId
* @param ocOrder
* 必传项:
* allocatePaymentAmount:扣款金额,单位分
* allocatePaymentRuleId:如果不按照子订单进行分账,那么此字段必须传值
* mainAllocationPaymentAcount:扣款人的淘宝 id; todo???
* allocatePaymentParticipants:{"1":id1,"2":id2, "3":id3,....}
* sourceTradeNO:交易号
* sourceTradeChannel:不传默认 TB
* orderLines: 子订单数组,结构同父订单,如果按照子订单分账,那么子订单
的 ruleId 都必须传递,父订单则可以不传递
Result<OCOrder> createOCOrder(String isvKey, long userId, OCOrder ocOrder);
按 OC 订单分账
top 接口名称:taobao.oc.order.ap.update
* @param isvKey
* @param userId
* @param ocOrderId
Result<Long> AllocatePayment(String isvKey, long userId, long ocOrderId);
获取 OC 订单
top 接口名称:taobao.oc.order.get
* @param isvKey
* @param userId
* @param ocOrderId
public Result<OCOrder> getOCOrder(String isvKey, long userId, long ocOrderId);
财务审核打款
财务人员登录到指定 URL 进行财务审核并执行打款动作
沙箱测试 URL: http://pay.daily.taobao.net/omniChannel/ocBillList.htm