跳到主要内容
Crypto Merchant

替代方案

Coinbase Commerce 替代方案:Crypto Merchant 与 Coinbase Commerce 对比(2026)

Coinbase Commerce 已于 2026 年 3 月 31 日之后关闭:Coinbase 将其并入 Coinbase Business,后者只接受美国和新加坡的已注册企业,并告知其他商家“转向替代服务商”。Crypto Merchant 适合这两个国家以外、希望继续通过 API 或支付链接接收 USDC 和其他币种的商家。如果您想像使用 Commerce 时那样自己持有密钥,或者需要插件或银行结算,它就不是合适的选择。

最后核实:2026年10月29日

本对比由 Crypto Merchant 撰写,我们与此处提到的任何网关都没有关联。所有竞争对手的信息均来自其自身的页面,链接列在表格下方。价格和条款会变化,请在做决定前核实。

Crypto Merchant 与 Coinbase Commerce 相比如何?

Commerce 的后继产品 Coinbase Business 与 Crypto Merchant 一样是托管式的,但它仅服务美国和新加坡,并且只接受 USDC 和 USDT。Crypto Merchant 接受任何国家的注册,支持 11 种币,但没有插件或银行提现。

项目Crypto MerchantCoinbase Business
交易手续费每笔已付款账单收取 1%,以所付币种在入账时扣除。已过期或已取消的账单不收费。从 Commerce 迁移的商家为 1%。新商家没有公开费率:Coinbase 表示需登录查看当前费用。[1][2]
月费和开通费无,也没有开通费。激活无需付款:完成设置后,账户即刻激活。“无申请费”。月费未确认。[2]
转换可选:将所有币兑换为一种持有币种。汇率为实时市场价格,并包含 1% 的服务差价。付款以 USDC 结算。从 USDC 自动转换为 USD“需收取费用”;金额未公开。[2][3]
提现随时提现,每次提现收取 Gas 费。手动提现无固定最低金额;自动提现等到每个币种满 5 美元。每种币提现到各自的地址,或先兑换为一种持有币种。可“随时”提现到您的银行,“无锁定期、无最低金额”,并提供 Payouts 产品。旧的 Commerce 提现工具在 2026 年 3 月 31 日之后已被永久停用。[1][2][3]
注册时的 KYC 或 KYB邮箱、姓名和商家名称。您创建账户时,我们不要求提供身份证件。已注册的企业实体和企业银行账户。[1][2]
托管托管式。我们持有密钥;每个钱包都来自同一个离线保存在纸上的助记词。付款汇集到您商家专属的资金池钱包中。仅托管式。Commerce(旧版)是自托管式的。[1]
币种和网络11 种币,覆盖 11 个网络。USDT 支持 Ethereum、BNB Smart Chain、Polygon、Arbitrum One、Tron 和 Solana。USDC 支持 Ethereum、BNB Smart Chain、Polygon、Base、Arbitrum One 和 Solana。另有 BTC、ETH、LTC、SOL、XRP、BNB、TRX、POL 和 GRAM(TON)。USDC 支持 Ethereum、Base、Polygon、Optimism、Avalanche 和 Arbitrum。USDT 仅限 Ethereum,并仅在美国和部分司法管辖区提供。未说明接受 BTC、ETH、SOL 或 TRX。[3]
国家限制任何国家的任何人都可以注册。服务条款禁止非法商品、欺诈和规避制裁。仅限美国和新加坡的企业。[2]
电商插件无:没有 WooCommerce、Shopify 或 WHMCS 插件。请使用支付链接、托管收银台或 API。WooCommerce、Magento(Adobe Commerce)和 WHMCS,以及 QuickBooks 和 Xero 会计软件。[1][3]
法币(银行)结算否。仅限加密货币:提现发送到加密货币地址。是:提现到您的企业银行账户。[1][3]
API 和 Webhook使用 Bearer 密钥的 REST API,支持账单、支付链接、余额和币种。Webhook 使用 HMAC-SHA256 签名,并在约两天内重试。Checkouts API 和 x402 代理付款。[3]
支付链接是:固定价格或由客户自定金额的链接、托管收银台页面和账单。是:支付链接和开票。[3]
Crypto Merchant 的所有费用见价格页面,所有 API 字段见 API 参考。

来源

表中关于 Coinbase Commerce 的所有信息均来自以下页面,核实于 2026年10月29日。“未确认”表示这些页面均未说明。

  1. [1]Coinbase 帮助:从 Commerce 迁移到 Business: https://help.coinbase.com/en/transitioning-from-coinbase-commerce-to-coinbase-business
  2. [2]Coinbase Business: https://www.coinbase.com/business
  3. [3]Coinbase Business:结账: https://www.coinbase.com/business/features-checkouts

什么情况下 Coinbase Commerce 是更好的选择?

如果您的企业在美国或新加坡注册,并且希望资金进入银行账户,Coinbase Business 是更好的选择。

  • 您的企业在美国或新加坡注册,并拥有企业银行账户。您可以迁移到 Coinbase Business,Coinbase 表示从 Commerce 迁移的商家可保留 1% 的费率。
  • 您希望美元进入银行:Coinbase Business 可提现到您的银行账户。Crypto Merchant 仅以加密货币提现。
  • 您使用 WooCommerce、Magento 或 WHMCS,或使用 QuickBooks 或 Xero 记账。Coinbase Business 可与它们配合使用;Crypto Merchant 没有插件。
  • 您想要一家有过往记录和用户评价的服务商。Crypto Merchant 于 2026 年 10 月 28 日上线,目前两者都还没有。

什么情况下 Crypto Merchant 更合适?

如果您在美国和新加坡以外,或者您的客户不只使用 USDC 付款,Crypto Merchant 更合适。

  • 您的企业在美国和新加坡以外。任何国家的任何人都可以注册,并且您创建账户时,我们不要求提供身份证件。
  • 您的客户使用 Tron 或其他网络上的 USDT 付款,或使用 BTC、ETH、SOL、LTC、XRP、BNB、TRX、POL 或 GRAM 付款。Coinbase Business 接受 USDC,USDT 则仅限 Ethereum。
  • 您想要公开的价格:每笔已付款账单收取 1%,无月费。
  • 您要迁移开发者集成。账单、REST API 和签名 Webhook 涵盖了 Commerce 集成的功能,下方指南逐一对应每个步骤。

如何从 Coinbase Commerce 切换到 Crypto Merchant?

注册,完成设置,然后将您的收银台和 Webhook 指向 Crypto Merchant。无需安装插件:您使用支付链接、托管收银台或 API。

  1. 1

    注册账户

    使用您的邮箱、姓名和商家名称注册。您创建账户时,我们不要求提供身份证件。

  2. 2

    选择您的币种

    开启您需要的币种和网络。激活无需付款:完成设置后,您的账户即刻激活。

  3. 3

    开始收款

    分享您的收银台页面,在后台创建支付链接或账单,或通过 API 从您的网站创建账单。

  4. 4

    设置您的 Webhook

    在开发者下添加您服务器的 HTTPS 地址,在每个事件上校验 CM-Signature 请求头,并在收到 invoice.paid 时履行订单。详情见 Webhook。

  5. 5

    迁移您的集成

    如果您的网站通过 API 创建 Commerce 收费单,请按照下方的迁移指南操作。如果没有,请将您网站上旧的支付链接或按钮替换为 Crypto Merchant 的支付链接或您的收银台页面。

如何从 Coinbase Commerce 迁移到 Crypto Merchant?

您的 Commerce 集成会创建收费单并接收 Webhook。使用 Crypto Merchant 时,您为每个订单创建一张账单,将客户引导至其收银台页面,并处理签名 Webhook。以下步骤将每项工作对应到我们的 API;API 参考列出了所有字段。

对应关系

旧集成中的工作使用 Crypto Merchant
为订单创建付款POST /invoices使用金额、货币和您的订单 ID 创建账单。
引导客户付款checkout_url重定向到账单的收银台 URL。
在付款中保存您自己的数据metadata任意不超过 4 KB 的 JSON 对象,会在账单和 Webhook 中返回。
获知付款完成invoice.paid一个 Webhook 端点,先校验签名,然后在收到此事件时履行订单。
查询一笔付款GET /invoices/{id}获取账单。
将付款与订单匹配GET /invoices?status=paid分页列出已付款账单。
撤回未付款的付款请求POST /invoices/{id}/cancel在检测到任何付款之前取消账单。

1. 创建账单而不是收费单

在后台的开发者下创建 API 密钥(正式密钥以 cm_live_ 开头),并将其保存在您的服务器上。您的账户必须先激活:在完成设置之前,API 会返回 403 和代码 merchant_not_live。然后,在您的代码原本创建收费单的地方,改为创建账单。金额必须至少价值 0.50 美元。

curl · 创建账单
curl https://cryptomerchant.online/api/v1/invoices \
  -H "Authorization: Bearer $CM_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "49.90",
    "currency": "USD",
    "order_id": "1042",
    "redirect_url": "https://yourstore.example/orders/1042",
    "metadata": { "cart_id": "c_8812" }
  }'
响应(节选)
{
  "id": "inv_…",
  "object": "invoice",
  "status": "open",
  "amount": "49.9",
  "currency": "USD",
  "amount_usd": "49.9",
  "order_id": "1042",
  "metadata": { "cart_id": "c_8812" },
  "coin": null,
  "pay_address": null,
  "pay_amount": null,
  "checkout_url": "https://cryptomerchant.online/pay/i/inv_…",
  "redirect_url": "https://yourstore.example/orders/1042",
  "expires_at": "2026-10-30T10:30:00.000Z",
  …
}

响应状态为 201,内容为账单对象。请将其 id 与您的订单一起保存。其状态初始为 open。

2. 将客户引导至收银台 URL

将客户重定向到账单的 checkout_url。客户在那里选择币种和网络,获得一个仅用于该账单的收款地址,并看到按锁定汇率计算的准确金额。设置 redirect_url 可在付款后将客户带回您的网站。如果在 expires_at 之前未检测到付款,账单将过期。

Commerce 运行在 Ethereum、Polygon 和 Base 上,Crypto Merchant 在这三个网络上都接受 USDC。如需跳过币种选择,请传入 coin,例如 USDC.BASE:这样 pay_address 和 pay_amount 会在返回时已填好,您可以自行显示付款详情。

创建账单并重定向 · Node.js、Express
// orders: your own data layer
app.post("/orders/:id/pay", async (req, res) => {
  const order = await orders.find(req.params.id);

  const r = await fetch("https://cryptomerchant.online/api/v1/invoices", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.CM_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      amount: order.total, // for example "49.90"
      currency: "USD",
      order_id: order.id,
      redirect_url: `https://yourstore.example/orders/${order.id}`,
    }),
  });
  if (!r.ok) {
    const { error } = await r.json();
    throw new Error(`${error.code}: ${error.message}`);
  }

  const invoice = await r.json();
  await orders.update(order.id, { invoiceId: invoice.id });
  res.redirect(303, invoice.checkout_url);
});

3. 校验 Webhook 签名

在开发者下添加您端点的 HTTPS 地址。每个端点都有自己的签名密钥,以 whsec_ 开头。每个事件都是带有 CM-Signature 请求头的 POST:t= 后为以秒为单位的 Unix 时间戳,然后 v1= 后为以您的端点密钥作为密钥,对时间戳、一个句点和原始正文拼接后计算的十六进制 HMAC-SHA256。

在解析 JSON 之前基于原始正文计算,以恒定时间进行比较,并拒绝超过五分钟的时间戳。请在 10 秒内返回 2xx 状态码;其他任何响应都会重试,在约两天内最多重试八次。

校验、去重并处理事件 · Node.js、Express
import crypto from "node:crypto";
import express from "express";

// CM-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">
function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(
    String(header ?? "").split(",").map((p) => p.trim().split("=")),
  );
  if (!parts.t || !parts.v1) return false;
  const expected = crypto
    .createHmac("sha256", secret) // your endpoint secret, whsec_…
    .update(`${parts.t}.${rawBody}`)
    .digest("hex");
  const a = Buffer.from(expected);
  const b = Buffer.from(parts.v1);
  if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) return false;
  return Math.abs(Date.now() / 1000 - Number(parts.t)) <= 300; // 5 minutes
}

const app = express();

// db, tx.webhookEvents, tx.orders: your own data layer
app.post(
  "/webhooks/crypto-merchant",
  express.raw({ type: "application/json" }), // keep the raw body for the signature
  async (req, res) => {
    const raw = req.body.toString("utf8");
    if (!verify(raw, req.get("CM-Signature"), process.env.CM_WEBHOOK_SECRET)) {
      return res.sendStatus(400);
    }
    const event = JSON.parse(raw);
    const invoice = event.data;

    try {
      await db.transaction(async (tx) => {
        // A unique key on the event id: a repeated delivery is skipped.
        const isNew = await tx.webhookEvents.insertIfAbsent(event.id);
        if (!isNew) return;

        if (event.type === "invoice.paid") {
          await tx.orders.markPaid(invoice.order_id, invoice.id); // one-way: never moves back
        } else if (event.type === "invoice.expired" || event.type === "invoice.cancelled") {
          await tx.orders.cancelIfUnpaid(invoice.order_id);
        }
      });
    } catch {
      return res.sendStatus(500); // not 2xx: Crypto Merchant tries again later
    }
    res.sendStatus(200); // within 10 seconds
  },
);

4. 映射付款状态

只在 invoice.paid 时履行订单,并按下表将其他状态映射到您的订单系统。如果客户将剩余部分发送到同一地址,少付的账单仍可能变为已付款。

状态Webhook 事件含义您的订单系统应如何处理
openinvoice.created已创建。客户尚未选择币种。等待付款。
awaiting_payment无已选择币种,已分配收款地址并锁定汇率。仍在等待:客户已选择付款方式。
confirminginvoice.confirming已在链上检测到付款,正在等待确认。显示“已收到付款,确认中”。暂不发货。
underpaidinvoice.underpaid已确认的付款短缺超出您的容差。客户可以补付剩余部分或申请退款。不要发货。客户可以补付剩余部分或申请退款。
paidinvoice.paid已付款并确认。扣除手续费后的金额已计入您的余额。部分退款后仍保持此状态。标记为已付款并履行订单。
expiredinvoice.expired在检测到任何付款之前时间已用完。释放库存或取消订单。
cancelledinvoice.cancelled账单在检测到任何付款之前已被取消。取消订单。
refundedinvoice.refunded少付账单中客户已发送的金额已退还给客户,或您已将从已付款账单中实得的金额全部退款。取消订单:客户已拿回其币。

5. 处理重复和乱序的 Webhook

事件可能会多次送达,并且不一定按顺序到达。将每个事件的 id(也会在 CM-Event-Id 请求头中发送)以唯一键保存,并与订单更新放在同一个数据库事务中,跳过已保存过的事件。让状态变更只能单向进行,这样迟到的 invoice.confirming 永远不会让已付款的订单回退。在发出贵重商品之前,请通过 API 获取账单,再次核实其状态。

6. 对账

每次列出 100 张已付款账单,在 has_more 为 true 时沿 starting_after 继续获取,并通过 order_id 或 metadata 将每张账单与订单匹配。

获取所有已付款账单 · Node.js
// Every paid invoice, newest first. Match each one to an order by order_id.
async function paidInvoices() {
  const all = [];
  let after = null;
  do {
    const url = new URL("https://cryptomerchant.online/api/v1/invoices");
    url.searchParams.set("status", "paid");
    url.searchParams.set("limit", "100");
    if (after) url.searchParams.set("starting_after", after);

    const r = await fetch(url, {
      headers: { Authorization: `Bearer ${process.env.CM_SECRET_KEY}` },
    });
    const page = await r.json();
    all.push(...page.data);
    after = page.has_more ? page.data[page.data.length - 1].id : null;
  } while (after);
  return all;
}

您的余额会按账单金额(如果接受了容差范围内的少付,则按实际收到的略少金额)扣除 1% 手续费后,以所付币种计入。多付部分不会计入您的余额:Crypto Merchant 会为客户保留多付部分,客户可以在账单页面将其提取。后台的报表页面可以 CSV 格式提供任意时段的总额、手续费和净额,GET /balances 则显示您当前持有的金额。

常见问题

Coinbase Commerce 怎么了?
Coinbase 将 Commerce 与 Coinbase Business 合并。商家必须在 2026 年 3 月 31 日前完成迁移;此后 Commerce 门户无法访问,其提现工具也被永久停用。Coinbase Business 仅向美国和新加坡的已注册企业开放,Coinbase 告知其他商家转向替代服务商。
美国以外最好的 Coinbase Commerce 替代方案是什么?
如果您想像使用 Commerce 时那样自己持有密钥,BTCPay Server 这样自行部署的非托管工具最为接近。如果由服务商运营的托管式服务也可以接受,Crypto Merchant 接受任何国家的注册且无需证件,支持 Commerce 曾使用的网络 Ethereum、Polygon 和 Base 上的 USDC,并提供带签名 Webhook 的 API。它没有插件,也没有银行提现。
Coinbase Business 收费多少?
Coinbase 表示从 Commerce 迁移的商家可保留 1% 的费率。它没有公布新商家的费率:其企业页面表示需登录查看当前费用,并且将 USDC 转换为 USD 需支付一笔未公布的费用。Crypto Merchant 每笔已付款账单收取 1%,无月费。
Crypto Merchant 和 Coinbase Business 一样是托管式的吗?
是的。Crypto Merchant 持有您的资金池钱包和收款地址的密钥,它们全部从同一个离线保存的助记词派生,并在您提现前为您保管余额。Coinbase Business 也是托管式的。Commerce 是自托管式的,因此如果您从 Commerce 迁移过来,这一点会有所改变。
我可以继续接收 Base 上的 USDC 吗?
可以。Crypto Merchant 接受 Base、Ethereum、Polygon、Arbitrum One、BNB Smart Chain 和 Solana 上的 USDC,以及包括 Tron 在内六个网络上的 USDT。转移代币的网络手续费从您的 Gas 余额中支付。

其他网关对比

所有网关一表对比

今天就开始接收加密货币

免费开通,注册无需提交证件,每笔已付款账单收取 1%,可随时提现。