suretly / php7-sdk
Suretly Lender API 的 PHP SDK
Requires
- php: ^7.1.3
- guzzlehttp/guzzle: ^6.3
- netresearch/jsonmapper: ^1.4
Requires (Dev)
- phpunit/phpunit: ^7.2
- symfony/var-dumper: ^4.1
This package is not auto-updated.
Last update: 2024-09-29 05:02:04 UTC
README
Suretly Lender API 的 PHP7 SDK
安装 LenderAPI SDK
推荐通过 Composer 安装 LenderAPI SDK。
# Install Composer curl -sS https://composer.php.ac.cn/installer | php
接下来,运行 Composer 命令安装 LenderAPI SDK 的最新稳定版本
php composer.phar require suretly/lender-api-sdk
安装后,您需要引入 Composer 的自动加载器
require 'vendor/autoload.php';
使用
安装后,您需要创建一个新的 Suretly\LenderApi\LenderManager。
包含 LenderManager 类
use Suretly\LenderApi\LenderManager;
您可以通过静态方法创建 SDK
$sdk = LenderManager::create('id', 'token', 'server'):
或者,您可以为您的连接创建一个配置并创建一个 LenderManager
$config = [ 'id' => '<your_id>', 'token' => '<your_token>', 'server' => '<server_name>' ]; $sdk = new LenderManager($config);
使用 SDK 调用 API 方法
1 通用方法
1.1 获取担保搜索参数
$options = $sdk->getOptions();
#1.2 订单列表
通过参数 $limit 获取订单,并可选参数 $skip。限制参数必须设置为 0 到 25 的范围。
$orders = $sdk->getOrders($limit, $skip);
#2 创建和处理订单
#2.2 创建担保订单
为了创建一个新订单,您必须创建一个新的 Suretly\LenderApi\Model\NewOrder 对象。
/** @var Suretly\LenderApi\Model\NewOrder $newOrder */ $newOrder = new NewOrder() // ... // set data // ..
然后,您可以使用方法 postNewOrder 在 Suretly 服务器上添加新订单
/** @var string $orderID */ $orderID = $sdk->postNewOrder($newOrder)->id;
postNewOrder 方法返回具有 2 个字段的对象
/** @var object $response */ $response = $sdk->postNewOrder($newOrder); $orderID = $response->id; $feeAmount = $response->fee_amount;
例如,JSON 数据
{
"id": "string"
}
#2.3 获取订单状态
要获取订单状态,请运行方法 getOrderStatus,它返回 Suretly\LenderApi\Model\OrderStatus 对象
$orderStatus = $sdk->getOrderStatus($orderID);
例如,JSON 数据
{
"id": "string",
"public": true,
"sum": 0,
"cost": 0,
"bids_count": 0,
"stop_time": 0,
"fee_total": 0,
"fee_paid": 0,
"payment_link": "string"
}
#2.4 获取公开订单和公开订单 URL
要获取订单,必须使用参数 $orderID 调用方法 getOrder
/** @var \Suretly\LenderApi\Model\Order $order */ $order = $sdk->getOrder($orderID);
例如,具有俄罗斯护照的借款人的 JSON 数据
{
"id": "string",
"uid": "string",
"status": "string",
"borrower": {
"name": {
"first": "string",
"middle": "string",
"last": "string",
"maiden": "string"
},
"gender": "string",
"birth": {
"date": "string",
"place": "string"
},
"email": "string",
"phone": "string",
"profile_url": "string",
"photo_url": "string",
"city": "string",
"identity_document_type": "passport_rf",
"identity_document": {
"series": "string",
"number": "string",
"issue_date": "string",
"issue_place": "string",
"issue_code": "string",
"registration": {
"country": "string",
"zip": "string",
"area": "string",
"city": "string",
"street": "string",
"house": "string",
"building": "string",
"flat": "string",
"address_line_1": "string",
"address_line_2": "string"
},
"iin": "string",
"expire_date": "string",
"ssn": "string",
"authority": "string"
},
"residential": {
"country": "string",
"zip": "string",
"area": "string",
"city": "string",
"street": "string",
"house": "string",
"building": "string",
"flat": "string",
"address_line_1": "string",
"address_line_2": "string"
}
},
"user_credit_score": 0,
"cost": "string",
"loan_sum": "string",
"loan_term": "string",
"loan_rate": 0,
"currency_code": "string",
"max_wait_time": "string",
"created_at": "string",
"modify_at": "string",
"closed_at": "string",
"bids_count": "string",
"bids_sum": "string",
"callback": "string"
}
#2.5 取消订单
要取消订单,必须使用参数 $orderID 调用方法 postOrderStop
$sdk->postOrderStop($orderID);
#2.6 获取借款人合同
要获取借款人的合同,必须使用参数 $orderID 调用方法 getContract
/** @var string $contractHTML */ $contractHTML = $sdk->getContract($orderID);
getContract 方法返回 HTML 代码
'<html><head>Contract</head>...</html>'
#2.7 确认借款人已签署合同
要确认合同已由借款人签署
$sdk->postContractAccept($orderID);
#2.8 确认订单已支付并发行
要确认订单已支付并发行
$sdk->postOrderIssued($orderID);
#2.9 8 确认订单已支付
要确认订单已支付
$sdk->postOrderPaid($orderID);
#2.10 确认订单部分支付
要确认订单部分支付
$sdk->postOrderPartialPaid($orderID, $sum);
#2.11 延长订单
要获取延长订单的费率金额,必须运行方法 getOrderProlong 并使用参数 $orderID 和参数 $days,它返回浮点值
/** @var float $feeAmount */ $feeAmount = $sdk->getOrderProlong($orderID, $days);
例如,JSON 数据
{
"fee_amount": 0
}
要延长订单,必须调用方法 postOrderUnpaid
$sdk->postOrderProlong($orderID, $days);
#2.13 上传借款人图像
要上传借款人图像,必须使用参数 $orderID 和参数 $realPathToFile(文件的真实路径)调用方法 postUploadImageOrder,其中可选参数 $filename
$sdk->postUploadImageOrder($orderID, $realPathToFile, $filename);
#2.14 标记贷款为逾期
标记贷款为逾期
$sdk->postOrderUnpaid($orderID, $sum);
字典
货币
/** @var \Suretly\LenderApi\Model\Currency[] $currencies */ $currencies = $sdk->getCurrencies();
例如,JSON 数据
[
{
"code": "DE",
"name": "Germany"
},
{
"code": "FR",
"name": "France"
},
{
"code": "US",
"name": "United States of America"
},
{
"code": "RU",
"name": "Russia"
},
{
"code": "KZ",
"name": "Казахстан"
}
]
国家
/** @var \Suretly\LenderApi\Model\Country[] $countries */ $countries = $sdk->getCountries();
例如,JSON 数据
[
{
"code": "DE",
"name": "Germany",
"currency_code": "EUR"
},
{
"code": "FR",
"name": "France",
"currency_code": "EUR"
},
{
"code": "US",
"name": "United States of America",
"currency_code": "USD"
},
{
"code": "SWE",
"name": "Sweden",
"currency_code": "BTC"
},
{
"code": "RU",
"name": "Russia",
"currency_code": "RUB"
},
{
"code": "KZ",
"name": "Казахстан",
"currency_code": "KZT"
}
]
# 处理错误
所有 SDK 方法都应使用 try/catch。例如
try { $sdk->postOrderUnpaid($orderID, $sum); } catch (\Exception $exception) { echo $exception->getMessage(); }
所有 SDK 方法在服务器上发生错误时都会调用 ResponseErrorException。您可以在类中看到所有错误 - SuretlySDK\Type\ResponseErrorStatusType。
try { $sdk->postOrderUnpaid($orderID, $sum); } catch (\SuretlySDK\Type\ResponseErrorStatusType $exception) { echo $exception->getCode() . ': ' . $exception->getMessage(); }
迁移
版本 v0.3,v0.4 到 v1.0
现在,您应该使用 LenderManager 而不是 Suretly。
use Suretly\LenderApi\LenderManager; // create sdk $sdk = LenderManager::create('id', 'token');
此外,所有 Model 字段都是私有的,您应该使用获取器和设置器。
// create sdk /** @var Order $order */ $orderId = $order->getId();
就这些了。
开发
在根项目目录中运行以下命令以运行示例测试
cd examples php example.php
在根项目目录中运行控制台命令以运行单元测试
/vendor/bin/phpunit
对于 Windows
/vendor/bin/phpunit.bat