barstec/laravel-paypal-payment-ipn

一个通过HTML按钮轻松集成paypal支付的Laravel和IPN验证的包。

v1.0.0 2023-12-25 11:51 UTC

This package is auto-updated.

Last update: 2024-09-25 13:29:59 UTC


README

此包通过“立即付款”按钮和IPN验证,在Laravel中实现PayPal支付的无缝集成。它专门为没有PayPal商业账户的卖家设计,无需访问实时API版本。

支持

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

ko-fi

安装

  1. 使用命令安装composer包
composer require barstec/laravel-paypal-payment-ipn
  1. 发布配置文件到您的项目
php artisan vendor:publish --provider="Barstec\Paypal\PaypalServiceProvider"
  1. 运行迁移
php artisan migrate 

设置

首先,您需要将环境变量从.env.example移动到.env

PAYPAL_MODE=dev
PAYPAL_EMAIL=

如果您处于测试模式,请设置PAYPAL_MODE为dev。在生产中,将其切换到prod

PAYPAL_EMAIL是接收付款的PayPal账户的电子邮件地址。

在配置文件中,您可以定义返回路由、默认值、数据库表名和要收集的列。修改列后,重新运行迁移过程。

请确保您指定与PayPal IPN设置中相同的通知路由。此URL用于验证交易,默认设置为/api/paypal/notification。

重要!您应将PayPal IPN设置设置为使用UTF-8编码。否则,无法保证某些字符能够正确识别。您可以在此处设置它。

用法/示例

要启动交易,在控制器中创建一个有效载荷对象并分配值。然后创建一个支付对象,传入有效载荷并调用redirect()。此操作将启动交易并将用户重定向到PayPal付款页面。默认情况下,有效载荷对象配置为处理单件付款,无需交付或额外费用。您可以使用预定义的方法或通过使用setParams添加任何您想要的字段。

<?php

namespace App\Http\Controllers;

use Barstec\Paypal\Payload;
use Barstec\Paypal\Payment;

class PaypalController extends Controller
{
    public function paypalTest(){
        $payload = new Payload();
        $payload->setBusinessEmail("youremail@example.com");
        $payload->setItemName("Testowe");
        $payload->setAmount(1);
        $payment = new Payment($payload);
        return $payment->redirect();
    }
}

交易创建后,将触发PaypalTransactionCreated事件。您可以使用它来检索有效载荷和交易ID,将交易与特定用户关联。为此,创建一个监听器并将其注册在EventServiceProvider中。

protected $listen = [
    PaypalTransactionCreated::class => [
        ExampleListener::class
    ]
];

默认情况下,所有交易状态更改都由该包处理。在收到Paypal的Completed信号后,将触发PaypalPaymentCompleted事件。否则,对于状态更改,将触发PaypalPaymentStatusChanged事件。

作者

Bartłomiej Stec

许可证

此包根据MIT许可证分发