Создать токен с помощью API Ali Express [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Создать токен с помощью API Ali Express [закрыто]

Сообщение Anonymous »

Я интегрирую поток OAuth2 открытой платформы AliExpress в свое приложение. Когда я пытаюсь обменять код авторизации на токен доступа с помощью 

Код: Выделить всё

/rest/auth/token/create
 конечная точка, я всегда получаю следующую ошибку:

Код: Выделить всё

{
"type": "ISV",
"code": "IllegalTimestamp",
"message": "The timestamp is invalid or malformed",
"request_id": "requestidxxxxxxxxxxxxxxxx"
}
Я вызываю метод 

Код: Выделить всё

fetchAccessTokenManual
 из моего класса обслуживания 

Код: Выделить всё

AliExpressSdkService
, который вызывается непосредственно из моего контроллера.
Вот соответствующий код (с анонимизированными конфиденциальными значениями):
В моем сервисе: [*]Я сортирую все параметры по порядку ASCII и объединяю их в соответствии с документацией.

[*]Я генерирую строку для подписи как: 

Код: Выделить всё

/auth/token/create
 + отсортированные параметры (ключ + значение, без секрета в конце)

[*]Я генерирую подпись как: 

Код: Выделить всё

strtoupper(hash_hmac('sha256', $strToSign, [MY_APP_SECRET]))
[*]Я добавляю подпись к параметрам и создаю URL-адрес GET.

[*]Я вызываю API сразу после создания временной метки.


В моем контроллере:
  • Я вызываю метод службы следующим образом:

    Код: Выделить всё

    $response = $aliExpressSdkService->fetchAccessTokenManual($code);
Подробности моего запроса: Пример URL-адреса запроса:

Код: Выделить всё

https://api-sg.aliexpress.com/rest/auth/token/create?app_key=\[MY_APP_KEY]&code=[AUTH_CODE]&sign_method=sha256&timestamp=2025-11-07T09%3A28%3A25Z&sign=[GENERATED_SIGNATURE]](vscode-file://vscode-app/snap/code/211/usr/share/code/resources/app/out/vs/code/electron-browser/workbench/workbench.html)
Что я уже проверил:
  • Формат временной метки точно соответствует вашей документации.
  • Временная метка генерируется непосредственно перед запросом.
  • Время сервера синхронизируется с UTC.
  • Я пробовал оба варианта 

    Код: Выделить всё

    sha256 и hmac-sha256
     для 

    Код: Выделить всё

    sign_method
    .
  • Я удалил все необязательные параметры.
Несмотря на все это, я всегда получаю 

Код: Выделить всё

IllegalTimestamp
 ошибка.
Не могли бы вы уточнить:
  • Существует ли какое-либо недокументированное требование к формату или значению метки времени?
  • Известна ли проблема с 

    Код: Выделить всё

    /auth/token/create
     конечная точка?
  • Можете ли вы предоставить рабочий пример или дополнительные рекомендации?


Подробнее здесь: https://stackoverflow.com/questions/798 ... li-express
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»