ASP.NET Core 微信支付(三)【查询订单 APIV3】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ASP.NET Core 微信支付(三)【查询订单 APIV3】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2342字,纯文字阅读大概需要4分钟。
内容图文
![ASP.NET Core 微信支付(三)【查询订单 APIV3】](/upload/InfoBanner/zyjiaocheng/602/7f0bfe7f10dd44488923df1ea118e582.jpg)
官方参考资料
理论实战
官方提供两种查询订单的方式,一种是根据商户自己生成的订单号查询,一种方式是根据微信生成的订单号查询。而我使用的就是第一种方式。
调用微信支付的查询订单,需要生成签名,按照微信支付的接口规则构造http的header。
生成签名可以参考我的文章:《ASP.NET Core 微信支付(一)【统一下单 APIV3】》、《ASP.NET Core 微信支付(二)【 发布到服务器上签名加密时报错:系统找不到指定的文件 APIV3】》。
代码
数据实体映射类
public class WxPayStatusRespModel { /// <summary> /// 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一 /// </summary> public string out_trade_no { get; set; } /// <summary> /// 微信支付系统生成的订单号。 /// </summary> public string transaction_id { get; set; } /// <summary> /// 交易类型,枚举值: /// JSAPI:公众号支付 /// NATIVE:扫码支付 /// APP:APP支付 /// MICROPAY:付款码支付 /// MWEB:H5支付 /// FACEPAY:刷脸支付 /// </summary> public string trade_type { get; set; } /// <summary> /// 交易状态,枚举值: /// SUCCESS:支付成功 /// REFUND:转入退款 /// NOTPAY:未支付 /// CLOSED:已关闭 /// REVOKED:已撤销(付款码支付) /// USERPAYING:用户支付中(付款码支付) /// PAYERROR:支付失败(其他原因,如银行返回失败) /// ACCEPT:已接收,等待扣款 /// </summary> public string trade_state { get; set; } /// <summary> /// 交易状态描述 /// </summary> public string trade_state_desc { get; set; } /// <summary> /// 支付者信息 /// </summary> public WxPayerModel payer { set; get; } } /// <summary> /// 支付用户信息实体 /// </summary> public class WxPayerModel { /// <summary> /// 用户在直连商户appid下的唯一标识。 /// </summary> public string openid { get; set; } }
查询订单接口请求代码
var url = $"https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{orderNumber}?mchid={WxPayConst.mchid}"; var client = new HttpClient(new HttpHandler()); var resp = await client.GetAsync(url); NlogHelper.Debug("查询订单状态"); var respStr = await resp.Content.ReadAsStringAsync();//这里就是微信支付查询订单返回的json数据了,自己进行解析就可以了 var payModel = respStr.ToObject<WxPayStatusRespModel>();
类型转换工具方法
/// <summary> /// json字符串转化为相应的类型 /// </summary> /// <typeparam name="T">转化后的类型</typeparam> /// <param name="json">json字符串</param> /// <returns>转化后的类型</returns> public static T ToObject<T>(this string json) { return json == null ? default(T) : JsonConvert.DeserializeObject<T>(json); }
内容总结
以上是互联网集市为您收集整理的ASP.NET Core 微信支付(三)【查询订单 APIV3】全部内容,希望文章能够帮你解决ASP.NET Core 微信支付(三)【查询订单 APIV3】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。