如何在 BNB Chain 上接受加密货币支付:商家指南

如何在 BNB Chain 上接受加密货币支付:商家指南

Author: Xi Wang
Created:

在 BNB Chain 上接受加密货币支付,不能只是公布一个钱包地址。可靠的商家支付流程必须明确网络和资产、请求正确金额、识别转账、等待支付达到适当状态,并把该笔支付与唯一订单关联起来,避免重复履约。

BNB Smart Chain 主网是兼容 EVM 的网络,链 ID 为 56,其原生资产 BNB 用于支付燃料费。熟悉的 EVM 设计让许多钱包用户易于使用,但也带来了严重的支付风险:同样以 0x 开头的地址可能同时出现在 Ethereum 和其他多个网络上。客户可能把真实代币发送到有效地址,却为订单选错了网络。

本指南介绍商家如何在 BNB Chain 上接受 BNB、USDT 和其他受支持资产,同时管控代币合约、确认、Webhook、退款和会计风险。在宣传任何组合之前,请先确认该代币和网络组合确实出现在您登录后的实际设置中。公开的 Yolfi BNB Chain 页面介绍了可用的产品功能,但公开页面或自动生成的页面并不能证明每个账户都已启用所有资产。

一笔 BNB Chain 支付必须标明哪些信息

BNB Smart Chain 通常简称 BSC,是 BNB Chain 生态系统中的智能合约网络。官方 BNB Smart Chain 文档将其描述为去中心化应用平台;官方 BSC 简介则说明了其 EVM 兼容性以及 BNB 作为燃料费资产的作用。

对商家而言,完整的支付请求需要包含以下字段:

字段 客户和商家系统需要了解的内容
网络 BNB Smart Chain 主网,而非 Ethereum 或其他 EVM 网络
链 ID BNB Smart Chain 主网为 56
资产 原生 BNB 或确切的受支持代币
代币合约 使用代币付款时可接受的 BEP-20 合约
收款地址 为该支付路径配置、由商家控制的地址
金额 按报价或账单规则请求的准确金额
关联信息 订单、账单、客户或支付请求的标识符
状态 已创建、待处理、已确认、已过期、不匹配或其他已定义状态

网络和资产共同构成一种支付方式。仅写“USDT”并不完整;“BNB Chain 上的 USDT”才具备可操作性。“发送到这个 0x 地址”同样不完整,因为 EVM 格式的地址不会告诉钱包应使用哪个网络。

何时适合使用 BNB Chain

如果客户已经在 BNB Chain 上持有 BNB 或稳定币、可以从常用交易所提现到该网络,并且使用兼容钱包,就值得测试 BNB Chain。它适合面向加密货币活跃用户的 SaaS 套餐、数字商品、服务账单、付费社群及其他在线产品。兼容 EVM 的工具、BEP-20 支持、区块浏览器的可查性以及可能较经济的交易成本都有帮助,但并不意味着费用固定不变。

不要只因为营销页面声称它快速或便宜就选择该网络。资金在其他网络上的客户可能需要先从交易所提现或进行跨链操作才能付款,这会增加成本、延迟和风险。网络状况与钱包估算也可能变化。

最佳支付网络通常是客户已经使用、企业又能提供全流程支持的网络。如果需求尚不明确,可以参考稳定币支付的最佳区块链指南,从客户持仓、燃料费、钱包可用性、资金管理和客户服务负担等方面进行比较。

在 BNB 和稳定币之间选择

首先要决定接受 BNB Chain 上的哪种资产。

接受原生 BNB

BNB 支付适合已经在 BNB Smart Chain 上持有 BNB 的客户,或有意用 BNB 定价的企业。在此流程中,BNB 有两个作用:既可以作为购买资产,也用于支付网络费用。

如果产品以法定货币定价,从生成报价到客户付款期间,所需 BNB 数量可能发生变化。良好的支付页面会计算准确金额,记录参考汇率和时间戳,在适当情况下显示有效期,并明确规定付款逾期、少付或多付时的处理方式。

不要无限期重复使用旧的 BNB 报价。应将购买金额与燃料费分开:钱包必须额外留有足够的 BNB 来支付费用,而不是从请求金额中扣除。

接受 USDT 或其他稳定币

对于以美元定价的账单,锚定美元的稳定币更便于理解。例如,USDT无需在每次 BNB 价格波动时改变页面显示的价格。接受 USDT 支付指南说明了同一代币代码如何存在于多个网络上。

稳定币仍然存在发行方、脱锚、合约、监管、网络、钱包和流动性等风险。代币代码无法唯一标识合约,钱包也可能显示外观相似的仿冒代币。

Yolfi 的公开 BNB Chain 页面目前提到了原生 BNB、USDC、USDT 和其他主流稳定币。可将这些信息作为产品参考,但仍应确认登录后设置中实际显示的选项。不要仅仅因为任何代币在技术上都能转入某个地址,就宣称“我们接受所有 BEP-20 代币”。

BNB 与稳定币对比速览

决策因素 BNB USDT 或其他受支持的稳定币
定价 以法定货币定价的订单会受到报价波动影响 对以参考货币定价的产品通常更简单
客户要求 客户需要 BNB 来付款并支付燃料费 客户需要相应代币以及用于燃料费的 BNB
标识方式 BNB Smart Chain 上的原生资产 BNB Smart Chain 上准确的 BEP-20 合约
报价规则 有效期和汇率处理尤其重要 金额可能更简单,但仍需制定逾期付款规则
资金管理 决定持有还是兑换 BNB 核实发行方、合约、流动性和会计处理方式

从客户需求最高的支付路径开始。每增加一种资产,都会增加定价、代币验证、异常处理、退款和对账工作。

启用代币前先了解 BEP-20 合约

BEP-20 是 BNB Smart Chain 上常用的代币接口。对支付运营而言,关键标识是合约地址,而不是代币名称、图标或代码。

绝不要从搜索结果、陌生消息、钱包搜索结果或随意收集的代币列表中复制合约地址。应根据发行方当前的第一方来源,以及登录后支付设置中显示的资产进行双重核实。如果发行方没有为该支付路径公布可靠标识,就不要自行编造或推断。

启用 BEP-20 资产之前:

  1. 记下实际商家设置中准确的代币和 BNB Chain 选项。
  2. 从代币发行方的官方来源获取合约地址。
  3. 逐字符比对该地址与受支持的合约地址。
  4. 通过可信的合约或区块浏览器数据确认代币精度和转账显示方式。
  5. 通过客户实际使用的支付路径进行一笔小额测试。
  6. 确认支付记录识别的是该确切合约。
  7. 记录客户服务团队应如何处理不同合约或仿冒代币。

不受支持的合约所产生的转账可能到达商家地址,却不符合支付条件。应将其转入异常审核流程。不要仅因代币显示预期代码或大致相符的美元价值,就自动为订单入账。

清楚说明 BNB 燃料费

普通 BNB Smart Chain 交易需要用 BNB 支付燃料费,BEP-20 支付也不例外:客户持有的 USDT 可能足以支付账单,但如果钱包在该网络上没有 BNB,仍然无法发送。

请区分以下金额:

  • 商家应收到的金额;
  • 钱包估算的 BNB 网络费用;
  • 支付页面披露的任何服务商或商家额外费用。

如果请求金额为 80 USDT,应告诉客户发送 80 USDT,并在发送钱包中保留足够的 BNB 来支付燃料费。不要让客户从 USDT 金额中扣除以 BNB 计价的费用。

应明确说明“需要 BNB Smart Chain 上的 BNB 来支付燃料费”,而不是只说“你需要 BNB”。与其他网络或产品关联的余额可能无法用于支付 BSC 燃料费。不要公布永久有效的费用估算或保证确认时间,因为支付条件和风险规则都可能变化。

如何设置 BNB Chain 支付

1. 确认实际可用的代币和网络选项

打开登录后的商家设置,记录准备提供的每一种 BNB Chain 组合。除了设置页面,也要检查客户实际看到的支付页面。如果其中没有提供 BNB、USDT、USDC 或其他资产,就不要宣传该支付路径。

对每个已启用选项,记录显示名称、网络、相关合约、结算地址和运营负责人。账户或产品发生变更后,应重新核对这些信息。

2. 配置由企业控制的钱包

使用符合企业管理制度、兼容 BNB Smart Chain 的结算钱包。在公开该支付路径之前,应独立核实收款地址,并明确:

  • 谁可以查看或更改结算地址;
  • 如何保护和备份私钥或签名设备;
  • 高风险变更或退款是否需要第二位审批人;
  • 如何记录和测试地址变更;
  • 资金管理团队如何保留足够的 BNB,以执行获批的转出交易;
  • 财务团队如何区分 BNB Chain 余额与其他网络上的同类资产。

Yolfi 将其 BNB Chain 支付流程描述为非托管模式,资金会直接发送到商家钱包。直接结算省去了从服务商处提现的步骤,但密钥管理、钱包访问、退款和资金管控仍由商家负责。

3. 选择支付链接或集成式支付流程

对于试点、账单、咨询服务、定制订单或需要人工交付的产品,支付链接通常是最快的方式。它无需完整集成支付流程,就能为转账指定金额和支付关联信息。Yolfi 的公开 BNB 页面也介绍了 BNB 支付链接和直接到账钱包的结算方式。

如果支付确认后需要自动创建账户、交付文件、发放额度、更新订单或延长访问期限,则更适合集成式支付流程。至少应保留:

  • 内部订单和客户 ID;
  • 商品、数量及参考货币价格;
  • 请求的资产、网络和代币合约;
  • 收款地址及准确的加密货币金额;
  • 适用时的报价汇率、创建时间和有效期;
  • 支付请求 ID、状态和交易哈希;
  • 履约和退款记录。

Yolfi 的公开 BNB Chain 页面目前介绍了支付链接、周期性支付、支付事件、Webhook 和直接到账钱包的结算方式。如果产品适合周期性计费,可了解加密货币订阅,然后确认登录后的流程中实际可用的 BNB Chain 资产。不要把周期性支付理解为钱包会被自动扣款。应根据实际实现方式,明确续费提醒、付款期限、宽限期、取消、访问权限变更和重复事件处理规则。

4. 让客户不会忽略网络选择

在资产、金额、二维码和钱包操作旁重复标明“BNB Smart Chain”或“BNB Chain”。可在钱包设置或技术帮助中注明链 ID 56,但不要让客户仅凭数字判断网络。

有效的支付页面提示语可以这样写:

  • “请在 BNB Smart Chain 上发送 80 USDT。”
  • “仅使用 BNB Smart Chain 主网(链 ID 56)。”
  • “需要 BNB Smart Chain 上的 BNB 来支付网络费用。”
  • “请勿通过 Ethereum 或其他网络发送此代币。”

如果产品提供多个网络,必须让客户明确选择后再打开钱包。不要只显示代币代码,却默认选择 BNB Chain。防止加密货币支付选错网络的商家指南更详细地介绍了支付环节的预防措施和事件证据留存。

5. 测试完整的客户支付流程

使用客户实际会用到的同类设备、钱包跳转方式和支付页面,进行一笔真实的小额交易。确认:

  1. 支付页面同时标明代币和 BNB Chain;
  2. 钱包使用链 ID 为 56 的主网;
  3. 收款地址和请求金额一致;
  4. 代币支付使用预期的 BEP-20 合约;
  5. BNB 燃料费单独显示;
  6. 提交交易后状态变为待处理,而不是立即履约;
  7. 适当的已确认状态能够传递到订单系统;
  8. Webhook 重复投递不会导致重复履约;
  9. 财务团队能在结算钱包和区块浏览器中找到该笔收款;
  10. 受控的退款流程可以正常运行。

更换钱包、代币、支付页面代码、Webhook 端点、确认规则或履约逻辑后,应重新测试。

确认支付,同时避免重复履约

交易哈希只是待核实的线索,并不代表可以发货。交易可能持续待处理、执行失败、使用错误网络、转移仿冒代币、金额不符,或已经关联到另一笔订单。

商家接受支付前应核实:

  • 网络为链 ID 56 的 BNB Smart Chain 主网;
  • 资产为请求的原生资产或准确的 BEP-20 合约;
  • 收款地址与配置一致;
  • 金额符合订单规则;
  • 支付达到支付系统要求的确认状态;
  • 该交易此前未分配给其他订单;
  • 该订单此前尚未履约。

应使用支付流程提供的已确认状态,并根据订单价值和交付风险实施其他适当控制。不要为所有支付承诺统一的确认次数、秒数或不可逆的最终确认节点。

对于 Webhook,应遵循集成文档规定的真实性验证方法。保存事件 ID、支付请求 ID、交易哈希、状态和处理结果。按照集成约定确认接收或重试事件,并确保履约具有幂等性。

幂等性是指多次收到同一事件,与只收到一次产生相同的业务结果。应对稳定的事件或支付标识符设置唯一性约束,并在持久化数据库操作中更新履约状态。即使已确认事件投递三次,也不能生成三份许可证、为账户入账三次或将订阅延长三次。

Webhook 不应是唯一记录。应核对已创建的支付请求、已确认的支付记录、区块链上的收款、结算钱包活动和已履约订单。该流程可以发现漏发的通知和内部错误,同时避免把任意转账误认为有效订单。

规划异常、退款和对账流程

在第一位客户付款前就应制定异常处理规则:

  • 少付: 根据书面容差规则,将订单保持为未付款或转入审核。
  • 多付: 记录实际金额,并将超额部分交由审核处理。
  • 逾期付款: 决定是沿用旧报价、要求重新付款,还是退款。
  • 重复付款: 只履约一次,并单独审核额外转账。
  • 代币错误: 不要为不受支持或合约不匹配的代币自动入账。
  • 网络错误: 在实际使用的区块链上核实交易,且绝不要承诺一定能够追回。
  • 来源不明的转账: 没有证据时,不要将其关联到金额最接近的订单。

区块链退款是一笔新的转出交易,并非撤销原收款。发送退款前,应核实原支付和客户、确认获批的资产及金额、验证收款地址、明确由谁承担网络费用、取得内部批准,并单独记录这笔新交易。未经身份验证,绝不要采用意外电子邮件或客户服务消息中提供的新退款地址。

为满足会计和对账需要,应保留:

  • 订单、账单、客户和支付请求的关联信息;
  • 网络、原生资产或代币,以及代币合约;
  • 请求金额和实收金额;
  • 参考货币价值、汇率来源和估值时间戳;
  • 收款地址和交易哈希;
  • 请求、检测、确认和履约时间戳;
  • 企业记录的费用;
  • 状态历史、异常、退款和更正交易。

应按照与业务量和风险相匹配的频率进行对账。把部分付款、重复付款、不受支持的代币、网络错误报告和无法解释的收款放入单独队列,并为其指定负责人和处理状态。加密货币税务、收入确认和估值规则因地区而异,应咨询所在司法辖区的合格专业顾问。

常见问题

如何在 BNB Chain 上接受加密货币支付?

确认登录后的商家设置中实际可用的 BNB Chain 资产,配置由企业控制的结算钱包,然后创建支付链接或集成支付流程。清楚标明网络,进行小额测试,并且只在转账与请求相符且达到所需确认状态后履约。

BNB Smart Chain 主网的链 ID 是多少?

BNB Smart Chain 主网使用链 ID 56。官方钱包配置文档也将 BNB 列为网络符号。可使用链 ID 56 验证配置,同时仍需向客户清楚显示网络名称。

客户在 BNB Chain 上发送 USDT 时需要 BNB 吗?

普通 BEP-20 转账需要。发送方钱包必须持有 BNB Smart Chain 上的 BNB 以支付燃料费。该燃料费余额与商家请求的 USDT 金额彼此独立。

我可以接受任何 BEP-20 代币吗?

不要作此假设。只接受登录后的实际设置中出现,并且您的钱包、定价、确认、会计、客户服务和退款流程都能处理的代币与网络组合。还应通过发行方的第一方来源核实合约。

BNB Chain 与 Ethereum 相同吗?

不同。BNB Smart Chain 与 EVM 兼容,因此地址和工具看起来可能很熟悉,但它是一个独立网络,链 ID 为 56,并使用 BNB 支付燃料费。在 Ethereum 上发送的交易不会成为 BNB Chain 支付。

BNB Chain 支付是即时到账或立即最终确认的吗?

不要这样承诺。交易提交、纳入区块、确认和业务接受是不同状态。应使用支付流程的已确认状态,并采用与订单风险相匹配的规则,而不是保证固定时间或确认次数。

应该使用 BNB 还是稳定币?

BNB 适合已经持有该资产的客户或以 BNB 定价的产品。对于以法定货币定价的产品,受支持的稳定币可能更方便,但客户仍需要 BNB 支付燃料费。应根据实际观察到的需求作出选择,并确认实际设置中的准确支付路径。

应该先使用支付链接还是集成支付流程?

试点、账单或人工交付的服务适合使用支付链接。如果支付确认后必须自动更新订单、账户、额度余额、许可证或访问期限,则应使用集成式支付流程。

BNB Chain 支付可以退款吗?

可以,但需要商家批准并发送一笔新的转出交易。应核实原支付、收款人、退款地址、资产、金额、费用承担方式和审批情况,然后单独记录退款。它并不是对原转账的撤销。

总结

在 BNB Chain 上接受加密货币支付,最安全的方式是把每一种资产和网络组合都作为一种受控支付方式。确认实际可用的选项,使用链 ID 56,通过发行方的第一方来源验证每个 BEP-20 合约,并告知客户 BNB Smart Chain 上的 BNB 用于支付燃料费。

先从客户已经持有的资产开始,然后测试完整流程:报价、跳转钱包、待处理和已确认状态、经过身份验证的 Webhook、幂等履约、异常处理、对账和退款。对许多试点项目而言,支付链接已经足够;当基础支付路径能够可靠运行后,再考虑集成式支付流程和周期性访问服务。只有当真实需求带来的价值超过额外运营负担时,才应增加更多代币。

立即为您的业务开启加密收款 现在

最大化收入,最小化支出。