Аутентифицируйте woocommerce webhook, используя python (фреймворк web2py)
Я ищу документацию о том, как аутентифицировать запросы веб-хуков. Официальная документация просто описывает процесс без необходимых подробностей, и все мои тесты провалились на данный момент.
По сути, это код, который я реализовал на данный момент, но я не уверен, что "полезная нагрузка", рассматриваемая в тесте на кодирование, является правильной. Я использовал тело запроса, отделенное от информации заголовка.
import hmac, hashlib, base64
class AuthenticationError(Exception):
""" """
class WooHook(object):
"""docstring for WooHook."""
@staticmethod
def _auth_method_1_(body, signature, secret):
_secret = secret.encode('utf-8')
_body = body.encode('utf-8')
dig = hmac.new(secret, msg=_body, digestmod=hashlib.sha256).digest()
decoded = base64.b64encode(dig).decode('utf-8')
return (signature == decoded, decoded,)
@classmethod
def check(cls, *args, **kwargs):
check, result = cls._auth_method_1_(*args, **kwargs)
if not check:
raise AuthenticationError(result)