dapi-co/dapi-php

PHP Dapi 客户端库

1.3.0 2022-11-22 10:13 UTC

README

一个与 Dapi API 通信的 PHP 库。

快速开始

配置项目

首先使用 composer 将库模块添加到您的项目中。在您的 composer.json 中添加以下内容:

"require": {
    "dapi-co/dapi-php": "^1.3",
},

或者,在您的项目文件夹中直接输入以下内容。

composer require dapi-co/dapi-php

配置库

  1. 使用您的 App Secret 创建一个 DapiClient。
// Assuming that Dapi library is already autoloaded. If not, manually include/require it here.
$dapiClient = new Dapi\DapiClient('APP_SECRET');
  1. 现在,您可以使用客户端实例中的任何产品函数(例如 data)调用 Dapi 并使用您的 appSecret
$accessToken = 'ACCESS_TOKEN'; 
$userSecret = 'USER_SECRET'; 
$accounts = $dapiClient->data->getAccounts($accessToken, $userSecret);
echo PHP_EOL . 'Accounts' . PHP_EOL . PHP_EOL;
echo (json_encode($accounts, JSON_PRETTY_PRINT));
  1. 或者,您可以在服务器端的一个端点内使用客户端实例的 handleSDKRequests 函数。我们的代码将基本上更新请求,添加您的应用的 appSecret,然后将请求转发到 Dapi,最后返回结果。
<?php

// Assuming that Dapi library is already autoloaded. If not, manually include/require it here. 

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

// Initialize DapiClient with your appSecret here
$dapiClient = new Dapi\DapiClient('APP_SECRET');

$headers = getallheaders();
$body = json_decode(file_get_contents("php://input"), true);

// Make dapiClient automatically handle your SDK requests
if (!empty($body)) {
  echo json_encode($dapiClient->handleSDKRequests($body, $headers)); 
} else {
  http_response_code(400);
  echo "Bad Request: No data sent or wrong request";
}

DAPI API

一个列表,列出了您的后端可以调用来执行某些操作的 Dapi PHP 库中的所有选项。

  • 认证产品

    auth->exchangeToken

  • 数据产品

    data->getIdentity

    data->getAccounts

    data->getAccountBalance

    data->getAccountTransactions

    data->getCards

    data->getCardBalance

    data->getCardTransactions

  • 支付产品

    payment->getBeneficiaries

    payment->createBeneficiary

    payment->createTransfer

    payment->transferAutoFlow

  • 元数据产品

    metadata->getAccounts

  • 操作产品: operation->getOperationStatus

参考

BaseResponse

所有响应都具有此处描述的字段。这意味着文档中以下描述的所有响应都将具有以下字段,除了每个响应中特定于该响应的字段。

userInput 对象

方法

auth->exchangeToken

方法用于通过将用户在用户认证期间(用户登录)收到的访问代码与之交换来获取用户的永久访问令牌。

注意

您可以在 获取访问令牌 上了解更多关于如何获取永久令牌的信息。

方法描述
function exchangeToken($accessCode, $connectionID)
输入参数
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回

data->getIdentity

方法用于检索有关用户个人的详细信息。

方法描述
function getIdentity($accessToken, $userSecret, $userInputs = [], $operationID = "")
输入参数
userInput 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回

data->getAccounts

方法用于检索用户已注册的所有银行账户的列表。列表将包含所有类型的银行账户。

方法描述
function getAccounts($accessToken, $userSecret, $userInputs = [], $operationID = "")
输入参数
userInput 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回

data->getBalance

方法用于检索用户特定银行账户的余额。

方法描述
function getBalance($accessToken, $userSecret, $accountID, $userInputs = [], $operationID = "")
输入参数
userInput 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才有效

data->getTransactions

方法用于检索用户在特定时间段内从其银行账户执行的交易。交易列表未经过筛选,这意味着响应将包含用户执行的所有交易(而不仅仅是使用您的应用执行的交易)。

可检索的交易日期范围因每个银行而异。用户银行支持的日期范围在“获取账户元数据”端点的响应参数 transactionRange 中显示。

方法描述
function getTransactions($accessToken, $userSecret, $accountID, $fromDate, $toDate, $userInputs = [], $operationID = "")
输入参数
userInput 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才有效

payment->getBeneficiaries

方法用于检索用户在金融机构中已添加的所有受益人的列表。

方法描述
function getBeneficiaries($accessToken, $userSecret, $userInputs = [], $operationID = "")
输入参数
userInput 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回

payment->createBeneficiary

方法用于检索用户在金融机构中已添加的所有受益人的列表。

方法描述
function createBeneficiary($accessToken, $userSecret, $beneficiaryData, $userInputs = [], $operationID = "")
输入参数
userInput 对象
beneficiaryData 对象
地址对象
响应

方法仅返回在 BaseResponse 中定义的字段。

payment->createTransfer

方法用于从一个账户到另一个账户发起新的付款。

重要

我们建议您使用 TransferAutoflow 方法来发起支付。 TransferAutoFlow 抽象了使用 CreateTransfer 方法发起交易所需的所有验证和处理逻辑。

您可以在文档中进一步了解 TransferAutoFlow

方法描述
function createTransfer($accessToken, $userSecret, $transferData, $userInputs = [], $operationID = "")
输入参数
userInput 对象
transferData 对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回

payment->transferAutoflow

该方法用于从一个账户到另一个账户发起新的支付,无需关心或处理任何特殊案例或场景。

方法描述
function transferAutoflow($accessToken, $userSecret, $transferAutoFlowData, $userInputs = [], $operationID = "")
输入参数
userInput 对象
transferAutoflowData 对象
收款人对象
地址对象
响应

除了在 BaseResponse 中描述的字段外,它还具有以下字段,只有当状态为 done 时才会返回