minchao / shopee-php
Shopee Partner API PHP SDK
Installs: 33 317
Dependents: 1
Suggesters: 0
Security: 0
Stars: 142
Watchers: 13
Forks: 84
Open Issues: 8
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.5 || ^7.0
- psr/http-message: ^1.0
Requires (Dev)
- phpstan/phpstan: ^0.12.14 || ^1.0.0
- phpunit/phpunit: ^7.5 || ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^3.5
README
This is a Shopee OpenAPI 1.0 Client for PHP.
⚠️ The Shopee Open API v.1.0 will be completely deprecated after 26 December 2022.
Requirements
Installation
Execute the following command to get the package:
$ composer require minchao/shopee-php
Usage
Create an instance of the Shopee client, then use to access the Shopee Partner API.
<?php use Shopee\Client; require __DIR__ . '/vendor/autoload.php'; $client = new Client([ 'secret' => getenv('SHOPEE_PARTNER_KEY'), 'partner_id' => getenv('SHOPEE_PARTNER_ID'), 'shopid' => getenv('SHOPEE_SHOP_ID'), ]);
Examples
Get detail of item
$response = $client->item->getItemDetail(['item_id' => 1978]);
Alternatively, you can also use the parameter model within request.
$parameters = (new \Shopee\Nodes\Item\Parameters\GetItemDetail()) ->setItemId(1978); $response = $client->item->getItemDetail($parameters);
Webhook
Use webhook to receive incoming push notifications:
<?php /** * Push Mechanism (WebHook) * * @see https://open.shopee.com/documents?module=63&type=2&id=55 */ use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Shopee\SignatureGenerator; use Shopee\SignatureValidator; use Slim\Factory\AppFactory; require __DIR__ . '/vendor/autoload.php'; $app = AppFactory::create(); $signatureGenerator = new SignatureGenerator(getenv('PARTNER_KEY')); $signatureValidator = new SignatureValidator($signatureGenerator); $app->post('/webhook', function (Request $request, Response $response) use ($signatureValidator) { // Verify push content if (!$signatureValidator->isValid($request)) { error_log('Invalid authorization signature'); return $response; } // TODO here to handle your business logic // HTTP response must with status code 2xx and empty body return $response; }); $app->run();
License
See the LICENSE file for license rights and limitations (BSD 3-Clause).