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