sander-van-hooft / laravel-payable-redirect-mollie
将 Mollie 付款与 Laravel Eloquent 模型关联
Requires
- php: ~5.6|~7.0
- guzzlehttp/guzzle: ^6.2
- illuminate/database: ^5.4
- illuminate/support: ^5.4
- mollie/mollie-api-php: 1.9.*
Requires (Dev)
- graham-campbell/testbench: ^3.3
- mockery/mockery: ^0.9.9
- orchestra/database: ^3.4
- phpunit/phpunit: ~4.0||~5.0||~6.0
- squizlabs/php_codesniffer: ^2.3
README
在您的 Laravel 5.4 应用程序中实现 Mollie 付款不必困难。此包通过创建付款记录并与 Mollie 同步状态来帮助您。它建立在非常可靠的官方 Mollie PHP 客户端 之上。它只支持一次性付款;暂不支持定期付款。
结构
config/
database/
docs/
routes/
src/
tests/
安装
通过 Composer
$ composer require sander-van-hooft/laravel-payable-redirect-mollie
接下来,您必须安装服务提供者
// config/app.php 'providers' => [ ... SanderVanHooft\PayableRedirect\PayableRedirectServiceProvider::class, ];
并将 Mollie API 密钥添加到项目根目录下的 .env
文件中。这也是您可以覆盖 Mollie 在付款状态更新时调用的 webhook 路由的地方
# /.env: ... MOLLIE_KEY=YOUR_MOLLIE_API_KEY_HERE # MOLLIE_WEBHOOK_URL=your_url_relative/to_your_app_url
您可以使用以下命令发布迁移
$ php artisan vendor:publish --provider="SanderVanHooft\PayableRedirect\PayableRedirectServiceProvider" --tag="migrations"
迁移发布后,您可以通过运行迁移来创建 payments-table
$ php artisan migrate
Laravel 会自动加载此包中的路由。
如果您更喜欢使用配置文件而不是配置 .env
文件(不是必需的!)来配置,您还可以使用以下命令发布 payable.php
配置文件
$ php artisan vendor:publish --provider="SanderVanHooft\PayableRedirect\PayableRedirectServiceProvider" --tag="config"
在配置文件中,您可以设置 MOLLIE API 密钥并覆盖默认的 mollie 付款 webhook 路由。这是默认配置文件的外观
return [ 'mollie' => [ 'key' => env('MOLLIE_KEY', 'test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'), 'webhook_url' => env('MOLLIE_WEBHOOK_URL', '/webhooks/payments/mollie'), ], ];
使用方法
基本用法
在您的代码中,使用 MolliePaymentGateway 创建一个付款记录
// Using some App\Order model (provided by you) $order = new App\Order(['amount' => 12345]); $order->save(); $paymentGateway = new SanderVanHooft\PayableRedirect\MolliePaymentGateway; $payment = $paymentGateway->chargeAmountForPayable( $order->amount, // AMOUNT IN CENTS!! $order, 'Some description', [ 'return_url' => 'http://some-return-url.com' ] );
付款金额以欧元分表示!
付款状态将与 Mollie 同步:每当付款状态发生变化时,Mollie 都会调用 webhook。这将触发您的应用程序从 Mollie 获取最新的付款状态。出于安全原因,Mollie 设计了这样的流程。
IsPayableTrait
为了方便,您可以在您的付款 Eloquent 模型(如上面的示例中的 App\Order
模型)上使用 isPayableTrait
。这使您能够调用 $order->payments
。
use Illuminate\Database\Eloquent\Model; use SanderVanHooft\PayableRedirect\Payment; use SanderVanHooft\PayableRedirect\IsPayable\IsPayableTrait; class Order extends Model { use IsPayableTrait; }
事件
为方便集成自己的自定义监听器,PaymentEvents 被分发(请参阅 Laravel 事件和监听器)。以下事件可用
- PaymentUpdated:当 Mollie 调用 webhook 时会分发此事件。它检查付款状态是否真的已更改。根据新的状态,它会分发以下基于 Mollie 的以下事件之一。
- PaymentCancelled
- PaymentChargedBack
- PaymentExpired
- PaymentFailed
- PaymentOpened
- PaymentPaid
- PaymentPaidOut
- PaymentPending
- PaymentRefunded
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
测试
请注意,为了测试付款状态同步,您的应用程序需要可以通过 Mollie 的公开 URL 访达。因此,在正常情况下,您无法在本地 Laravel 安装上完全测试此功能。
确保将 Mollie API 密钥(MOLLIE_KEY
)配置为环境变量。例如,可以在 phpunit.xml
文件中完成此操作。
$ composer test
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件info@sandervanhooft.nl联系,而不是使用问题跟踪器。
致谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅许可文件。