barstec / laravel-stripe-simple-payment
用于轻松集成Stripe单次付款与Laravel的包。
Requires
- illuminate/support: ^10.0
- stripe/stripe-php: ^13.7
README
此包旨在实现简单的Stripe付款与Laravel的无缝集成。它仅允许为单个项目进行一次付款。该包包括创建表、使用Stripe API和PHP库生成付款以及付款验证。
支持
如果这个包对您有帮助,您可以通过Ko-fi支持我的工作。
安装
- 使用以下命令安装composer包
composer require barstec/laravel-stripe-simple-payment
- 将配置文件发布到您的项目
php artisan vendor:publish --provider="Barstec\Stripe\StripeServiceProvider"
- 运行迁移
php artisan migrate
设置
首先,您需要将环境变量从.env.example移动到.env
STRIPE_API_KEY= STRIPE_WEBHOOK_SECRET=
要启用测试模式,只需复制并粘贴上述Stripe测试环境中的值。
在配置文件中,您可以定义返回路由、默认值、数据库表名以及要收集的列。修改列后,重新运行迁移过程。
在Stripe设置中创建与config中notification_route匹配的webhook,并选择事件:checkout.session.expired,checkout.session.completed
用法/示例
要启动交易,在您的控制器中创建一个有效负载对象并分配值。然后创建一个付款对象,传入有效负载并调用redirect()。此操作将启动交易并将用户重定向到Stripe付款页面。默认情况下,有效负载对象配置为处理单次物品付款,不包含配送或额外费用。您可以使用预定义的方法进行修改。如果您想要添加在有效负载类中不可用的值,可以使用addAdditionalParam方法手动传递。
<?php namespace App\Http\Controllers; use Barstec\Stripe\Payload; use Barstec\Stripe\Payment; class StripeTestController extends Controller { public function test() { $payload = new Payload(); $payload->setAmount(1.29); $payload->setName("test"); $payload->setCustomerEmail("email@example.com"); $payload->setReturnUrl('http://127.0.0.1:8000'); $payload->addAdditionalParam('phone_number_collection.enabled', true); $payment = new Payment($payload); return $payment->redirect(); } }
交易创建后,将触发StripeTransactionCreated事件。您可以使用它来检索有效负载、交易ID和会话,将交易与特定用户关联。为此,创建一个监听器并将其注册到您的EventServiceProvider。
protected $listen = [ StripeTransactionCreated::class => [ ExampleListener::class ] ];
默认情况下,所有交易状态变化都由包处理。在收到来自Stripe的completed信号后,将触发StripePaymentCompleted事件。对于会话过期信号,将触发StripeSessionExpired事件。
作者
许可
此包根据MIT许可证分发