.net core 微信支付-----订单关闭
首先看一下官方说明:
官方给了两个参数,但是请求示例却只给了商户号,这个我也没搞懂,但是看上面的url让传入的是订单号。我估计它的意思是也要把商户号加上,因为请求参数中给了两个参数,我们在请求的时候确实加入的商户号和订单号。
订单关闭信息的Model:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class CloseOrder { /// <summary> /// 错误的编码 /// </summary> public string code { set ; get ; } /// <summary> /// 具体的错误信息和原因 /// </summary> public string message { set ; get ; } /// <summary> /// http状态码 /// NoContent 关闭成功 /// BadRequest 关闭失败 /// </summary> public string StatusCode { set ; get ; } /// <summary> /// 订单是否关闭成功 /// </summary> public bool Success => StatusCode == "NoContent" && string .IsNullOrEmpty(code); } |
订单关闭接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /// <summary> /// 订单关闭 /// </summary> /// <param name="OrderSno">订单号</param> /// <returns></returns> [HttpPost( "Close" )] public async Task<CloseOrder> Close( string OrderSno) { var url = $ "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/" +OrderSno+ "/close" ; var client = new HttpClient( new HttpHandler()); var bodyJson = new StringContent( new { mchid = WeChatConfig.mchid }.ToJson(), Encoding.UTF8, "application/json" ); var resp = await client.PostAsync(url, bodyJson); var respStr = await resp.Content.ReadAsStringAsync(); var closeModel = new CloseOrder(); if (! string .IsNullOrEmpty(respStr)) closeModel = respStr.ToObject<CloseOrder>(); return closeModel; } |
效果图:
上图结果已经返回了,当然当前这个订单已经支付了,所以才返回这样的信息的。
链接:https://pan.baidu.com/s/1CVtfbQ4mVk8saPZSZWTATg?pwd=72bb
提取码:72bb
.Net Core
标签:
.Net Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)