intagono/openpay

用于连接 OpenPay 支付网关的库

dev-master 2017-08-09 20:44 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:35 UTC


README

简化 OpenPay 支付网关 API 过程的库

安装

首先通过 Composer 安装此包。

{
    "require": {
        "intagono/openpay": "dev-master"
    }
}

Laravel 5

注册以下 Service Provider 和别名

// config/app.php

'providers' => [
    Intagono\Openpay\OpenpayServiceProvider::class,
];

'aliases' => [
    'IntagonoOpenpay' => Intagono\Openpay\OpenpayFacade::class,
];

然后,发布默认配置。

php artisan vendor:publish

这将在以下位置添加一个新的配置文件:config/openpay.php。您需要在 .env 文件中创建这些变量并指定适当的值。

<?php

return [

    /*
    | (Boolean) Determines if Openpay is running in production mode.
    */
    'production_mode' => env('OPENPAY_PRODUCTION_MODE'),

    /*
    | Your Merchant ID, found in Openpay Dashboard -- Configuration.
    */
    'merchant_id' => env('OPENPAY_MERCHANT_ID'),

    /*
    | Your Private Key, found in Openpay Dashboard -- Configuration.
    */
    'private_key' => env('OPENPAY_PRIVATE_KEY'),
];

如果您想在一个地方处理所有 Openpay 异常,请在您的异常处理程序中使用以下 trait 并修改 render 方法。

// app/Exceptions/Handler.php

use Intagono\Openpay\OpenpayExceptionTrait;

class Handler extends ExceptionHandler {

    use OpenPayExceptionTrait;

    ...

    public function render($request, Exception $e)
    {
        if ($this->isOpenPayException($e))
        {
            return $this->renderOpenPayException($request, $e);
        }
        else
        {
            return parent::render($request, $e);
        }
    }

}

默认情况下,此 trait 会捕获所有 Openpay 异常,并返回输入和错误信息。如果是 AJAX 请求,则返回包含错误信息的响应。

用法

构造函数注入。

<?php

use Intagono\Openpay\Openpay;

class Foo {

    /**
     * @var \Intagono\Openpay\Openpay
     */
    protected $openpay;

    /**
     * Constructor
     */
    public function __construct(Openpay $openpay)
    {
        $this->openpay = $openpay;
    }

}

外观

$charge = IntagonoOpenpay::charge($chargeRequest);

Laravel 外部使用

Intagono\Openpay\Openpay 依赖于 Openpay 核心。

require 'vendor/autoload.php';

$openpayCore = \Openpay::getInstance($merchantId, $privayeKey);

$intagonoOpenpay = new \Intagono\Openpay\Openpay($openpayCore);

许可证

Mit 许可证