dapi-co / dapi-php
PHP Dapi 客户端库
Requires
- php: ^7.2.5 || ^8.0
- guzzlehttp/guzzle: ^7.3
This package is not auto-updated.
Last update: 2024-09-24 18:43:32 UTC
README
快速开始
配置项目
首先使用 composer 将库模块添加到您的项目中。在您的 composer.json 中添加以下内容:
"require": { "dapi-co/dapi-php": "^1.3", },
或者,在您的项目文件夹中直接输入以下内容。
composer require dapi-co/dapi-php
配置库
- 使用您的 App Secret 创建一个 DapiClient。
// Assuming that Dapi library is already autoloaded. If not, manually include/require it here. $dapiClient = new Dapi\DapiClient('APP_SECRET');
- 现在,您可以使用客户端实例中的任何产品函数(例如
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));
- 或者,您可以在服务器端的一个端点内使用客户端实例的
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->getIdentitydata->getAccountsdata->getAccountBalancedata->getAccountTransactionsdata->getCardsdata->getCardBalancedata->getCardTransactions -
支付产品
payment->getBeneficiariespayment->createBeneficiarypayment->createTransferpayment->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 时才会返回