gpt4 book ai didi

PHP Curl 连接到亚马逊 MWS 卖家 API

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:38 26 4
gpt4 key购买 nike

我正在尝试通过 PHP 的 Curl 库向亚马逊卖家 API 的 ListOrders 函数发送请求。我能够连接,但我从他们的服务中收到 AccessDenied 错误。文档说这意味着我正在尝试不使用 HTTPS 进行连接,但我要连接的 url 是 https://mws.amazonservices.com/

这是我的 curl 请求

private function send_request()
{
$string = '';
$count = 0;
foreach ($this->options as $k => $v)
{
$string .= rawurlencode($k) . "=" . rawurlencode($v);
$string .= ($count == count($this->options) -1)? '': "&";
$count++;
}
$options = array(
CURLOPT_CAINFO=> <<Cert location>>,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_POST=>true,
CURLOPT_PORT=>443,
CURLOPT_POSTFIELDS=> $string,
CURLOPT_SSL_VERIFYHOST=>2,
CURLOPT_SSL_VERIFYPEER=> TRUE,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_VERBOSE => 1,
CURLOPT_HEADER=>true,
CURLOPT_PROTOCOLS=> CURLPROTO_HTTPS,
CURLINFO_HEADER_OUT=>true
);
$session = curl_init($this->url);
curl_setopt_array($session, $options);
$results = curl_exec($session);
$errors = curl_error($session);
$info = curl_getinfo($session);
curl_close($session);
echo htmlentities($results);//var_dump($errors);
echo "<br /><br />";
print_r($info);
return $results;
}

我得到的错误是:

<?xml version="1.0"?> <ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2011-01-01">
<Error>
<Type>Sender</Type>
<Code>AccessDenied</Code>
<Message>Access to Orders.ListOrders is denied</Message>
</Error>
<RequestID>4e60baef-b2a4-44aa-a18f-dd6fe8b07cf5</RequestID> </ErrorResponse>

我的 curl 信息打印输出是:

        Array
(
[url] => https://mws.amazonservices.com/Orders/2012-11-27
[content_type] => text/xml
[http_code] => 401
[header_size] => 362
[request_size] => 494
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.42
[namelookup_time] => 0.016
[connect_time] => 0.078
[pretransfer_time] => 1.342
[size_upload] => 345
[size_download] => 310
[speed_download] => 218
[speed_upload] => 242
[download_content_length] => 310
[upload_content_length] => 345
[starttransfer_time] => 1.42
[redirect_time] => 0
[certinfo] => Array
(
)

我的数据格式正确(签名有效等)。这个问题是我从一个不受 SSL 保护的站点发出这个请求的结果(即使我正在连接到他们的 https 站点),还是我还遗漏了什么?

感谢您的帮助。

最佳答案

由于元素标记中的错误,访问被拒绝。 Amazon 文档指出您可以使用 Merchant 或 SellerId,我使用的是 Merchant,并且需要 SellerId。上面的脚本正确地将请求发送到亚马逊。

关于PHP Curl 连接到亚马逊 MWS 卖家 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com