mu-hasan/laravel-winpay

此包最新版本(0.0.2)没有提供许可证信息。

一个集成了WinPay支付网关的Laravel框架的包

0.0.2 2022-03-01 05:43 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:04 UTC


README

一个非官方包,帮助您将WinPay支付网关(winpay.id)集成到您的Laravel应用程序中

安装

通过composer安装此包

$ composer require mu-hasan/laravel-winpay "^0.0.1"

将这些行添加到您的.env文件中,并用您的WinPay凭证填充

# ...
WINPAY_HOST=putWinpayHostHere
WINPAY_PK1=putWinpayPrivateKey1Here
WINPAY_PK2=putWinpayPrivateKey2Here
WINPAY_MK=putWinpayMerchantKeyHere
WINPAY_LISTENER=putWinpayListenerPathHere

Laravel

请注册服务提供者

// config/app.php
'Providers' => [
    // ...
    /*
     * Package Service Providers...
     */
    MuHasan\LaravelWinpay\WinpayServiceProvider::class,
    // ...
]

您可以通过添加此行来使用外观

// config/app.php
'aliases' => [
    // ...
    'Winpay' => MuHasan\LaravelWinpay\WinpayFacade::class,
];

请发布配置文件以定义您的WinPay凭证

$ php artisan vendor:publish --provider="MuHasan\LaravelWinpay\WinpayServiceProvider"

Lumen

请将此行添加到bootstrap/app.php文件中

$app->configure('laravel-winpay');
//...
$app->register(MuHasan\LaravelWinpay\WinpayServiceProvider::class);

您可以从此laravel-winpay.php中获取配置文件。然后将其复制到config/laravel-winpay.php

发送请求到WinPay

目前,此包仅支持getToolbargetPaymentCode

getToolbar

根据文档,此函数将返回支付渠道列表。您可以像这样使用它

winpay()->getToolbar();
// OR
Winpay::getToolbar();

getPaymentCode

根据文档,此函数将返回所选支付渠道的支付代码和交易详情。您可以像这样使用它

winpay()->getPaymentCode($paymentChannel, $transaction, $user, $items);
// OR
Winpay::getToolbar($paymentChannel, $transaction, $user, $items);

您必须从getToolbar()响应中传递$paymentChannel参数。

$transaction参数必须是实现了MuHasan\LaravelWinpay\BillingTransaction接口的模型,并定义了getBillTransactionEndAt()getBillTransactionReff()getBillTransactionAmount()函数。

class FooTransaction extends Model implements BillingTransaction
{
    //...
    public function getBillTransactionEndAt(): \DateTime
    {
        return $this->reff;
    }

    public function getBillTransactionReff(): string
    {
        return $this->reff;
    }

    public function getBillTransactionAmount(): int
    {
        return $this->total;
    }
    //...
}

$user参数必须是实现了MuHasan\LaravelWinpay\BillingUser接口的模型,并定义了getgetBillUserName()getgetBillUserPhone()getgetBillUserEmail()函数。

class FooUser extends Model implements BillingUser
{
    //...
    public function getBillUserName(): string
    {
        return $this->name;
    }

    public function getBillUserPhone(): string
    {
        return $this->phone;
    }

    // nullable
    public function getBillUserEmail(): ?string
    {
        return $this->email;
        // OR
        // return null;
    }
    //...
}

$items参数必须是实现了MuHasan\LaravelWinpay\BillingItem接口的模型的数组,并定义了getBillItemName()getBillItemQty()getBillItemUnitPrice()getBillItemSku()getBillItemDesc()函数。

class FooItem extends Model implements BillingItem
{
    //...
    public function getBillItemName(): string
    {
        return $this->name;
    }

    public function getBillItemQty(): int
    {
        return $this->qty;
    }

    public function getBillItemUnitPrice(): int
    {
        return $this->amount;
    }

    // nullable
    public function getBillItemSku(): ?string
    {
        return $this->short_id;
        // OR
        // return null;
    }

    // nullable
    public function getBillItemDesc(): ?string
    {
        return $this->note;
        // OR
        // return null;
    }
    //...
}