PAYATHON 2026

BigCommerce 是否支持 DigitalRiver 支付方式?

支付小周

结论

BigCommerce 的公开 API 不支持自行注册任意支付方式。checkout-sdk-js 中出现 Digital River 的 payment strategy,只能说明 SDK 已包含相应的前端适配代码。这并不代表所有商店都能启用 Digital River,也不能用来判断 BigCommerce 会在何时正式开放该功能。

Digital River 是否可用,要看以下条件:

  • BigCommerce 后台是否向目标商店提供该支付服务商;
  • 该功能是否受地区、套餐、渠道或灰度发布范围限制;
  • BigCommerce 与 Digital River 是否已经完成服务端配置;
  • Checkout API 返回的支付方式是否包含 Digital River。

如果后台和 API 都没有返回 Digital River,仅调用 SDK 中的 strategy 无法完成接入。

为什么 SDK 中有代码,商店却不一定能用

checkout-sdk-js 是 BigCommerce Checkout 的客户端实现。仓库中出现某个 payment strategy,通常说明前端已能处理相应的支付流程。但完整的支付接入还需要处理:

  • 商户账户配置;
  • 支付方式注册;
  • 服务端订单与支付处理;
  • token、签名和回调验证;
  • 风控、退款及交易状态同步;
  • PCI 合规责任;
  • 地区和币种支持。

SDK strategy 不是支付方式注册接口,也不会自动将 Digital River 添加到控制面板。通常只有在 BigCommerce 服务端已向商店返回对应支付方式时,它才会生效。

代码的提交时间也不能视为发布时间承诺。相关代码可能用于内部测试、特定客户或分阶段发布,也可能只是为尚未公开的集成预先准备。除非 BigCommerce 的官方文档、发布说明或支持团队明确确认,否则不能据此判断正式开放时间。

如何确认当前商店是否已经获得支持

先检查 BigCommerce 控制面板中的支付设置。如果 Digital River 已出现在可配置的支付服务商列表中,应使用后台提供的标准配置流程,无需自行创建 payment strategy。

加载 Checkout 后,也可以检查 BigCommerce 实际返回的可用支付方式。以下代码仅用于说明检查思路,具体字段和值应以目标商店返回的数据和当前版本的 checkout-sdk-js 文档为准:

import { createCheckoutService } from '@bigcommerce/checkout-sdk';

const service = createCheckoutService();

await service.loadCheckout();
await service.loadPaymentMethods();

const state = service.getState();
const paymentMethods = state.data.getPaymentMethods() || [];

const digitalRiverMethods = paymentMethods.filter((method) => {
    const searchableValue = [
        method.id,
        method.gateway,
        method.method,
    ]
        .filter(Boolean)
        .join(' ')
        .toLowerCase();

    return searchableValue.includes('digitalriver');
});

console.log(digitalRiverMethods);

不要根据 SDK 源码猜测并硬编码 methodId。支付方式的标识应取自当前 Checkout 返回的数据:

const method = digitalRiverMethods[0];

if (!method) {
    throw new Error(
        'Digital River is not available for this checkout or store.'
    );
}

await service.initializePayment({
    methodId: method.id,
});

即使 initializePayment() 找到了对应的前端 strategy,只要服务端没有为该商店启用此支付方式,后续支付和订单提交仍无法构成受支持的完整集成。

推荐的解决步骤

  1. 在 BigCommerce 控制面板中确认 Digital River 是否出现在支付服务商列表里。
  2. 通过 Checkout API 或 Checkout SDK 查看实际返回的 payment methods。
  3. 向 BigCommerce Support 或支付合作伙伴团队提供商店哈希、所在地区、结算币种和使用场景,确认 Digital River 是否属于受支持或限制开放的集成。
  4. 向 Digital River 确认其 BigCommerce 集成方案是否要求特定商业协议或商店级开通。
  5. 在获得正式支持前,不要将 SDK 仓库中的 strategy 视为公开扩展接口,也不要依赖未公开的内部标识。
  6. 如果必须在近期上线,可评估 BigCommerce 正式支持的其他支付服务商,或开发完整的自定义结账与支付集成。

如果必须自行集成

仅在 Checkout 页面中加入 Digital River 的前端组件并不足以完成集成。完整方案至少要处理:

  • 支付会话和 token 的创建;
  • 敏感支付信息的合规采集;
  • BigCommerce 订单创建;
  • 支付授权、捕获和失败处理;
  • webhook 验证;
  • 退款、取消与拒付;
  • BigCommerce 与 Digital River 之间的状态同步;
  • 重试、幂等及异常恢复。

这相当于开发一套完整的支付网关集成,并非简单增加一个 Checkout 选项。通过修改主题、伪装成离线支付方式或复用其他 payment method 来绕过限制,可能造成订单状态不一致,并带来安全、升级兼容性和合规风险,不适合用于生产环境。

注意事项

  • checkout-sdk-js 中存在 strategy,不代表功能已经正式发布。
  • GitHub 提交记录不能代替产品公告或商店级开通确认。
  • 不要直接调用未公开的内部类或复制 strategy 源码,否则可能在 SDK 更新后失效。
  • 支付方式是否可用,应以控制面板配置和 Checkout 的实际返回结果为准。
  • 未经官方确认,无法确定 Digital River 正式获得支持的时间。
  • 如果 BigCommerce 尚未为目标商店启用 Digital River,应申请官方开通或等待公开支持,不要通过 workaround 模拟新的支付方式。

备注:内容仅供参考。