官方参考资料

  查询订单

理论实战

  官方提供两种查询订单的方式,一种是根据商户自己生成的订单号查询,一种方式是根据微信生成的订单号查询。而我使用的就是第一种方式。

  调用微信支付的查询订单,需要生成签名,按照微信支付的接口规则构造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】的更多相关文章

  1. ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...

  2. asp.net mvc 微信支付代码分析(根据沐雪微信平台3.1商城业务来分析)

    开发微信应用,微信支付是永远要面对的.现在的微信支付相对以往已经很稳定,很少出现诡异情况.再加上无数人开发的经验分享,现在开发微信支付已经没什么难度了. 我这次主要是想基于沐雪微信平台的微商城业务来分 ...

  3. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  4. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...

  5. asp.net core 微信扫码支付(扫码支付,H5支付,公众号支付,app支付)之1

    2018-08-13更新生成二维码的方法 在做微信支付前,首先要了解你需要什么方式的微信支付,目前本人做过的支付包含扫码支付.H5支付.公众号支付.App支付等,本人使用的是asp.net mvc c ...

  6. ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)

    原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...

  7. .net core 支付宝,微信支付 三

    支付回调: 获取HttpRequest的body内容,之前使用Request.Form有时候数据请求不到(可能是跟.net core 版本有关?) var s = HttpRequest.Body; ...

  8. Asp.net Core 微信小程序支付

    最近要做一个微信小程序支付的功能 在网上找了一下 .net Core做微信支付的博客 和 demo 几乎没有 自己研究了好几天 参考了 很多 大牛的博客 勉强做出来了  因为参数都没有 比如 opid ...

  9. asp.net core 微信APP支付(扫码支付,H5支付,公众号支付,app支付)之4

    微信app支付需要以下参数,类封装如下 public class WxPayModel { /// <summary> /// 应用ID /// </summary> publ ...

  10. asp.net core 微信公众号支付(扫码支付,H5支付,公众号支付,app支付)之3

    在微信公众号中访问手机网站,当需要调用支付时候无法使用H5支付,只有使用微信公众号支付,使用公众号支付用户必须关注该公众号同时该公众号必须开通公众号支付功能. 1.获取用户的OpenId ,参考之前写 ...

随机推荐

  1. [转帖]拜托!面试请不要再问我Spring Cloud底层原理

    https://www.cnblogs.com/jajian/p/9973555.html 概述# 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大 ...

  2. [转帖]使用 Crash 工具分析 Linux dump 文件

    前言 Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪.开发者认为,内核如果发生了错误,就不应该继续运行.因此内核发生错误时,它的行为通常被设 ...

  3. 定位解析一个因脚本劫持导致webpack动态加载异常的问题

    问题描述 项目现场的前端项目在点击顶部的导航栏切换不同的模块时,会有小概率出现模块加载报错的情况: 我们的前端项目里是有基于react-loadable做的懒加载的,上图的12.be789340.ch ...

  4. React中函数组件与类组件的两种使用

    React 创建组件的两种方式 函数组件:使用js函数创建的组件 约定1:函数名称必须以大写字母开头 约定2:函数组件必须要有返回值. 如果返回值为null.表示不渲染任何内容. return nul ...

  5. 【0基础学爬虫】爬虫基础之HTTP协议的基本原理介绍

    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶.逆向相关文章,为实现从易到难全方位覆盖,特设[0基础学爬 ...

  6. (数据科学学习手札122)Python+Dash快速web应用开发——内网穿透篇

    由我开源的先进Dash组件库feffery-antd-components正处于早期测试版本阶段,欢迎前往官网http://fac.feffery.tech/了解更多 1 简介 这是我的系列教程Pyt ...

  7. TienChin 活动管理-添加活动接口

    ActivityController @PreAuthorize("hasPermission('tienchin:activity:create')") @Log(title = ...

  8. 策略模式学习,使用go实现策略模式

    策略模式 定义 优点 缺点 使用场景 代码实现 策略模式和工厂模式的区别 参考 策略模式 定义 策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到客户端的使用 ...

  9. 【3】Pycharm超详细基础设置,autopep8 安装规范化程序,每个小trick都可以快速提升变成效率,超级实用!

    相关文章: [1]Pycharm 主题设置推荐Material Theme UI以及编辑环境配置(字体大小和颜色) [2]Pycharm插件推荐,超级实用!每个小trick都可以快速提升变成效率! [ ...

  10. npm旧淘宝镜像过期,更换新淘宝镜像

    1. 清空缓存 npm cache clean --force 2.设置新淘宝镜像 npm config set registry https://registry.npmmirror.com/ 3. ...