andrewyj / amazon-sp-api
本软件包最新版本(0.0.1)没有可用的许可证信息。
亚马逊销售合作伙伴SDK
0.0.1
2021-07-15 07:22 UTC
Requires
- php: >=7.3
- ext-json: *
- guzzlehttp/guzzle: ^6.3|^7.0
README
SP-API是卖家及其代理在亚马逊市场上高效销售产品的新一代API功能套件。亚马逊市场网络服务(Amazon MWS)API先于SP-API,并且已经广泛使用超过十年。亚马逊在其文档中声明,SP-API是未来,并且SP API将接收所有新的更新和增强。然而,可以预期在新的系统稳定并提供与现有MWS API相匹配之前,将从MWS过渡到SP-API。
更多信息请访问:https://github.com/amzn/selling-partner-api-docs
安装
composer require andrewyj/amazon-sp-api
基本用法
1. 定义认证信息
$auth = [ 'refresh_token' => '', // Aztr|... 'client_id' => '', // App ID from Seller Central, amzn1.sellerapps.app.cfbfac4a-...... 'client_secret' => '', // The corresponding Client Secret 'region' => \AmazonSellingPartnerAPI\Client::REGION_NORTH_AMERICA, 'access_key' => '', // Access Key of AWS IAM User, for example AKIAABCDJKEHFJDS 'secret_key' => '', // Secret Key of AWS IAM User 'role_arn' => '', // AWS IAM Role ARN for example: arn:aws:iam::123456789:role/Your-Role-Name ];
2. 使用refresh_token交换access_token
$oAuth = new \AmazonSellingPartnerAPI\OAuth($auth['client_id'], $auth['client_secret']); $auth['access_token'] = $oAuth->getAccessToken($auth['refresh_token'])->access_token;
3. 选择签名版本(v4)
$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature();
4. 获取角色信息
$assumedRole = new \AmazonSellingPartnerAPI\AssumeRole($auth['region'], $auth['access_key'], $auth['secret_key'], $sign); $credentials = $assumedRole->assume($auth['role_arn']); $auth['access_key'] = $credentials['AccessKeyId']; $auth['secret_key'] = $credentials['SecretAccessKey']; $auth['session_token'] = $credentials['SessionToken'];
5. 发送请求
$client = new \AmazonSellingPartnerAPI\Client($sign); $client->setAuth($auth); var_dump($client->get('/orders/v0/orders/XXX-XXXXXX-XXXXXXX'));
模块使用
1. 定义认证信息
2. 选择模块
$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature(); $cache = new Cache(); $order = new \AmazonSellingPartnerAPI\Module\Order($auth, $cache, $sign);
Cache()
用于缓存角色凭据和access_token。它必须具有get()
和set()
函数。如果您没有,则需要创建一个适配器。
3. 发送请求
# route param var_dump($order->getOrder('XXX-XXXXXX-XXXXXXX')->send()); # query param var_dump($order->getOrders()->withQuery([ "CreatedAfter" => "2020-04-13T06:28:08Z", "MarketplaceIds" => [ "XXXXXX", ] ])->send());