eshop第三方服务(WebhookClient)订阅eshop集成事件

前言

我站在一楼,有人骂我,我很生气。

我站在十楼,有人骂我,我听不清,还以为他在和我打招呼。

我站在一百楼,有人骂我,我放眼望去,只有风景。

eshop第三方服务(WebhookClient)订阅eshop集成事件

eshop自定义的请求头X-eshop-whtoken,防止伪造请求,WebhookClient模拟第三方服务订阅eshop的集成事件,通过Webhooks.API转发

WebhookClient配置X-eshop-whtoken

image-20251203001809206

启动WebhookClient,然后登录,点击Add webhook registration

image-20251203002247659

会跳转到AddWebhook.razor界面

image-20251203002506224

WebhookClient模拟的是订单支付的第三方客户端,让后把appsettings.json中WebhookClientOptions:Token的配置和当前WebhookClient运行地址/webhook-received发送到Webhooks.API进行保存

image-20251203003210898

Webhooks.API会把X-eshop-whtoken和地址保存到数据库

image-20251203003259211

订单管理的信息成功入库

  • Token:待验证的请求头
  • DestUrl:Webhooks.API收到订阅的集成事件后需要转发的第三方服务的地址

image-20251203003351487

Webhooks.API的订阅的集成事件处理器收到消息都会转发,目前只订阅了:

  • OrderStatusChangedToPaidIntegrationEvent:订单支付成功
  • OrderStatusChangedToShippedIntegrationEvent:订单已发货
  • ProductPriceChangedIntegrationEvent:商品价格变更

查询所有的WebhookType.CatalogItemPriceChange/WebhookType.OrderShipped/WebhookType.OrderPaid的订阅者,然后调用SendAll发送

image-20251203003711855

发送的时候会使用从数据库查询到订阅者的地址(DestUrl)和Token

image-20251203004324201

WebhookClient收到回调请求会验证token和自己配置appsettings.json中WebhookClientOptions:Token的是否匹配,匹配才通知页面更新UI

image-20251203004540952

WebhookClient会显示出订阅的消息,订阅的消息只保留在内存中,未持久化,所以页面关闭就没了

image-20251203004838135

📌 创作不易,感谢支持!

每一篇内容都凝聚了心血与热情,如果我的内容对您有帮助,欢迎请我喝杯咖啡☕,您的支持是我持续分享的最大动力!

💬 加入交流群(QQ群):576434538

微信打赏

posted @ 2025-12-05 23:45  peng_boke  阅读(33)  评论(0)    收藏  举报