allanvb/laravel-walletone

将 walletone.com 支付网关集成到 Laravel 的插件

1.0.2 2020-09-11 20:51 UTC

This package is auto-updated.

Last update: 2024-09-12 05:54:30 UTC


README

Laravel 包,用于将 WalletOne 支付网关集成到 Laravel 应用程序中

Packagist Version GitHub last commit License

将 WalletOne API 集成到您的 Laravel 应用程序的包。

安装

通过 Composer

$ composer require allanvb/laravel-walletone

如果您使用的是 Laravel 5.5 或更高版本,则该包将自动注册提供者和外观。

Laravel 5.4 及以下版本

Allanvb\LaravelWalletOne\Providers\WalletoneServiceProvider 添加到 config/app.php 文件中的 providers 数组

'providers' => [
    // Other service providers...

    Allanvb\LaravelWalletOne\Providers\WalletoneServiceProvider::class,
],

config/app.php 中添加别名

'aliases' => [
    ...
    'WalletOne' => Allanvb\LaravelWalletOne\Facades\WalletOne::class,
],

或者您可以在需要时使用外观类

use Allanvb\LaravelWalletOne\Facades\WalletOne;

配置

您可以使用 php artisan vendor:publish 命令将配置文件复制到您的应用程序配置目录

$ php artisan vendor:publish --provider="Allanvb\LaravelWalletOne\Providers\WalletoneServiceProvider" --tag="config"

然后更新 config/wallet-one.php 文件,使用您的凭证。您还可以更新 .env 文件,如下所示

WALLETONE_MERCHANT=merchant_id
WALLETONE_SECRET=secret_key
WALLETONE_SIGNATURE=signature_method
WALLETONE_CURRENCY=currency
WALLETONE_SUCCESS=success_url
WALLETONE_FAIL=fail_url

使用方法

要使用 WalletOne 库,您可以访问外观,或从服务容器请求实例

WalletOne::make($orderID, $amount, $description, $options);

或者

app('walletone')->make($orderID, $amount, $description, $options);

参数

  • $orderID - (string) 用户在您的电子商务网站上的订单 ID (必填).
  • $amount - (float) 用户需要支付的钱的金额 (必填).
  • $description - (string) 支付描述 (必填).
  • $options - (array) 您希望保存到 WalletOne 服务或从响应中获取的其他选项。

为了为用户创建支付表单,您必须使用 getParams() 方法获取所有 POST 参数。

$params = WalletOne::getParams();

然后将这些参数发送到您的视图并创建表单。

将表单的 action 属性设置为 WalletOne::API_URL

为了从 WalletOne 服务获取响应,您必须在您的 web.php 文件中定义一个 post 路由。该路由应使用 \Allanvb\LaravelWalletOne\Http\Middleware\WalletonePay::class 中间件。

您可以将此中间件添加到 Kernel.php 文件中的 App\Http 目录。

    protected $routeMiddleware = [
        // Other service providers...
        
        'walletone-payment' => \Allanvb\LaravelWalletOne\Http\Middleware\WalletonePay::class
    ];

然后您可以使用它如下

Route::post('/payment-webhook', 'YourController')->middleware('walletone-payment');

注意

  • 您的控制器应该返回 WalletOne::response() 方法!
  • 别忘了将您的路由添加到 VerifyCsrfToken 中间件的 $except 参数中!

对您的路由的每个请求将生成一个 SuccessPaymentFailedPayment 事件,因此您只需要为每个事件定义一个事件监听器。

安全性

如果您发现任何与安全相关的问题,请通过电子邮件发送至 alan.vb@mail.ru,而不是使用问题跟踪器。

致谢

此包实际上是 pdazcom/laravel-walletone 的延续,该包的作者是 Konstantin A.

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件