barstec / laravel-cashbill
Laravel 集成 cashbill 付款的包。
Requires
- illuminate/support: ^10.0
README
用于轻松集成 Laravel 的 Cashbill 付款的包。
支持
如果这个包对您有帮助,您可以通过 Ko-fi 支持我的工作。
安装
- 使用命令安装 composer 包
composer require barstec/laravel-cashbill
- 将配置文件发布到您的项目
php artisan vendor:publish --provider="Barstec\Cashbill\CashbillServiceProvider"
- 运行迁移
php artisan migrate
设置
首先,您需要将环境变量从 .env.example 移动到 .env
CASHBILL_MODE=dev CASHBILL_SHOP_ID= CASHBILL_SECRET_KEY=
如果您处于测试模式,将 CASHBILL_MODE 设置为 dev。在生产中,将其切换到 prod。从 CashBill 商店设置中检索剩余的变量。
在配置文件中,您可以定义返回路由、默认值、数据库表名以及收集个人数据的列。修改列后,重新运行迁移过程。
请确保您指定的通知路由与 CashBill 商店设置中的路由相同。此 URL 用于验证交易,默认设置为 /api/cashbill/notification
使用/示例
要启动交易,在您的控制器中创建一个 Payload 对象并分配值。然后,创建一个 Payment 对象,传递 Payload 并调用 redirect()。此操作将启动交易并将用户重定向到 Cashbill 付款页面。您还可以创建一个 PersonalData 对象。在 Cashbill 页面上,名、姓和电子邮件地址将自动填写。
<?php namespace App\Http\Controllers; use Barstec\Cashbill\Payload; use Barstec\Cashbill\Payment; use Barstec\Cashbill\PersonalData; class CashbillExample extends Controller { public function handle() { $payload = new Payload(); $payload->setTitle("Example title"); $payload->setAmount(9.5); $personalData = new PersonalData(); $personalData->setEmail("email@example.com"); $personalData->setFirstName("Name"); $personalData->setSurname("Surname"); $payload->setPersonalData($personalData); $payment = new Payment($payload); return $payment->redirect(); } }
交易创建后,将触发 TransactionCreated 事件。您可以使用它来检索 payload 和订单 ID,以将交易与特定用户关联。为此,创建一个监听器并将其注册到您的 EventServiceProvider。
protected $listen = [ TransactionCreated::class => [ ExampleListener::class ] ];
默认情况下,所有交易状态更改都由包处理。在收到 Cashbill 的 PositiveFinish 信号后,触发 TransactionSuccessfullyCompleted 事件。否则,对于状态更改,触发 TransactionStatusChanged 事件。
如果您希望手动更新订单数据,可以通过将特定订单 ID 传递给构造函数来创建一个 Order 对象,然后调用 update() 方法,该方法返回一个 PaymentDetails 对象。
$order = new Order($orderId); $paymentDetails = $order->update();
作者
许可证
此包根据 MIT 许可证分发