eleven59 / backpack-shop-mollie
为我的 BackpackShop 包提供的便捷 Mollie 支付特性
Requires
- backpack/crud: ^5.0.0
- backpack/pro: ^1.0.0
- eleven59/backpack-shop: *
- illuminate/support: ~8|~9
- mollie/laravel-mollie: ^2.0
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
README
此包为 eleven59/backpack-shop 包 提供Mollie支付集成。
安装
通过 Composer
composer require eleven59/backpack-shop-mollie
用法
要使用支付提供者,请更新 config/backpack-shop.php,使用以下内容:
'payment_provider' => \Eleven59\BackpackShopMollie\Models\PaymentProvider::class,
并确保将以下内容添加到您的 .env 文件中
MOLLIE_KEY="your-mollie-key"
其余内容应该可以自动运行。但是,您可以选择发布配置文件并编辑默认货币、区域设置和 webhook URL
php artisan vendor:publish --provider="Eleven59\BackpackShop\AddonServiceProvider" --tag="config"
显示支付方式
这很简单。eleven59/backpack-shop 已经提供了全局购物车()助手,该助手与该支付方式配合使用,无需任何配置。
<select name="payment_method">
@foreach(shoppingcart()->getPaymentMethods() as $method)
<option value="{{ $method['id'] }}" {{ old('payment_method', 'ideal') === $method['id'] ? 'selected' : '' }}>{{ $method['description'] }}</option>
@endforeach
</select>
此包自动从 Mollie 获取启用和活动的方法,因此您的 Mollie 仪表板中启用的任何方法都应自动显示在此处并完美运行。
显示发行商和其他依赖项
这完全可选,因为 Mollie 允许您只指定支付方式,当在此处未指定时,您将在他们端选择发行商。但是,eleven59/backpack-shop 允许您在您的网站上让客户选择发行商。这也跳过了可能会打断客户体验的 Mollie 品牌屏幕。
以下是操作步骤:
步骤 1. 将类添加到支付方法选择器中以指示它具有依赖项
<select name="payment_method" class="has-dependencies">
@foreach(shoppingcart()->getPaymentMethods() as $method)
<option value="{{ $method['id'] }}" {{ old('payment_method', 'ideal') === $method['id'] ? 'selected' : '' }}>{{ $method['description'] }}</option>
@endforeach
</select>
步骤 2. 添加依赖项字段
该字段最初是隐藏的 - 我们将确保它在下面显示
@foreach(shoppingcart()->getPaymentMethods() as $method)
@if(!empty($method['dependencies']))
@foreach($method['dependencies'] as $dependency)
<select class="select2 payment-method-dependent payment-method-{{ $method['id'] }}-dependent" style="display: none;" name="{{ $dependency['name'] }}" id="{{ $dependency['id'] }}" data-minimum-results-for-search="-1">
@foreach($dependency['values'] as $values)
<option value="{{ $values['id'] }}" {{ old($dependency['name'], 'ideal_ABNANL2A') === $values['id'] ? 'selected' : '' }}>{{ $values['description'] }}</option>
@endforeach
</select>
@endforeach
@endif
@endforeach
此代码将自动显示发行商,并在提交请求时使用正确的字段名处理它们。
步骤 3. 添加 JS 以动态显示/隐藏依赖字段
我这里使用 jQuery,因为我懒惰。
// Define onChange function $(document).on('change', '.has-dependencies', function() { let parent = $(this).attr('id'), val = $(this).val(); // First, hide all dependent fields $(`.${parent}-dependent`).css('display', 'none'); // Then, show only those that match the current selection $(`.${parent}-${val}-dependent`).css('display', ''); }); // Trigger for initial selection $('.has-dependencies').trigger('change');
更改日志
更改在此处的 Github 上记录。请浏览提交历史记录。
重大更改将在此列出。目前没有。
测试
此包不提供测试。
贡献
有关待办事项列表和如何操作,请参阅 contributing.md。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件 info@eleven59.nl 而不是使用问题跟踪器。
鸣谢
- 作者:eleven59.nl
- 基于 eleven59/backpack-shop 包 构建。有关更多信息,请参阅那里的致谢。
许可
本项目根据 MIT 许可发布,因此您可以在任何 Backpack & Laravel 项目上安装它。有关更多信息,请参阅 许可文件。
但是,请注意,您需要安装 Backpack,因此您还需要遵守其 YUMMY 许可。这意味着在生产中,您需要 Backpack 许可证代码。您可以在 backpackforlaravel.com 上免费(或付费)获得一个用于非商业用途(或用于商业用途)。