barstec / laravel-paypal-payment-ipn
一个通过HTML按钮轻松集成paypal支付的Laravel和IPN验证的包。
Requires
- illuminate/support: ^10.0
README
此包通过“立即付款”按钮和IPN验证,在Laravel中实现PayPal支付的无缝集成。它专门为没有PayPal商业账户的卖家设计,无需访问实时API版本。
支持
如果此包对您有帮助,您可以通过Ko-fi支持我的工作。
安装
- 使用命令安装composer包
composer require barstec/laravel-paypal-payment-ipn
- 发布配置文件到您的项目
php artisan vendor:publish --provider="Barstec\Paypal\PaypalServiceProvider"
- 运行迁移
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事件。
作者
许可证
此包根据MIT许可证分发