Документация API🔑 Алгоритм подписи

Основные шаги

  1. Предположим, что все отправляемые или получаемые данные образуют набор M
  2. Параметры из набора M, которые участвуют в подписи, необходимо отсортировать по имени параметра в порядке возрастания ASCII (лексикографический порядок)
  3. Сформировать строку stringA в формате URL-параметров (key1=value1&key2=value2...)
  4. В конце stringA добавить &appSecret=ключ, чтобы получить строку stringSignTemp
  5. Выполнить операцию MD5 для stringSignTemp
  6. Преобразовать полученную строку полностью в верхний регистр, чтобы получить итоговое значение signature

Важные правила

Пожалуйста, обратите особое внимание на следующие правила:

  • Параметры должны быть отсортированы по ASCII-коду имени параметра (лексикографический порядок)
  • Имена параметров чувствительны к регистру
  • Параметр signature, передаваемый в запросе, не участвует в формировании подписи; сгенерированная подпись используется для проверки значения signature
  • Интерфейс может добавлять новые поля, поэтому при проверке подписи необходимо поддерживать расширенные параметры

Пример (PHP)

Предположим, что передаются следующие параметры:

appId: 12345
chainType: 1
merchantOrderNo: 123123123123
productName: Goods

Шаг 1: Сортировка параметров

Удалите параметры, которые не участвуют в подписи, затем отсортируйте параметры, участвующие в подписи, в формате key=value:

$stringA = 'appId=12345&chainType=1&merchantOrderNo=123123123123';

Шаг 2: Добавление секретного ключа

$stringSignTemp = $stringA.'&appSecret=SECRET_KEY';

Шаг 3: MD5 шифрование

$signature = md5($stringSignTemp);

Шаг 4: Преобразование в верхний регистр

$signature = strtoupper($signature);