nexylan/paybox-direct

PayBox Direct 和 Direct Plus API 封装器

v0.4.0 2020-12-10 19:49 UTC

This package is auto-updated.

Last update: 2024-08-28 18:21:15 UTC


README

Paybox Direct 和 Paybox Direct Plus PHP SDK。

Latest Stable Version Latest Unstable Version License Dependency Status Reference Status

Total Downloads Monthly Downloads Daily Downloads

Build Status Scrutinizer Code Quality Code Climate Coverage Status SensioLabsInsight

文档

所有安装和用法说明都位于此 README 中。请查阅特定版本

  • 0.x 支持 Symfony ^2.7 || ^3.0

先决条件

此版本的项目需要

  • PHP 7.4+
  • Symfony 2.7+ 用于包集成

安装

首先,您需要通过 Composer 需求此库

composer require nexylan/paybox-direct

之后,您可以直接使用它。

如果您在 Symfony 项目中使用它,您应该阅读以下说明以获得更好的集成。

作为一个 Symfony 包

如果您的项目 没有使用 Symfony 全栈,您必须添加以下依赖项

composer require symfony/dependency-injection symfony/http-kernel

在您的应用程序内核中注册此包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Nexy\PayboxDirect\Bridge\Symfony\Bundle\NexyPayboxDirectBundle(),
    );

    // ...

    return $bundles;
}

需要一些配置。以下是默认配置

nexy_paybox_direct:
    client:               null
    options:
        timeout:              ~
        production:           ~
    paybox:               # Required
        version:              ~ # Required
        site:                 ~ # Required
        rank:                 ~ # Required
        identifier:           ~ # Required
        key:                  ~ # Required
        default_currency:     ~
        default_activity:     ~

用法

获取客户端实例

为了与 Paybox Direct (Plus) API 进行通信,您必须实例化 Paybox

use Nexy\PayboxDirect\Enum\Version;
use Nexy\PayboxDirect\Paybox;

$paybox = new Paybox([
    // Optional parameters:
    'timeout' => 30,        // Change the request timeout.
    'production' => true,   // Set to true to use the production API URL.
    // Required parameters:
    'paybox_version' => Version::DIRECT_PLUS,
    'paybox_site' => '1999888',
    'paybox_rank' => '32',
    'paybox_identifier' => '107904482',
    'paybox_key' => '1999888I',
]);

如果您使用的是 Symfony 包桥接,所有参数已经在配置端定义好了。

您只需调用 paybox 服务即可

/** @var \Nexy\PayboxDirect\Paybox $paybox */
$paybox = $this->container->get('nexy_paybox_direct.sdk');

发起请求

以下是一个使用 SDK 发起 Paybox Direct 请求的注释示例

use Nexy\PayboxDirect\Exception\PayboxException;
use Nexy\PayboxDirect\Request\AuthorizeAndCaptureRequest;

$request = new AuthorizeAndCaptureRequest('CMD-42', 1000, '1111222233334444', '1224');
$request->setCardVerificationValue('123');
try {
    /** @var \Nexy\PayboxDirect\Response\DirectResponse $response */
    $response = $paybox->sendDirectRequest($request);
} catch (PayboxException $e) {
    echo $e->getMessage(); // Prints the Paybox error message.
    /** @var \Nexy\PayboxDirect\Response\DirectResponse $response */
    $response = $e->getResponse(); // Returns the response object if you want to manipulate it.
}
// Do stuff with the response!

如果您想通过 Direct Plus 协议使用订阅者引用执行相同的操作

$request = new AuthorizeAndCaptureRequest('CMD-42', 1000, 'subscriberCardRef', '1224', 'subscriberRef');
try {
    /** @var \Nexy\PayboxDirect\Response\DirectPlusResponse $response */
    $response = $paybox->sendDirectPlusRequest($request);
} catch (PayboxException $e) {
    echo $e->getMessage(); // Prints the Paybox error message.
    /** @var \Nexy\PayboxDirect\Response\DirectPlusResponse $response */
    $response = $e->getResponse(); // Returns the response object if you want to manipulate it.
}
// Do stuff with the response!

注意,您必须使用 Paybox::sendDirectPlusRequest 方法,该方法返回一个 DirectPlusResponse 对象。

请求参考

以下是列出所有可用请求的表格