ກວດລາຍເຊັນ Webhook
ຊອກຫາສາເຫດທີ່ webhook "ກວດບໍ່ຜ່ານ": ກວດລາຍເຊັນຂອງ Meta/WhatsApp, Stripe, GitHub ແລະ Telegram ດ້ວຍ secret ແລະ body ດິບຂອງທ່ານ.
ເຄື່ອງມືຂອງພວກເຮົາເຮັດວຽກໃນບຣາວເຊີຂອງທ່ານ — ສິ່ງທີ່ທ່ານວາງ ຫຼື ເປີດ ບໍ່ຖືກອັບໂຫຼດມາຫາພວກເຮົາ ແລະ ພວກເຮົາບໍ່ເກັບໄວ້.
ຂໍ້ຜິດພາດທີ່ພົບເລື້ອຍ
- ກວດ body ທີ່ຖືກແປງຄືນໃໝ່: JSON.parse ແລ້ວ JSON.stringify ຈະປ່ຽນຍະຫວ່າງ, ລຳດັບ key ແລະ escape. ກະລຸນາອ່ານໄບຕ໌ດິບ (ເຊັ່ນ express.raw(), request.body() ກ່ອນ parse).
- ເພີ່ມ ຫຼື ຕັດການຂຶ້ນແຖວທ້າຍ ຫຼື ຍະຫວ່າງ ເວລາສຳເນົາ, ບັນທຶກ log ຫຼື ອ່ານ body.
- ຖອດລະຫັດ body ຜິດ encoding — ຂໍ້ຄວາມທີ່ບໍ່ແມ່ນ ASCII ເຊັ່ນພາສາລາວ ຕ້ອງຄົງເປັນໄບຕ໌ UTF-8.
- ໃຊ້ secret ຜິດ: Meta ໃຊ້ App Secret (ບໍ່ແມ່ນ verify token ຫຼື access token); Stripe ໃຊ້ secret whsec_ ຂອງ endpoint ເຊິ່ງແຕກຕ່າງກັນລະຫວ່າງໂໝດທົດສອບກັບໂໝດຈິງ ແລະ ລະຫວ່າງ endpoint.
- ທຽບກັບ header ຜິດໂຕ (ເຊັ່ນ X-Hub-Signature ແບບ SHA-1 ເກົ່າ) ຫຼື ລືມຄຳນຳໜ້າ "sha256=".
- Stripe: ໂມງເຊີບເວີບໍ່ກົງ ຫຼື ສົ່ງເຫດການເກົ່າຊ້ຳ ເຮັດໃຫ້ກວດ timestamp ບໍ່ຜ່ານ ເຖິງວ່າລາຍເຊັນຖືກຕ້ອງ.
- Telegram: secret_token ໃຊ້ໄດ້ສະເພາະ A–Z, a–z, 0–9, _ ແລະ - ບໍ່ເກີນ 256 ຕົວອັກສອນ.