ASP.NET Core 微信支付(三)【查询订单 APIV3】
官方参考资料
理论实战
官方提供两种查询订单的方式,一种是根据商户自己生成的订单号查询,一种方式是根据微信生成的订单号查询。而我使用的就是第一种方式。
调用微信支付的查询订单,需要生成签名,按照微信支付的接口规则构造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 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...
- asp.net mvc 微信支付代码分析(根据沐雪微信平台3.1商城业务来分析)
开发微信应用,微信支付是永远要面对的.现在的微信支付相对以往已经很稳定,很少出现诡异情况.再加上无数人开发的经验分享,现在开发微信支付已经没什么难度了. 我这次主要是想基于沐雪微信平台的微商城业务来分 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
- asp.net core 微信扫码支付(扫码支付,H5支付,公众号支付,app支付)之1
2018-08-13更新生成二维码的方法 在做微信支付前,首先要了解你需要什么方式的微信支付,目前本人做过的支付包含扫码支付.H5支付.公众号支付.App支付等,本人使用的是asp.net mvc c ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)
原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...
- .net core 支付宝,微信支付 三
支付回调: 获取HttpRequest的body内容,之前使用Request.Form有时候数据请求不到(可能是跟.net core 版本有关?) var s = HttpRequest.Body; ...
- Asp.net Core 微信小程序支付
最近要做一个微信小程序支付的功能 在网上找了一下 .net Core做微信支付的博客 和 demo 几乎没有 自己研究了好几天 参考了 很多 大牛的博客 勉强做出来了 因为参数都没有 比如 opid ...
- asp.net core 微信APP支付(扫码支付,H5支付,公众号支付,app支付)之4
微信app支付需要以下参数,类封装如下 public class WxPayModel { /// <summary> /// 应用ID /// </summary> publ ...
- asp.net core 微信公众号支付(扫码支付,H5支付,公众号支付,app支付)之3
在微信公众号中访问手机网站,当需要调用支付时候无法使用H5支付,只有使用微信公众号支付,使用公众号支付用户必须关注该公众号同时该公众号必须开通公众号支付功能. 1.获取用户的OpenId ,参考之前写 ...
随机推荐
- [转帖]CentOS 7 下用 firewall-cmd / iptables 实现 NAT 转发供内网服务器联网
https://www.cnblogs.com/hope250/p/8033818.html 自从用 HAProxy 对服务器做了负载均衡以后,感觉后端服务器真的没必要再配置并占用公网IP资源.而且由 ...
- [转帖]高并发系统中的尾延迟Tail Latency
开发和运维高并发系统的工程师可能都有过类似经验,明明系统已经调优完毕,该异步的异步,该减少互斥的地方引入无锁,该减少IO的地方更换引擎或者硬件,该调节内核的调节相应参数,然而,如果在系统中引入实时监控 ...
- 【转帖】基于官方rpm包方式安装Oracle19c
https://blog.whsir.com/post-5489.html 本文基于Centos7.x环境,通过官方提供的rpm包来安装19c 1.下载Oracle19c安装包 https://w ...
- [转帖]总结:Servlet
一.背景 开发了很久的web服务,使用了很多web框架,都忘记web技术最原始的模样了,今天来回顾下. 二.Servlet是什么? Servlet是sun公司提供的一门用于开发动态web资源的技术.我 ...
- 申威CPU的简单知识梳理
摘要 最近有客户要用申威服务器了 自己很早之前简单测试过相关的CPU的服务器 但是感觉很多东西都不是很系统. 今天简单收集一下资料 希望对以后的工作有所帮助 申威CPU的创始 申威是解放军总参谋部第五 ...
- React中函数组件与类组件的两种使用
React 创建组件的两种方式 函数组件:使用js函数创建的组件 约定1:函数名称必须以大写字母开头 约定2:函数组件必须要有返回值. 如果返回值为null.表示不渲染任何内容. return nul ...
- 【JS 逆向百例】Ether Rock 空投接口 AES256 加密分析
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...
- 我手写了一个RPC框架。成功帮助读者斩获字节、阿里等大厂offer。
本着开源精神,本项目README已经同步了英文版本.另外,项目的源代码的注释大部分也修改为了英文. 如访问速度不佳,可放在 Gitee 地址:https://gitee.com/SnailClimb/ ...
- NLP领域任务如何选择合适预训练模型以及选择合适的方案【规范建议】【ERNIE模型首选】
1.常见NLP任务 信息抽取:从给定文本中抽取重要的信息,比如时间.地点.人物.事件.原因.结果.数字.日期.货币.专有名词等等.通俗说来,就是要了解谁在什么时候.什么原因.对谁.做了什么事.有什么结 ...
- Python二分法
二分法 尽管二分搜索通常优于顺序搜索,但当n较小时,排序引起的额外开销可能并不划算.实际上应该始终考虑,为了提高搜索效率,额外排序是否值得.如果排序一次后能够搜索多次,那么排序的开销不值一提.然而,对 ...