PAYATHON 2026

小程序接入交易组件3.0时如何设置业务单代扣模式?

支付老李

结论

请联系对应的业务经理或平台运营人员处理。

“业务单代扣模式”是已签约商家扣款产品的一项后台配置,通常无法通过小程序代码、交易组件接口或商户后台自行切换。在接入交易组件 3.0 前,需要由业务经理确认产品签约状态,并在平台侧将相应的扣款产品设置为业务单代扣模式。

为什么需要人工配置

这项配置涉及商户签约产品、扣款权限和业务场景审核。配置对象是商户已经签约的扣款产品,并非某一笔订单。因此,只修改小程序前端或服务端的下单参数,无法切换代扣模式。

如果平台侧配置不正确,可能会出现以下问题:

  • 交易组件无法正常发起代扣;
  • 订单提交后被产品权限或业务模式校验拦截;
  • 已签约的代扣产品可以使用,但当前模式不符合交易组件 3.0 的业务要求。

具体报错取决于实际调用的接口和平台配置,仅凭上述描述无法确定错误码。

操作步骤

  1. 整理需要调整的商户和产品信息,包括:

    • 小程序 AppID;
    • 商户号;
    • 已签约的商家扣款产品名称或产品标识;
    • 当前签约状态;
    • 数码租赁业务场景;
    • 交易组件 3.0 的接入主体和测试情况。
  2. 联系负责该业务的业务经理,并明确说明:

    请将该商户已签约的商家扣款产品设置为“业务单代扣模式”,用于小程序交易组件 3.0 的数码租赁业务。

  3. 请业务经理核对商户主体、产品签约关系和适用场景,在平台侧完成配置。

  4. 配置完成后,确认生效范围和生效时间。如果有测试环境和生产环境,还要分别确认两个环境是否都已配置。

  5. 使用测试业务单验证完整流程,包括下单、签约状态校验、代扣和结果通知。不要直接使用大额真实订单测试。

代码侧如何处理

业务单代扣模式通常不是通过请求参数开启的,不要自行添加接口文档中没有定义的字段。以下代码只用于说明,实际调用接口时不要添加此类虚构参数:

const orderRequest = {
  // 按交易组件 3.0 官方接口要求填写订单参数

  // 不要自行添加类似字段:
  // deductMode: "BUSINESS_ORDER"
};

代码侧仍需按照交易组件 3.0 对应接口的正式文档提交订单。平台完成产品模式配置后,服务端可以记录必要的订单关联信息,便于后续排查:

async function createBusinessOrder(order) {
  console.info("create business order", {
    appId: order.appId,
    merchantId: order.merchantId,
    outTradeNo: order.outTradeNo
  });

  // 此处调用项目中已经接入的交易组件 3.0 下单逻辑
  return createOrderWithTransactionComponent(order);
}

createOrderWithTransactionComponent 只是项目内部方法的示例,并非已经确认存在的官方 API 名称。实际使用的接口名称、字段和签名方式,应以当前接入文档为准。

注意事项

  • “已签约”和“已设置为业务单代扣模式”是两种不同的状态,需要分别确认。
  • 不要尝试通过重新签约、修改前端参数或重新发布小程序来切换模式。
  • 提交给业务经理的信息应保持一致,尤其是小程序主体、商户主体、商户号和签约产品。
  • 如果配置后仍然失败,请提供失败时间、业务订单号、请求标识和完整错误码,由业务经理或技术支持核查后台配置是否已经生效。
  • 是否需要补充审核材料、重新签约或等待配置生效,取决于实际产品和平台流程,请以业务经理的反馈为准。

备注:内容仅供参考。