eleven59/backpack-shop-mollie

为我的 BackpackShop 包提供的便捷 Mollie 支付特性

0.1.3 2023-11-30 09:42 UTC

This package is auto-updated.

Last update: 2024-09-30 02:10:49 UTC


README

Latest Version on Packagist Total Downloads

此包为 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 而不是使用问题跟踪器。

鸣谢

许可

本项目根据 MIT 许可发布,因此您可以在任何 Backpack & Laravel 项目上安装它。有关更多信息,请参阅 许可文件

但是,请注意,您需要安装 Backpack,因此您还需要遵守其 YUMMY 许可。这意味着在生产中,您需要 Backpack 许可证代码。您可以在 backpackforlaravel.com 上免费(或付费)获得一个用于非商业用途(或用于商业用途)。