gamevault / lunar-pensopay
为 Pensopay 的 Lunar 社区支付驱动程序
dev-main
2023-03-09 09:29 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- lunarphp/lunar: 0.2-rc2
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-webhook-client: ^3.1
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- dev-main
- dev-renovate/pestphp-pest-3.x
- dev-renovate/pestphp-pest-plugin-laravel-3.x
- dev-renovate/lunarphp-lunar-0.x
- dev-renovate/orchestra-testbench-9.x
- dev-renovate/major-illuminate
- dev-renovate/phpunit-phpunit-11.x
- dev-renovate/aglipanci-laravel-pint-action-2.x
- dev-renovate/nunomaduro-collision-8.x
- dev-renovate/actions-checkout-4.x
- dev-renovate/stefanzweifel-git-auto-commit-action-5.x
- dev-renovate/pestphp-pest-plugin-laravel-2.x
- dev-renovate/pestphp-pest-2.x
This package is auto-updated.
Last update: 2024-09-09 11:02:43 UTC
README
通过社区支付驱动程序轻松将 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)。有关更多信息,请参阅 许可文件。