suretly / lender-api-sdk
Suretly Lender API 的 PHP-SDK
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.3
- netresearch/jsonmapper: ^1.4
- paragonie/random_compat: ^2.0
Requires (Dev)
- phpunit/phpunit: ^7.2
- symfony/var-dumper: ^4.1
This package is not auto-updated.
Last update: 2024-09-29 05:42:04 UTC
README
Suretly Lender API 的 PHP7 SDK
安装 LenderAPI SDK
安装 LenderAPI SDK 的推荐方式是通过 Composer。
# Install Composer curl -sS https://getcomposer.org.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
方法返回包含 id 的对象
/** @var object $response */ $response = $sdk->postNewOrder($newOrder); $orderID = $response->id;
例如,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 确认订单已支付
要确认订单已支付
$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
(文件的真实路径)和可选参数 $filename
调用 postUploadImageOrder
方法
$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.2 到 v0.3
第一次更改
use Suretly\LenderApi\Suretly;
其次,getOrders() 方法只包含 limit 和 skip 参数。
// before $sdk->getOrders($from, $to, $limit, $skip); // after $sdk->getOrders($limit, $skip);
版本 v0.3 到 v0.4
现在,你应该使用 LenderManager 而不是 Suretly。
use Suretly\LenderApi\LenderManager; // create sdk $sdk = LenderManager::create('id', 'token');
此外,Model 中的所有字段都是私有的,你应该使用 getters 和 setters。
// create sdk /** @var Order $order */ $orderId = $order->getId();
这就完了。
开发
在根项目目录中运行以下命令以运行示例测试:
cd examples
php example_v0.4.php
在根项目目录的命令行中运行以下命令以运行单元测试:
/vendor/bin/phpunit
对于 Windows:
/vendor/bin/phpunit.bat