barstec/laravel-stripe-simple-payment

用于轻松集成Stripe单次付款与Laravel的包。

v1.0.4 2024-02-25 15:23 UTC

This package is auto-updated.

Last update: 2024-09-25 16:29:38 UTC


README

此包旨在实现简单的Stripe付款与Laravel的无缝集成。它仅允许为单个项目进行一次付款。该包包括创建表、使用Stripe API和PHP库生成付款以及付款验证。

支持

如果这个包对您有帮助,您可以通过Ko-fi支持我的工作。

ko-fi

安装

  1. 使用以下命令安装composer包
composer require barstec/laravel-stripe-simple-payment
  1. 将配置文件发布到您的项目
php artisan vendor:publish --provider="Barstec\Stripe\StripeServiceProvider"
  1. 运行迁移
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事件。

作者

Bartłomiej Stec

许可

此包根据MIT许可证分发