Проверка подписи
Объединение (Concatenate)
Во-первых, продавец получает следующую информацию из ответа.
Временная метка ответа в HTTP-заголовке
TTPay-Timestamp.Случайная строка ответа в HTTP-заголовке
TTPay-Nonce.Тело ответа (Response Body). Проверьте интерфейс в соответствии с порядком, возвращенным интерфейсом. Неверный порядок приведет к сбою проверки.
Строка подписи состоит из трех строк, по одному параметру на строку. Строка заканчивается на \n (перенос строки, значение кодировки ASCII равно 0x0A), и не добавляйте \n в последнюю строку. Если сам параметр заканчивается на \n, вам также нужно добавить \n.
Reply timestamp\n
Reply random string\n
Reply message bodyНапример, HTTP-сообщение с ответом выглядит следующим образом:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 02 Apr 2019 12:59:40 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2204
Connection: keep-alive
Keep-Alive: timeout=8
Content-Language: zh-CN
TTPay-Nonce: c5ac7061fccab6bf3e254dcf98995b8c
TTPay-Signature: CtcbzwtQjN8rnOXItEBJ5aQFSnIXESeV28Pr2YEmf9wsDQ8Nx25ytW6FXBCAFdrr0mgqngX3AD9gNzjnNHzSGTPBSsaEkIfhPF4b8YRRTpny88tNLyprXA0GU5ID3DkZHpjFkX1hAp/D0fva2GKjGRLtvYbtUk/OLYqFuzbjt3yOBzJSKQqJsvbXILffgAmX4pKql+Ln+6UPvSCeKwznvtPaEx+9nMBmKu7Wpbqm/+2ksc0XwjD+xlvlECkCxfD/OJ4gN3IurE0fpjxIkvHDiinQmk51BI7zQD8k1znU7r/spPqB+vZjc5ep6DC5wZUpFu5vJ8MoNKjCu8wnzyCFdA==
TTPay-Timestamp: 1554209980
Cache-Control: no-cache, must-revalidate
{"app_id":"xxxx"}Тогда строка подписи будет следующей:
Ответ (Reply)
Подпись ответа tokenpay передается через HTTP-заголовок TTPay-Signature. (Примечание: это пример, так как верстка может содержать переносы строк, фактические данные должны быть в одной строке)
Оценка (Judgment)
Используйте метод AES-256-ECB для создания подписей (вы можете ссылаться на создание подписи). Сгенерированная подпись сравнивается с подписью ответа. Если они не совпадают, данные были подделаны.
Последнее обновление