Anonymous
UPS REST API - отслеживание против трека по ссылке
Сообщение
Anonymous » 07 июн 2025, 15:55
Пока у меня есть номер отслеживания, API UPS Track отлично работает. Я использую его, как описано на странице справки: < /p>
Код: Выделить всё
const inquiryNumber = "my tracking number";
$query = array(
"locale" => "en_US",
"returnSignature" => "false",
"returnMilestones" => "false",
"returnPOD" => "false"
);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_HTTPHEADER => [
"Authorization: Bearer ",
"transId: string",
"transactionSrc: testing"
],
CURLOPT_URL => "https://wwwcie.ups.com/api/track/v1/details/" . inquiryNumber . "?" . http_build_query($query),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
echo "cURL Error #:" . $error;
} else {
echo $response;
}
< /code>
и вернуть полный ответ, который включает в себя ссылочный номер, который является исходным идентификатором порядка: < /p>
[referenceNumber] => Array
(
[0] => Array
(
[type] => SHIPMENT
[number] => 657780
[code] => 01
[description] => Shipper Assigned General
)
[1] => Array
(
[type] => PACKAGE
[number] => 657780
[code] => 01
[description] => Shipper Assigned General
)
)
< /code>
Проблема в том, что мне нужно справиться с ситуацией, когда у меня нет номера отслеживания, у меня просто есть ссылочный номер (идентификатор заказа). UPS говорит, что у них есть API для этого, трек по номеру ссылки API. Когда я использую их код, как показано в примере: < /p>
const referenceNumber = "order number";
$query = array(
"locale" => "en_US",
"fromPickUpDate" => "currentDate-14",
"toPickUpDate" => "currentDate",
"refNumType" => "SmallPackage. Valid values: SmallPackage, fgv"
);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_HTTPHEADER => [
"Authorization: Bearer ",
"transId: string",
"transactionSrc: testing"
],
CURLOPT_URL => "https://wwwcie.ups.com/api/track/v1/reference/details/" . referenceNumber . "?" . http_build_query($query),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
echo "cURL Error #:" . $error;
} else {
echo $response;
}
< /code>
Если в данных запроса $ я использую < /p>
"refNumType" => "SmallPackage",
< /code>
Я получаю < /p>
{"trackResponse":{"shipment":[{"inquiryNumber":"657780","warnings":[{"code":"TX0002","message":"Tracking Information Not Available at this time"}]}]}}
< /code>
и если я использую < /p>
"refNumType" => "fgv",
< /code>
Я получаю < /p>
{"trackResponse":{"shipment":[{"warnings":[{"code":"TW0001","message":"Tracking Information Not Found"}]}]}}
Я не уверен, что я делаю неправильно.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -reference
1749300955
Anonymous
Пока у меня есть номер отслеживания, API UPS Track отлично работает. Я использую его, как описано на странице справки: < /p> [code]const inquiryNumber = "my tracking number"; $query = array( "locale" => "en_US", "returnSignature" => "false", "returnMilestones" => "false", "returnPOD" => "false" ); $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer ", "transId: string", "transactionSrc: testing" ], CURLOPT_URL => "https://wwwcie.ups.com/api/track/v1/details/" . inquiryNumber . "?" . http_build_query($query), CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; } < /code> и вернуть полный ответ, который включает в себя ссылочный номер, который является исходным идентификатором порядка: < /p> [referenceNumber] => Array ( [0] => Array ( [type] => SHIPMENT [number] => 657780 [code] => 01 [description] => Shipper Assigned General ) [1] => Array ( [type] => PACKAGE [number] => 657780 [code] => 01 [description] => Shipper Assigned General ) ) < /code> Проблема в том, что мне нужно справиться с ситуацией, когда у меня нет номера отслеживания, у меня просто есть ссылочный номер (идентификатор заказа). UPS говорит, что у них есть API для этого, трек по номеру ссылки API. Когда я использую их код, как показано в примере: < /p> const referenceNumber = "order number"; $query = array( "locale" => "en_US", "fromPickUpDate" => "currentDate-14", "toPickUpDate" => "currentDate", "refNumType" => "SmallPackage. Valid values: SmallPackage, fgv" ); $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer ", "transId: string", "transactionSrc: testing" ], CURLOPT_URL => "https://wwwcie.ups.com/api/track/v1/reference/details/" . referenceNumber . "?" . http_build_query($query), CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; } < /code> Если в данных запроса $ я использую < /p> "refNumType" => "SmallPackage", < /code> Я получаю < /p> {"trackResponse":{"shipment":[{"inquiryNumber":"657780","warnings":[{"code":"TX0002","message":"Tracking Information Not Available at this time"}]}]}} < /code> и если я использую < /p> "refNumType" => "fgv", < /code> Я получаю < /p> {"trackResponse":{"shipment":[{"warnings":[{"code":"TW0001","message":"Tracking Information Not Found"}]}]}} [/code] Я не уверен, что я делаю неправильно.> Подробнее здесь: [url]https://stackoverflow.com/questions/79626721/ups-rest-api-tracking-vs-track-by-reference[/url]