shabayek/laravel-payment

Laravel 付款方式包

v0.8.0 2022-04-12 23:19 UTC

README

Github Status Styleci Status Packagist version mit Packagist PHP Version Support Packagist Downloads

这是一个用于支付网关集成的 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
    • email
    • 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 许可证 许可。