所有渠道

Authorize.Net

买家通过你自己的 Authorize.Net 账户付款,Coin Moebius 从不持有这笔钱。

你需要什么

字段它做什么
API Login ID在 API 调用上标识你的账户。与 Transaction Key 配对使用。
Transaction KeyAPI 认证机密的那一半。与 Login ID 一起,它生成每一个付款表单。机密。
Signature Key确认一个 webhook 确实来自 Authorize.Net。与 Transaction Key 不同。机密。
成功网址 / 取消网址买家在付款或退出后落到哪里。

API Login ID 和 Transaction Key 总是成对出现。Signature Key 是独立的。

我们为什么要每个字段

API Login ID

在 API 调用上为你的账户命名。它只有在与 Transaction Key 配对时才有效。

Transaction Key

证明一个 API 请求属于你的机密。与 API Login ID 一起,它让我们构建托管付款表单,使扣款通过你的账户进行。

Signature Key

证明一个传入的 webhook 真的来自 Authorize.Net,于是没人能伪造一个“已付款”事件。它是一个与 Transaction Key 不同的值。

成功与取消网址

普通设置:买家在付款或退出后落到哪里。非机密。

设置

  1. 创建一个免费的沙盒账户(无需付款)

    你不需要付费商户账户就能测试。Authorize.Net 提供一个镜像生产环境的免费沙盒,无需信用卡。

    1. 去 developer.authorize.net/hello_world/sandbox.html 注册一个沙盒账户。用那个链接,而不是主注册或价格页(那是付费的正式申请)。
    2. 在 sandbox.authorize.net 登录沙盒商户界面(Merchant Interface)。

    签名方案与生产环境完全相同,所以你在沙盒里验证过的任何东西,在正式里的行为都一样。

  2. 复制你的三项凭据

    沙盒和正式的路径相同:Account → Settings → Security Settings → General Security Settings → API Credentials and Keys。

    • API Login ID 显示在顶部。
    • Transaction Key:选择“New Transaction Key”,确认,然后立即复制(它只显示一次)。
    • Signature Key:选择“New Signature Key”,确认,然后立刻复制。
    Account → Settings → Security Settings → API Credentials and Keys
  3. 添加 webhook
    1. Account → Settings → Business Settings → Webhooks,添加一个端点。
    2. 把端点 URL 设为你的项目 webhook 地址(见下)。
    3. 订阅事件。一次性付款:net.authorize.payment.authorization.created、authcapture.created、capture.created、priorAuthCapture.created、refund.created、void.created,以及 fraud.* 事件(held、approved、declined)。订阅(自动定期计费 ARB):net.authorize.customer.subscription.* 事件。续费会以 authcapture.created 到达,已涵盖。多选的事件无害。
    4. 保存。Authorize.Net 用你的 Signature Key 对每一次投递签名。
    https://api.coinmoebius.com/webhook/authorizenet/<your project id>
    Account → Settings → Business Settings → Webhooks

    Coin Moebius 把每个事件 id 记录一次并忽略重复,所以重放的 webhook 已替你处理好。

  4. 用沙盒卡测试

    沙盒卡永远不会扣真卡。用任意未来的有效期(例如 12/2030)和任意 CVV(3 位,American Express 为 4 位)。

    卡网络卡号
    Visa4111111111111111
    Mastercard5424000000000015
    American Express370000000000002
    Discover6011000000000012
  5. 在后台里连接

    添加渠道 → Authorize.Net。输入成功网址、取消网址,以及正式组(API Login ID、Transaction Key、Signature Key)。添加可选的沙盒组以便测试。沙盒组要么全填要么全不填:三个字段全有,或一个都没有。正式和沙盒各自分别检查。

连接之后

上线前跑一笔测试付款:

  1. 创建一个商品,并把它的环境设为 Testing。这会让该商品跑在你的沙盒凭据上,于是你可以下一整单而不动真钱。(如果你跳过了沙盒组,一个 Testing 商品会回退到正式,所以请先添加它。)
  2. 把买按钮放到一个页面上(本地 HTML 文件也行),指向你的项目。
  3. 用上面的一张沙盒测试卡完成结账。
  4. 打开“交易”标签。一行带 Testing 标签的新行出现。当它的状态到达 succeeded 时,你的凭据和 webhook 就都端到端工作了。

准备好接收真实付款时,把商品环境切换到 Live。

问题排查

从“验证”开始。在后台里,点击“验证”(沙盒组则是“验证测试凭据”)来核对你的 API Login ID 和 Transaction Key。

验证失败。

API Login ID 和 Transaction Key 必须是同一个账户(正式或沙盒)的那一对。把两者都重新复制一遍。

签名校验失败。

Signature Key 是一个与 Transaction Key 不同的值。从同一个界面复制 Signature Key。该方案在沙盒和正式里完全相同。

付款完成了,但订单仍停在待处理。

确认 webhook URL 完全一致,且你订阅了付款事件。

一个测试商品扣了一张正式卡。

当没有配置完整的沙盒组时,一个被标记为测试的商品会回退到你的正式凭据。把三个沙盒字段全部添加,或取消该商品的测试标记。

端到端确认一下。

Authorize.Net 只对处于非活跃状态的 webhook 发送 ping:把端点设为非活跃,发一个 ping,然后重新激活它,并看着订单更新。

值得了解

Token 是短命的. 托管表单 token 大约持续 15 分钟。我们为每次结账生成一个新的。

币种. Authorize.Net 主要是一个美国、美元网关。非美元取决于你的处理机构协议。

轮换密钥. 随时生成一个新的 Transaction Key 或 Signature Key,然后粘进去。编辑时机密字段保持空白。

有问题? Join our Discord

准备好连接一个渠道了吗?

挑你已在用的渠道。买家通过你的账户付款,而你只保留一个买按钮。