.net core 微信支付-----订单查询

      微信支付这一块,本来打算一起写完呢,谁知道计划赶不上变化,由于一些原因没有时间写,这次接着把后续写完。上次说微信下单的时候,我就说过,微信支付这一块有人家现场封装好的。

paylink,盛牌,都可以拿来用。

    首先我们还是要看官网是如何介绍微信支付订单查询的。

 

 我们可以看到他其实就是一个Get方式请求的一个接口而已。在看一下官方给的例子:

 

 通过这个例子我们可以看到,两个重要的参数:一个是订单号一个是商户号,商户号是什么我写下单的时候已经发过截图了。根据官方的例子看,其实就简单多了,实际上就是一个url路径附带两个参数。那就不多说了上代码了:

订单信息的Model类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WeChat.Api.Model.SearchOrder
{
    public class OrderSelect
    {

        public string appid { get; set; }
        public string attach { get; set; }
        public string bank_type { get; set; }
        public string mchid { get; set; }
        public string out_trade_no { get; set; }
        public string success_time { get; set; }
        public string trade_state { get; set; }
        public string trade_state_desc { get; set; }
        public string trade_type { get; set; }
        public object promotion_detail { get; set; }
        public string transaction_id { get; set; }
        public SAmount amount { get; set; }
        public myPayer payer { get; set; }
    }
    public class Promotion_detail
    {

    }

    public class myPayer
    {
        public string payer { get; set; }
    }
    public class SAmount
    {
        public string currency { get; set; }
        public string payer_currency { get; set; }
        public double payer_total { get; set; }
        public double total { get; set; }


    }
}

  请求接口:

 /// <summary>
        /// 订单查询    
        /// </summary>
        /// <param name="OrderSno">订单号</param>
        /// <returns></returns>
        [HttpGet("Search")]
        public async Task<OrderSelect> Search(string OrderSno)
        {
            // 查询订单
            var url = $"https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/"+OrderSno+"?mchid="+ WeChatConfig.mchid;
            var client = new HttpClient(new HttpHandler());
            var resp = await client.GetAsync(url);
            var respStr = await resp.Content.ReadAsStringAsync();
            var payModel = respStr.ToObject<OrderSelect>();
            return payModel;
        }

效果图:

 

 这里只说订单查询,其它的代码不在放进来了,后续会给源码下载链接。

 

posted @ 2022-10-18 15:49  代码如风~~~  阅读(435)  评论(0编辑  收藏  举报