ASP.NET Core 微信支付(三)【查询订单 APIV3】
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:50
官方参考资料 理论实战
官方提供两种查询订单的方式,一种是根据商户自己生成的订单号查询,一种方式是根据微信生成的订单号查询。而我使用的就是第一种方式。
调用微信支付的查询订单,需要生成签名,按照微信支付的接口规则构造http的header。
代码数据实体映射类
public class WxPayStatusRespModel
{<br/> /// <summary><br/> /// 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一<br/> /// </summary><br/> public string out_trade_no { get; set; }/// <summary>
/// 微信支付系统生成的订单号。<br/> /// </summary><br/> public string transaction_id { get; set; }/// <summary>
/// 交易类型,枚举值:<br/> /// JSAPI:公众号支付<br/> /// NATIVE:扫码支付<br/> /// APP:APP支付<br/> /// MICROPAY:付款码支付<br/> /// MWEB:H5支付<br/> /// FACEPAY:刷脸支付<br/> /// </summary><br/> public string trade_type { get; set; }/// <summary>
/// 交易状态,枚举值:<br/> /// SUCCESS:支付成功<br/> /// REFUND:转入退款<br/> /// NOTPAY:未支付<br/> /// CLOSED:已关闭<br/> /// REVOKED:已撤销(付款码支付)<br/> /// USERPAYING:用户支付中(付款码支付)<br/> /// PAYERROR:支付失败(其他原因,如银行返回失败)<br/> /// ACCEPT:已接收,等待扣款<br/> /// </summary><br/> public string trade_state { get; set; }/// <summary>
/// 交易状态描述<br/> /// </summary><br/> public string trade_state_desc { get; set; }/// <summary>
/// 支付者信息<br/> /// </summary><br/> public WxPayerModel payer { set; get; }<br/> }/// <summary>
/// 支付用户信息实体<br/> /// </summary><br/> public class WxPayerModel<br/> {<br/> /// <summary><br/> /// 用户在直连商户appid下的唯一标识。<br/> /// </summary><br/> public string openid { get; set; }<br/> }</pre>查询订单接口请求代码
var url = $“https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{orderNumber}?mchid={WxPayConst.mchid}";
var client = new HttpClient(new HttpHandler());<br/> var resp = await client.GetAsync(url);<br/> NlogHelper.Debug("查询订单状态");<br/> var respStr = await resp.Content.ReadAsStringAsync();//这里就是微信支付查询订单返回的json数据了,自己进行解析就可以了<br/> var payModel = respStr.ToObject<WxPayStatusRespModel>();</pre>类型转换工具方法
/// <summary>
/// json字符串转化为相应的类型<br/> /// </summary><br/> /// <typeparam name="T">转化后的类型</typeparam><br/> /// <param name="json">json字符串</param><br/> /// <returns>转化后的类型</returns><br/> public static T ToObject<T>(this string json)<br/> {<br/> return json == null ? default(T) : JsonConvert.DeserializeObject<T>(json);<br/> }</pre>
相关文章
-
ASP.NET Core 之 Identity 入门(一)
ASP.NET Core 之 Identity 入门(一)
- 互联网
- 2026年04月04日
-
ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作
ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作
- 互联网
- 2026年04月04日
-
ASP.NET Core 中文文档 第三章 原理(8)日志
ASP.NET Core 中文文档 第三章 原理(8)日志
- 互联网
- 2026年04月04日
-
ASP.Net Core 使用Redis实现分布式缓存
ASP.Net Core 使用Redis实现分布式缓存
- 互联网
- 2026年04月04日
-
ASP.NET Core 使用 Redis 实现分布式缓存:Docker
ASP.NET Core 使用 Redis 实现分布式缓存:Docker
- 互联网
- 2026年04月04日
-
asp.net core 实战之 redis 负载均衡和“高可用“实现
asp.net core 实战之 redis 负载均衡和“高可用“实现
- 互联网
- 2026年04月04日








