btcpayserver / magento2-btcpay-module
Requires
- php: >=7.3
- btcpayserver/btcpayserver-greenfield-php: ^2.2
README
要求
- 安装 Magento 2.4.2 或更高版本(已在社区版 2.4.2 上进行测试)
- 虽然 Magento < 2.4 也应该可以工作,但未进行测试。
- PHP 7.2 或更高版本。已使用 PHP 7.4 进行测试。
- 您的 BTCPay Server 必须配置 HTTPS 或 HTTP 并使用 TOR 来提高安全性。
- 您需要在 BTCPay Server 中为您的用户获取一个 API 密钥(自模块 v2.0 以来新增)
- 不支持单店模式。
功能
- 允许您在 Magento 2 商店使用 BTCPay Server 进行支付
- Magento 通过 webhooks 接收发票更新并更新订单状态
- 支持 Magento 中的自定义订单状态
- 在 Magento 管理员中查看在 Magento 中创建的 BTCPay Server 发票
- 作为安全网,Magento 还会轮询发票更新,以防实时更新未达到 Magento
- 多站和多店兼容
- 通过使用 Greenfield API 授权 URL 创建 API 密钥非常简单
目标
此模块的目标是在 Magento 2 中允许比特币支付,而不需要任何其他第三方软件。此模块还旨在具有鲁棒性、低维护性,并作为未来定制的坚实基础,以满足您的业务需求。
如何安装
安装过程与您使用 composer 安装的任何其他 Magento 2 模块一样。以下是一些典型步骤
- 通过运行 composer 添加
Storefront_BTCPay
模块
composer require btcpayserver/magento2-btcpay-module
- 启用新模块
php bin/magento module:enable Storefront_BTCPay
- 运行新模块的安装脚本
php bin/magento setup:upgrade
如何配置
安装后,在“商店 > 配置 > 销售 > 支付方式”中会可见一个新的支付方式。在那里配置字段。
您需要输入您的 BTCPay Server API 密钥。
它是如何工作的?
- 当在 Magento 中下单并选择 BTCPay Server 作为支付方式时,客户将被重定向到您的 BTCPay Server 上的支付页面。
- 客户可以在那里支付,或者他可以取消订单。
- 当他取消时,未支付的订单将被取消,释放预定的库存,并将客户送回购物车页面。此模块将恢复购物车的商品内容,因此客户无需从头开始。
- 当客户支付时,BTCPay Server 将通知付款并将更改的发票状态通知 Magento。
- BTCPay Server 将支付状态更改推送到 Magento,但 Magento 也可以自行轮询发票更改。我们将其构建为安全网,以防 BTCPay Server 无法连接到 Magento(例如,在开发期间,在防火墙后面)。
- 来自 BTCPay Server 到 Magento 的发票更新是瞬时的。
- Magento 每 5 分钟轮询一次 BTCPay Server 以获取更新。
订单状态流程是什么样的?
支持哪些支付方式?
这取决于您的 BTCPay Server 配置。您在 BTCPay Server 上激活的所有支付方式都将对客户可用。
不支持什么?
- 只能为 BTCPay Server 配置一个域名,因此您不能有多个 BTCPay Server。一个用于整个 Magento 安装。
- 无法从 Magento 内部处理退款(将在未来实现)
- 未付款、付款过多或付款费用过低的订单将被标记为“支付审核”,以便进行手动检查。
模块v2有哪些新功能?
此模块v2现在使用BTCPay Server的新Greenfield API,不再依赖于旧的BitPay PHP API。通过这次切换,我们为未来的改进打开了大门。对于您作为店主来说,这意味着您需要在Magento中配置一个API密钥(在BTCPay Server中创建它,然后在Magento配置中输入它)。原始的配对过程已被删除。
谁创建了此模块?
此模块是由Storefront创建的,Storefront是一家来自比利时的小型Magento集成商,拥有超过12年的Magento经验。访问我们的网站了解更多信息:https://www.storefront.be。
此模块不包含任何广告,是100%开源且免费使用的。
您为什么创建此模块?
- 现有的模块代码质量很差,不符合Magento 2的最佳实践。
- 支持度低(与BTCPay Server结合使用)
- 由于之前的模块基本上是为BitPay设计的,因此设置起来很复杂。
- 我们现在有一个专门针对BTCPay的模块,因此BTCPay Server和此模块都可以自由创新,无需考虑BitPay兼容性。
- 更高的代码质量意味着更少的维护和更容易与未来的Magento版本兼容。
如果我的BTCPay Server或Magento一段时间内离线,发票更新可能没有同步,我该怎么办?
Magento每5分钟轮询BTCPay Server以更新非完成发票,因此您基本上不需要做任何事情。这由cronjob处理。如果您不想等待5分钟或想了解正在发生的事情,我们已准备了一个控制台命令来手动运行发票同步。
bin/magento btcpay:invoice:update
我可以通过命令行进行配对吗?
配对是以前将此模块链接到您的BTCPay Server的方式,现在不再需要。只需在“商店”>“配置”>“销售”>“支付方式”中输入您的API密钥即可。
未来的路线图是什么?
- 在Magento内处理退款
- 支持配置多个BTCPay Server,这样您可以为不同的网站/商店使用单独的安装(优先级低)。
- 实际上不需要其他任何东西,因为这个模块以稳健和可靠的方式完成了它需要做的事情。
如果我需要帮助怎么办?
就像任何其他开源软件一样,您可以从社区获得帮助,或者只需在此处的GitHub上打开一个问题。
您可以在BTCPay Server Mattermost的#development频道联系Wouter Samaey,或者如果您更喜欢专业的付费支持,您可以联系Storefront,邮箱为:info@storefront.be。
如果此模块支持您的业务,请考虑获取付费支持,并向BTCPay Server的开发捐赠,网址为:https://btcpayserver.org/#makeADonation。