你整合了一个支付网关,一个CI供应商,或者一个发送webhooks的SaaS产品——现在有些东西不起作用了.
有效载荷没有按文件上说的那样到达 信头不见了,或者签名验证一直失败 那你怎么办?
如果你和我们大多数人一样,你就能找到其中之一: 添加一个并重新部署, 只为了看到一个请求 旋转并连接一个被丢弃的快递线路 Dig通过你的供应商的仪表板,希望他们记录原始载荷 设定一个断点,在你放弃所有这一切之前,再祈祷网络火力, 解决一个非常简单的问题:你只需要看到一次, 一个请求的模样—— 方法、标题、查询参数和身体—— 不碰你的代码库或基础设施。
实际问题:webhooks默认是看不见的 不同于一个正常的API呼叫你让自己,一个webhook是发送给你的东西.
你无法控制请求,当它击中你的处理器时,你通常已经写入了假设有效载荷形状的代码.
如果这个假设是错误的,你就在调试盲——增加记录,重新部署,并等待下一个事件起火,一次一个猜测.
签名验证(Stripe, GitHub, Shopify等) 更糟糕的是, 您需要看到精确的原始头和正文来调试您没有的不匹配第三方集成, 您不能只给发送方本地开发添加一个日志行, 发送方甚至不能首先到达 HTTP 请求的可支配收件箱 。
Webhook / 请用 samtoolkit.com 上的 Bin 工具以同样的方式解决了这个问题,比如请用 Bin 或 Webhook 的工具.
网站确实如此,但作为一个免费的、不签名的用途:单击新建一个 bin,获取一个独特的 URL 返回,然后将您的网页浏览或集成指向它。
从那里,每一个点击URL的请求都会被捕捉到并显示在现场——方法,全头,查询参数和身体——当它到达时.
没有调用,没有ngrok隧道,没有猜测。
典型的工作流程: 创建一个 bin —— 你得到一个独特的,可支配的 URL , 即刻将 Webhook 标注在它上 —— 在您真正的端点存在之前将它暂时交换到您的服务商的仪表板上, 或者在构建集成之前使用它 触发事件 —— 测试付款, 推动重播, 无论什么点点火 检查原始请求 —— 查看提供商实际发送的确切头条、 身体和查询字符串, 而不是文件上所说的用数据的真实形状给您的处理器固定, 然后将 Webhook 指回您的实际端点 其中保存了最长时间的签名/HMAC验证错误——比较提供商发送的原始头壳和体字节与您代码所散开的"哪个字段实际通过"——一些提供商记录了一个理想化的有效载荷,该有效载荷与边缘情况下的船舶不符(重复,测试模式,可选字段) 在后端路由存在之前构建一个集成——首先抓取真实流量,写出处理器来匹配,而不是猜测前面的外形"一出"调试——你不需要在你的出品码库中留下一个调试路由,因为只有一次调试,因为它只是URL,它与任何能够提出HTTP请求的东西配合,而不只是网络呼喊.
测试客户端向外发送的API呼叫,检查表单动作实际提交的内容,验证重定向包括正确的查询参数——所有同一种工具. samtoolkit.com的一部分——~30免费,隐私第一开发商公用事业.
宾斯是发光的,不绑入账户;不要通过临时调试的URL发送任何敏感内容.