mscode-pl / laravel-cashbill
用于轻松将cashbill支付集成到Laravel的包。
Requires
- illuminate/support: ^10.0
README
用于轻松将Cashbill支付集成到Laravel的包。
安装
- 使用命令安装composer包
composer require mscode-pl/laravel-cashbill
- 发布配置文件到你的项目
php artisan vendor:publish --provider="MsCode\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 MsCode\Cashbill\Payload; use MsCode\Cashbill\Payment; use MsCode\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 事件。你可以使用它来检索有效载荷和订单ID,将交易与特定用户关联。为此,创建一个监听器并在你的 EventServiceProvider 中注册它。
protected $listen = [ TransactionCreated::class => [ ExampleListener::class ] ];
默认情况下,所有交易状态更改都由该包处理。接收到Cashbill的 PositiveFinish 信号后,将触发 TransactionSuccessfullyCompleted 事件。否则,对于状态更改,将触发 TransactionStatusChanged 事件。
如果你喜欢手动更新订单数据,可以通过将特定订单ID传递给构造函数来创建一个 Order 对象,然后调用 update() 方法,该方法返回一个 PaymentDetails 对象。
$order = new Order($orderId); $paymentDetails = $order->update();
许可证
此包根据 MIT 许可证分发