opennode: fix webhook handling (json -> urlencoded data).
This commit is contained in:
parent
d75c69cd10
commit
8f1ae1646e
1 changed files with 5 additions and 9 deletions
|
|
@ -102,17 +102,13 @@ class OpenNodeWallet(Wallet):
|
||||||
yield value
|
yield value
|
||||||
|
|
||||||
async def webhook_listener(self):
|
async def webhook_listener(self):
|
||||||
text: str = await request.get_data()
|
data = await request.form
|
||||||
data = json.loads(text)
|
if "status" not in data or data["status"] != "paid":
|
||||||
if type(data) is not dict or "event" not in data or data["event"].get("name") != "wallet_receive":
|
|
||||||
return "", HTTPStatus.NO_CONTENT
|
return "", HTTPStatus.NO_CONTENT
|
||||||
|
|
||||||
charge_id = data["id"]
|
charge_id = data["id"]
|
||||||
if data["status"] != "paid":
|
x = hmac.new(self.auth["Authorization"].encode("ascii"), digestmod="sha256")
|
||||||
return "", HTTPStatus.NO_CONTENT
|
x.update(charge_id.encode("ascii"))
|
||||||
|
|
||||||
x = hmac.new(self.auth["Authorization"], digestmod="sha256")
|
|
||||||
x.update(charge_id)
|
|
||||||
if x.hexdigest() != data["hashed_order"]:
|
if x.hexdigest() != data["hashed_order"]:
|
||||||
print("invalid webhook, not from opennode")
|
print("invalid webhook, not from opennode")
|
||||||
return "", HTTPStatus.NO_CONTENT
|
return "", HTTPStatus.NO_CONTENT
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue