Создание подписи
Подготовка (Preparation)
Продавцам необходимо зарегистрировать номер продавца и создать платежное приложение через панель управления продавца (бэкофис), чтобы получить APP_ID и APP_SECRECT.
Условие (Condition)
Все интерфейсы метода POST в этом документе требуют проверки подписи, остальные интерфейсы пока не требуют проверки.
Создание (Generation)
Строка подписи состоит из четырех строк, по одному параметру на строку. Строка заканчивается на \n (перенос строки, значение кодировки ASCII равно 0x0A), и не добавляйте \n в последнюю строку. Если сам параметр заканчивается на \n, вам также нужно добавить \n.
URL\n
Request timestamp\n
Request random string\n
Request message bodyВозьмем в качестве примера запрос заказа (order inquiry).
Первый шаг — получить абсолютный URL-адрес запроса и удалить часть доменного имени, чтобы получить участвующий подписанный URL. Если в запросе есть параметры запроса, к URL-адресу следует добавить '? ' и соответствующую строку запроса.
/v1/transaction/queryВторой шаг — получить текущую временную метку (в миллисекундах) системы при инициировании запроса. То есть общее количество секунд с 00:00:00 GMT 1 января 1970 года до настоящего времени в качестве временной метки запроса. Платформа откажется обрабатывать запросы, сделанные давно, пожалуйста, следите за точностью времени в собственной системе продавца.
Третий шаг — сгенерировать 32-битную случайную строку (random
Четвертый шаг — получить тело сообщения запроса в самом запросе (request body).
Пятый шаг — составить строку подписи запроса в соответствии с предыдущими правилами следующим образом:
Шифрование (Encryption)
Возьмем в качестве примера процесс шифрования javascript:
Пример после шифрования:
Объединение (Concatenate)
Формат объединения информации о подписи следующий:
app_id=APP_ID, mch_id=ID Продавца, nonce_str=Случайная строка, созданная на шаге 3, timestamp=Временная метка, созданная на шаге 2, signature=Криптографическая строка подписи.
HTTP-заголовок (HTTP header)
API документа передает подпись через HTTP-заголовок Authorization. Authorization состоит из двух частей: типа аутентификации и информации о подписи. В настоящее время тип аутентификации поддерживает только TTPAY-AES-256-ECB.
Заголовок авторизации следующий: (Примечание: это пример, так как верстка может содержать переносы строк, фактические данные должны быть в одной строке)
Наконец, мы можем создать HTTP-запрос, который содержит подпись.
Демонстрационный код (Demo code)
Последнее обновление