chainside/webpos-sdk

此软件包最新版本(3.0.0)没有可用的许可证信息。

ChainsidePay的WebPos集成SDK

3.0.0 2019-11-11 16:38 UTC

README

chainside

chainside倾情打造 ❤️

简介

本项目是Chainside Pay平台集成的sdk-boilerplate库的官方SDK库。

安装

按照以下步骤将SDK库安装到您的系统中

使用composer安装

composer require chainside\webpos-sdk

然后在脚本中包含它

<?php

require_once '/path/to/vendor/autoload.php';

// ... use the library

Laravel支持

对于Laravel 5.5+,由于该软件包使用Laravel自动发现功能,因此无需进行任何进一步的操作。

对于Laravel 5.4及以下版本,您需要按照以下步骤操作

config/app.php文件中的providers键下包含服务提供者

<?php

/* config/app.php */

// ...

'providers' => [
    // ...
    Chainside\SDK\WebPos\Laravel\ChainsideWebPosSdkServiceProvider::class
],

可选:config/app.php文件中的aliases键下包含外观

<?php

/* config/app.php */

// ...

'aliases' => [
    // ...
    'ChainsideWebPosClient' => Chainside\SDK\WebPos\Laravel\Facades\Client::class,
    'ChainsideWebPosCallbackHandler' => Chainside\SDK\WebPos\Laravel\Facades\CallbackHandler::class,
],

结构

以下部分将描述SDK库的高级结构。

配置

为了能够配置您的SDK客户端,您必须设置一些配置参数。以下是库使用的配置参数列表

HTTP客户端配置

有关自定义HTTP客户端配置的详细信息,请参阅Guzzle文档

缓存配置

默认情况下,SDK库使用文件缓存作为缓存系统。您可以通过更改cache_directory配置变量来指定不同的文件位置。

注意:在使用Laravel时,SDK将自动使用Laravel配置中指定的缓存驱动程序。

客户端

库公开了一个client对象,它使用系统配置实例化,并提供了一个高级接口来发送请求。客户端实例负责编译和发送HTTP请求,并将响应解析为SdkObject实例。

对象

库定义了一个SdkObject类,它由实际对象扩展,这些对象代表Chainside-Pay API请求和响应正文。API中定义的每个JSON对象都有一个相应的SdkObject类,它可以是客户端实例方法(用于创建)的输入,也可以是返回(用于读取)

回调

回调是服务器向您的应用程序发送的请求,以通知某些事件。每个回调都只发送到HTTPS webhook,并由服务器安全签名以便验证。

使用方法

以下部分将描述如何使用SDK库以及集成您的业务与Chainside Pay所需的所有详细信息。

实例化客户端

为了与我们的后端通信,您需要首先实例化客户端

<?php

use Chainside\SDK\WebPos\Client;

$config = [
    'mode' => 'live',
    'client_id' => 'CLIENT_ID',
    'secret' => 'SECRET'
];

$client = new Client($config);

或者在Laravel中运行

<?php

// Using the IoC
$client = app('chaniside.sdk.webpos');

// Using the Facade, you can directly instantiate run an action

$response = \ChainsideWebPosClient::clientCredentialsLogin(...);

客户端实例化和配置后,您可以使用以下方法发送请求

对象

回调列表

回调列表对象

参数

回调

回调检索对象

参数

PaymentOrderRetrieval

支付订单检索数据

参数

交易

支付订单的比特币交易

参数

输出

交易的输出

参数

PaymentOrderState

描述支付订单当前状态的详细数据

参数

PaidStatus

加密货币和法定货币的支付金额

参数

PaymentOrderCreator

支付订单创建者的数据

参数

DepositAccountLite

嵌套在其他API对象中的轻量级存款账户对象

参数

RateRetrieval

汇率数据

参数

CurrencyRetrieval

货币数据

参数

PaymentUpdateObject

回调触发的请求数据体

参数

PaymentOrderDeletionResponse

支付订单删除响应

参数

PaymentOrderList

企业的支付订单列表

参数

PaymentOrderCreation

创建新支付订单所需的数据

参数

PaymentOrderCreationResponse

支付订单创建请求的响应数据

参数

ClientCredentials

执行机密客户端登录所需的数据

参数

ClientCredentialsLoginResponse

机密客户端登录的响应数据

参数

CallbackPaymentOrder

支付订单检索数据

参数

回调

如果触发与在业务面板上注册的某项资产相关的事件,Chainside将发送回调。我们的服务器将向您的webhooks发送请求,您需要解析和验证这些请求。您可以使用以下方式使用此SDK库

<?php

use Chainside\SDK\WebPos\ChainsideCallbacksHandler;

$config = [
    'mode' => 'live',
    'client_id' => 'CLIENT_ID',
    'secret' => 'SECRET'
];

$context = new ApiContext($config);
$handler = new ChainsideCallbacksHandler($context);

$headers = $request->getHeaders();
$body = $request->getRawBody();

$receivedCallback = $handler->parse($headers, $body);

ChainsideCallbacksHandler将自动验证和解析来自传入请求的回调。

如果您使用Laravel,您可以使用外观来访问回调处理程序

<?php

$receivedCallback = \ChainsideWebPosCallbackHandler::parse($headers, $request);

// Or using the IoC
// $receivedCallback = app('chainside.sdk.webpos.callback.handler')->parse($headers, $request);

或者,您可以使用parseFromGlobals方法自动检索请求头和PHP HTTP全局变量中的原始体

<?php

$context = new ApiContext($config);
$handler = new ChainsideCallbacksHandler($context);

$receivedCallback = $handler->parseFromGlobals();

// Or, using Laravel

$receivedCallback = \ChainsideWebPosCallbackHandler::parseFromGlobals();

回调结构

触发的事件

贡献

为了保持后端和我们的SDK之间的一致性,我们强烈不建议通过pull requests进行贡献。如果您需要报告与此库相关的问题,请考虑发布一个issue。

安全问题

如果在发现实际或潜在的安全问题,请通过info@chainside.net联系我们