gamevault / lunar-pensopay

为 Pensopay 的 Lunar 社区支付驱动程序


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

通过社区支付驱动程序轻松将 Pensopay 集成到 Lunar。此集成基于 PensoPay API 文档

待办事项

还有一些细节需要考虑。

  • 在 urls 中定义 success_url、cancel_url 和 callback_url 的 id 参数。
  • 动态选择支付方式(支付类型:信用卡、Viabill、Expressbank、PayPal 和 Anyday)。
  • 测试

安装

您可以通过 composer 安装此包

composer require gamevault/lunar-pensopay

此包使用 spatie laravel-webhook-client 包来处理来自 Pensopay 的回调。

您可以使用以下命令发布配置和运行迁移

php artisan vendor:publish --tag="lunar-pensopay-config"
php artisan vendor:publish --provider="Spatie\WebhookClient\WebhookClientServiceProvider" --tag="webhook-client-config"
php artisan migrate

这是已发布 pensopay 配置文件的内容

return [
    'policy' => env('AUTO_CAPTURE', false),
    'url' => env('PENSOPAY_URL', 'https://api.pensopay.com/v1'),
    'token' => env('PENSOPAY_TOKEN'),
    'testmode' => env('PENSOPAY_TESTMODE', false),
];

webhook-client.php 应该如下所示

<?php

return [
    'configs' => [
        [
            'name' => 'pensopay-webhook',
            'signing_secret' => config('PENSOPAY_SIGNING_SECRET'),
            'signature_header_name' => 'pensopay-signature',
            'signature_validator' => \Spatie\WebhookClient\SignatureValidator\DefaultSignatureValidator::class,
            'webhook_profile' => \Spatie\WebhookClient\WebhookProfile\ProcessEverythingWebhookProfile::class,
            'webhook_response' => \Spatie\WebhookClient\WebhookResponse\DefaultRespondsTo::class,
            'webhook_model' => \Spatie\WebhookClient\Models\WebhookCall::class,
            'process_webhook_job' => \Gamevault\Pensopay\Jobs\ProcessPensopayCallbackJob::class,
        ],
    ],

    /*
     * The integer amount of days after which models should be deleted.
     *
     * 7 deletes all records after 1 week. Set to null if no models should be deleted.
     */
    'delete_after_days' => 30,
];

您可以在路由文件中的任何位置定义 webhook 终端,如下所示

Route::webhooks('pensopay-webhook', 'pensopay-webhook');

用法

要开始,必须在 AppServiceProvider 中注册支付驱动程序

public function register()
{
    Payments::extend('pensopay', function ($app) {
       return $app->make(\Gamevault\Pensopay\PensopayPaymentType::class);
    });
}

支付方法可以像以下那样调用

/** @var Pensopay $paymentDriver */
$paymentDriver = Payments::driver('pensopay');
$paymentDriver->cart($cart);
$paymentAuthorize = $paymentDriver->authorize();

测试

composer test

更新日志

请参阅 更新日志 了解最近的变化。

贡献

请参阅 贡献指南 了解详细信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件