要在 OpenCart 上接受加密支付,您需要三样东西:商店中的支付扩展、来自网关的 API 密钥,以及一个 webhook,告诉 OpenCart 钱款确实已到账。使用 Payora,这相当于为 OpenCart 2 和 OpenCart 3 提供一个免费的即插即用模块,该模块为订单总额创建发票,将买家发送到一个托管结账页面,在那里他们可以选择比特币、USDT、TON 或其他币种,并仅在签名回调确认链上支付后将订单状态更改为已支付。这些币直接结算到您控制的钱包中,因为 Payora 只持有您的公钥材料。
为什么 OpenCart 商店选择加密
OpenCart 通常由拥有自己技术栈的人运营:自己的托管、自己的数据库、自己的结账。加密货币适合这群人有三个相当不浪漫的原因。
- 无法以其他方式支付的国际买家。在一个国家发行的卡和在另一个国家注册的商店是一个硬币翻转。USDT 在 Tron 上不关心你们中的任何一个人住在哪里。
- 没有退款。链上支付确认后就完成了。没有人会在 90 天后因“未收到货物”的索赔而撤销,这也是数字商品卖家考虑这一点的最大原因。我们在没有商户账户的情况下接受支付中更深入地讨论了这一动态。.
- 没有商户账户。没有承保电话,没有滚动储备,没有最低月费,没有“您的类别是高风险”的邮件,六周后。
这些都不能使加密货币替代卡片。它使其成为第二条通道:保持您现有的方法不变,让加密货币捕捉您之前失去的订单。
如何在 OpenCart 上使用 Payora 模块接受加密货币支付
该模块是一个普通的 OpenCart 支付扩展。它是免费的,我们自己发布它,与我们其他的 即插即用 CMS 模块,设置它只需四个步骤:
- 安装扩展到您的 OpenCart 2 或 OpenCart 3 商店,并将其启用为支付方式。
- 粘贴您的 API 密钥。在 Payora 创建一个免费账户,生成一个密钥,将其放入模块设置中。
- 设置 webhook URL。该模块在您自己的域上公开一个回调端点。将您的 Payora 项目指向它,以便确认的发票回调到您的商店。
- 选择您的币种。仅启用您实际想要接收的资产:BTC、Tron上的USDT、TON,或任何适合您的买家的资产。您不必启用所有20种以上的资产。
底层没有任何奇特的东西。该模块使用与 单文件 PHP SDK 自定义集成将使用的相同的普通 JSON REST API;它只是将其连接到 OpenCart 的支付接口,这样您就不必这样做。如果您还运行一个 WordPress 商店,WooCommerce 模块 的工作原理完全相同。
在安装之前值得理解的一件事是:您的接收地址源自一个 xPub,一个主 公钥。私钥从不接触服务器,支付在离线状态下签名。如果明天有人拥有您的 OpenCart 主机,他们可以破坏您的目录,但他们无法移动您所获得的任何一个聪。
买家实际看到的内容
从购物者的角度来看,它简短而无聊,这正是目标。
- 他们选择 用加密货币支付在结账时确认订单。OpenCart 创建一个待处理状态的订单。
- 他们进入了 托管结账,显示法定货币总额,比如 120 欧元,以及一系列币种。
- 他们选择了一种。例如 TON。页面显示确切的 TON 数量、一个地址、一个二维码和一个倒计时。
- 他们从钱包中支付。页面跟踪交易并等待该币种的最终确认。
- Payora 向您的商店发送签名的 webhook,模块将订单标记为已支付,买家被重定向回您的成功页面。
如果您想在安装任何东西之前查看结账,实时演示是真实的。
订单状态问题
当您在 OpenCart 上接受加密货币支付时,这里集成的地方会变得混乱,因此它值得拥有自己的部分。OpenCart 有一个可配置的订单状态列表,您必须决定哪个状态意味着“钱已经到位”。
在实践中有效的映射:
| 发生了什么 | 订单应该是什么 |
|---|---|
| 买家已发送到结账,尚未付款 | 待处理/等待付款状态 |
| 链上看到付款,尚未最终确认 | 仍在待处理,不要履行 |
| 签名的 webhook 表示已付款 | 您的处理/支付状态。这是触发器 |
| 发票窗口已过期,未收到任何信息 | 已过期或失败,或者保持待处理状态并手动取消 |
故意选择已支付状态。如果这是一个释放可下载产品或触发自动电子邮件的状态,它必须是只有 webhook 可以设置的状态。不要重用您的员工也手动设置的银行转账状态,否则您在审计时将无法区分这两者。
绝不要在浏览器重定向上标记订单为已支付
当买家返回到您的成功页面时,该重定向是来自浏览器的请求。浏览器会关闭。连接在火车上会中断。成功的 URL 可能会被从未支付过一分钱的人手动输入。如果您的商店在返回 URL 上标记订单为已支付,您就建立了一个免费商品按钮。
签名的 webhook 是事实的来源。它是一个服务器到服务器的 POST,携带对有效负载的 HMAC-SHA256 签名,一个时间戳,以便旧的捕获无法重放,以及一个幂等性密钥,以便重试交付不会两次完成订单。验证签名,检查时间戳窗口,基于幂等性密钥去重,然后再更改状态。重定向的存在是为了向买家展示一个友好的页面,仅此而已。如果购物者在支付的那一刻关闭标签页,webhook 仍然会到达,订单仍然会完成。
价格变动时的定价
您不以比特币定价您的目录。您保持OpenCart的现状,120欧元仍然是120欧元,发票以法定货币创建。在结账时,Payora将转换为买家选择的币种,并在发票窗口锁定该金额。如果在他们从口袋里拿出手机的过程中,比特币波动了3%,报价金额仍然是该金额。
不足支付和过度支付是根据锁定的数字来判断的,而不是实时行情,这使得支付决策不模糊。Payora不做的事情,以及没有诚实的网关会做的事情,是保护您免受明天币值波动的影响。如果您想要法定货币的确定性,请选择稳定币。USDT和USDC在每个承载它们的网络上都可用,对于大多数OpenCart商店来说,Tron上的USDT是务实的默认选择。
诚实的权衡
有三个,您应该在生产中接受OpenCart的加密支付之前了解这三个。
- 无退款的政策是双向的。没有人可以从您那里追回付款,您也无法追回付款。退款是向客户地址的手动外部支付:您签署的真实交易,而不是撤销历史的按钮。在您第一次订单之前决定退款政策,而不是在第一次争议期间。
- 网络费用差异很大。发件人支付费用,但他们仍然影响行为。15美元订单上的2美元比特币费用是买家放弃的结账。启用一个便宜的网络是解决方案;与物理规律争论没有意义。
- 慢链意味着支付状态更慢。比特币的最终确认时间是分钟,而不是毫秒。如果您销售买家期望立即获得的数字商品,请优先考虑快速网络,让BTC成为想要它的人的选择。
关于费用:接受是0%。只有在您转移资金时才会产生费用——在免费计划中,支付、转账和提款的费用为1.5%(专业版为0.75%,商业版为0.5%),加上币的网络费用(最低提款50美元)——再加上链上网络费用,发件人始终支付。完整的费用明细在定价.
如果您经营一个OpenCart商店,并且一直在默默拒绝那些无法使用您商店的卡的买家,这只需要一个下午的工作。创建一个免费账户,安装模块,将Webhook指向您的商店,并启用一种币以开始。
Comments