PHP code example of whalesky-labs / jd-sdk-php

1. Go to this page and download the library: Download whalesky-labs/jd-sdk-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

whalesky-labs / jd-sdk-php example snippets




declare(strict_types=1);

Sdk(
    $appKey,
    $appSecret,
    ['access_token' => $accessToken]
);

use JdSdk\Api\Jzt\V1\Request\JztFindAllSubPinsRequest;

$result = $sdk->jzt()->v1()->callApi(
    JztFindAllSubPinsRequest::class
);

use JdSdk\Api\Jzt\Sp\sp\data\v0\api\ReportSchemasApi;
use JdSdk\Api\Jzt\Sp\sp\data\v0\model\GetReportSchemasRequest;

$request = $sdk->jzt()->sp()->model(GetReportSchemasRequest::class, [
    'subject_info' => $subjectInfo,
]);

$response = $sdk->jzt()->sp()->callApi(
    ReportSchemasApi::class,
    'getReportSchemas',
    [$reportSchemaId, $request]
);

use JdSdk\Api\Pop\V1\Request\PopOrderGetRequest;

$result = $sdk->pop()->v1()->callApi(
    PopOrderGetRequest::class,
    [
        'order_id' => '1234567890',
        'optional_fields' => 'orderInfo,venderInfo',
    ]
);

use JdSdk\Api\Pop\Sp\sp\order\v0\api\OrdersApi;
use JdSdk\Api\Pop\Sp\sp\order\v0\model\ListOrdersRequest;

$request = $sdk->pop()->sp()->model(ListOrdersRequest::class, [
    'page' => 1,
    'page_size' => 20,
    'start_time' => strtotime('-1 day') * 1000,
    'end_time' => time() * 1000,
]);

$response = $sdk->pop()->sp()->callApi(
    OrdersApi::class,
    'listOrders',
    [$request]
);

['orderId' => '1234567890']
['order_id' => '1234567890']

use JdSdk\Api\SelfOperated\V1\Request\AigcCopilotTestHelloRequest;

$request = $sdk->selfOperated()->v1()->request(
    AigcCopilotTestHelloRequest::class,
    ['param1' => 'hello']
);

$request->setVersion('2.0');
$result = $sdk->selfOperated()->v1()->execute($request);

$result = $sdk->pop()->v1()->callApi(
    PopOrderGetRequest::class,
    ['order_id' => '1234567890'],
    $requestAccessToken
);

$caller = $sdk->pop()->v1()->domain(
    'WareStockSkuFivestarSet\\CallerParam'
);

$caller->setPin('example-pin');

$request = $sdk->pop()->sp()->model(
    'sp\\address\\v0\\model\\ListAreasRequest',
    ['level' => 2, 'parent_id' => 10]
);

use JdSdk\Api\Pop\Sp\sp\address\v0\api\AreasApi;

$api = $sdk->pop()->sp()->api(AreasApi::class);
$response = $api->listAreas($request);

use GuzzleHttp\Promise\Utils;

$promises = [
    'first' => $sdk->pop()->sp()->callApi(
        OrdersApi::class,
        'listOrdersAsync',
        [$firstRequest]
    ),
    'second' => $sdk->pop()->sp()->callApi(
        OrdersApi::class,
        'listOrdersAsync',
        [$secondRequest]
    ),
];

$responses = Utils::unwrap($promises);

$sdk = new JdSdk($appKey, $appSecret, [
    'access_token' => $accessToken,
    'v1_server_url' => 'https://api.jd.com/routerjson',
    'sp_server_url' => 'https://api-cn.jd.com/rest',
    'timeout' => [
        'connect' => 5000,
        'read' => 15000,
    ],
    'retry' => [
        'enable' => true,
        'max_times' => 2,
        'interval' => 200,
        'non_idempotent' => false,
    ],
    'pool' => [
        'max_connections' => 50,
        'max_idle_time' => 60,
        'wait_timeout' => 3.0,
    ],
    'debug' => false,
    'user_agent' => 'MyApplication/1.0',
]);

$sdk->config()
    ->setAccessToken($newAccessToken)
    ->setTimeout(3000, 10000)
    ->setRetryConfig(true, 2, 200, false)
    ->setDebug(false);

use JdSdk\Core\Exception\ApiException;
use JdSdk\Core\Exception\ConfigurationException;
use JdSdk\Core\Exception\HttpException;
use JdSdk\Core\Exception\InvalidApiException;
use JdSdk\Api\Pop\V1\Request\PopOrderGetRequest;

try {
    $result = $sdk->pop()->v1()->callApi(
        PopOrderGetRequest::class,
        ['order_id' => '1234567890']
    );
} catch (ApiException $exception) {
    $apiCode = $exception->getApiCode();
    $responseData = $exception->getResponseData();
} catch (HttpException $exception) {
    $statusCode = $exception->getStatusCode();
    $responseBody = $exception->getResponseBody();
} catch (InvalidApiException | ConfigurationException $exception) {
    $message = $exception->getMessage();
}

['retry' => ['non_idempotent' => true]]

$stats = JdSdk::poolStats();

JdSdk::shutdown();

$securityClient = $sdk->security();

$securityClient = $sdk->security($securityAccessToken);
bash
composer config repositories.jd-sdk-php vcs https://github.com/whalesky-labs/jd-sdk-php.git
composer 
bash
php scripts/import-official-sdk.php \
  --jzt-dir=/path/to/jd-api-sdk-php-jzt \
  --pop-dir=/path/to/jd-api-sdk-php-pop \
  --self-operated-dir=/path/to/jd-api-sdk-php-self-operated

composer dump-autoload -o
composer test
text
src/
├── Api/
│   ├── Jzt/{V1,Sp}/
│   ├── Pop/{V1,Sp}/
│   └── SelfOperated/{V1,Sp}/
├── Core/
│   ├── Client/
│   ├── Config/
│   ├── Exception/
│   ├── Http/
│   ├── Support/
│   └── Swoole/
├── Security/
└── JdSdk.php