WebHook和API 及.NetFramework 实现

Webhook 是一个 API 概念,是微服务 API 的使用范式之一,也被称为反向 API,即前端不主动发送请求,完全由后端推送;

常见于 微信或支付宝的支付回调,简道云的数据推送等。

 

基于web API (v2.1)

 

实现方式    :   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<em id="__mceDel">        [HttpPost] <br>     [Route("api/callback")]
        public async Task<dynamic> CallBackByJdy()
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            try
            {
                var stream = new MemoryStream();
                await Request.Content.CopyToAsync(stream);
                stream.Seek(0, SeekOrigin.Begin);
                var body = await new StreamReader(stream).ReadToEndAsync();//获取回调的请求体 body;<br>          <br>          //可对body进行处理 业务逻辑code<br>
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
                foreach (var value in response.RequestMessage.Headers)
                {
                    dic.Add(value.Key, value.Value.First());
                    //获取请求头存入dic字典中
                }<br>
                var uri = response.RequestMessage.RequestUri;//获取请求地址
                var nonce = HttpUtility.ParseQueryString(uri.Query).Get("nonce");//请求地址中包含的参数
                var timestamp = HttpUtility.ParseQueryString(uri.Query).Get("timestamp");
                var signature = dic.FirstOrDefault(t=>t.Key=="X-JDY-Signature").Value;//读取字典中的请求头数据
                return ResponseMessage(response);//返回响应
            }
            catch (Exception ex)
            {
                HttpResponseMessage message = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "fail", ex);
                return ResponseMessage(message);
                //throw;
            }
        }
</em>

  

posted @   第八种格调的男人  阅读(365)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版
点击右上角即可分享
微信分享提示