shabayek / laravel-payment
Laravel 付款方式包
v0.8.0
2022-04-12 23:19 UTC
Requires
- php: ^7.3|^7.4|^8.0
- guzzlehttp/guzzle: ^7.4
- illuminate/contracts: ^8.0
Requires (Dev)
- mockery/mockery: dev-master
- nunomaduro/collision: ^5.10
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-13 22:13:46 UTC
README
这是一个用于支付网关集成的 Laravel 包。它拥有清晰且一致的 API,经过全面单元测试,并提供示例应用程序以帮助您开始。
注意:此包处于开发阶段,请勿在生产环境中使用。
用法
- 使用 composer 安装 laravel payment 包
composer require shabayek/laravel-payment
- 使用以下命令发布配置文件
php artisan vendor:publish --provider="Shabayek\Payment\PaymentServiceProvider" --tag=config
- 使用以下代码启动付款
$method_id = 1; // payment method id from the config file $payment = Payment::via($method_id);
- 通过在用户模型上添加 Billable 特性来实现客户详情契约
use Shabayek\Payment\Concerns\Billable; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Billable, Notifiable; }
- 以下列是 billable 用户的默认列
- first_name
- last_name
- phone
如果您想更改列名,可以在您的模型中添加公共方法,按照 CamelCase 规范命名,如 firstName + Column + FirstNameColumn
/** * Get the first name. * * @return string|null */ public function firstNameColumn() { return $this->name; // OR $this->first_name; }
- 通过关联地址模型实现地址详情
默认关系为 address,如果您想更改关系名,可以在您的用户模型中添加公共方法
/** * Get the billable billing relations. * * @return Model */ public function billingRelation() { return $this->address_relation; // OR $this->address; }
- 将用户模型传递给支付网关
$payment->customer($user);
- 通过循环数组中的数据项添加项目
$items = [ [ "name" => "item1", "price" => 100, "quantity" => 2, "description" => "item1 description", ], [ "name" => "item2", "price" => 200, "quantity" => 1, "description" => "item2 description", ], ]; $payment->items($items); // OR By One $name = "item1"; $price = 100; $quantity = 2; // Default 1 $description = "item1 description"; // Default null $payment->addItem($name, $price, $quantity, $description);
- 设置要发送到网关的事务 ID
$payment->transaction($transaction_id);
- 检查付款是否在线以获取支付 URL
if ($payment->isOnline()) { $url = $payment->purchase(); }
- MasterCard 方法为获取结账表单提供了新的方式
传递事务模型将更新 successIndicator 并返回包含结账表单的视图
$payment->checkoutForm(Transaction $transaction);
- 打印错误信息
$payment->getErrors(); $payment->isSuccess();
- 当从支付网关回调时,您可以使用以下代码来验证付款
$payment = $payment->pay($request); // function array with payment status and message // return [ // 'success' => $isSuccess, // 'message' => $message, // 'data' => [] // ];
- 检查付款状态
$method_id = 1; // payment method id from the config file $payment_order_id = 111; // payment order id $payment_status = Payment::via($method_id)->verify($payment_order_id);
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
安全漏洞
如果您发现有关安全的错误,请通过电子邮件发送至 esmail.shabayek@gmail.com,而不是使用问题跟踪器。
许可证
Laravel payment methods 包是开源软件,根据 MIT 许可证 许可。