Хэш-диспетчер webhook отличается от принимающего клиента при перемещении в рабочую среду на кластере k8s. тогда как на локальном они работают отлично.
Я реализовал диспетчер webhook, который генерирует подпись HMAC-SHA1 тела json перед отправкой. при тестировании на локальном компьютере подпись и проверенный дайджест идентичны, когда я развертываю один и тот же фрагмент кода, это диспетчер для модуля k8s, тот же самый json, используемый для теста, генерирует другой хэш из клиента-получателя webhook
Пример json
{
"event": "review.manual",
"data": {
"recommendation": "accept",
"author": "Ebot Tabi",
"datetime": "02 Oct, 2019, 09:41AM",
"transaction": {
"transaction_score": 37,
"transaction_total_price": "4,809.00",
"is_fraud": "no",
"transaction_id": "zduaevejkjvnjo",
"customer_id": "sedeupdgixswil"
},
"customer": {
"first_name": "Joseph",
"last_name": "Jones",
"email": "petersonrobert@gmail.com",
"customer_id": "sedeupdgixswil"
}
}
}
Python-код для генерации хеша:
def generate_digest(data, secret):
return hmac.new(secret.encode("utf-8"), msg=data, digestmod=hashlib.sha1).hexdigest()