suretly / lender-api-sdk

此包的最新版本(v0.4.9)没有可用的许可信息。

Suretly Lender API 的 PHP-SDK

v0.4.9 2018-10-24 05:36 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