chainside / webpos-sdk
ChainsidePay的WebPos集成SDK
Requires
- illuminate/cache: ~5.3
- moveaxlab/sdk-boilerplate: ^2.0
This package is auto-updated.
Last update: 2024-09-29 05:08:49 UTC
README
由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联系我们