首页 > 其他分享 >.net core 微信支付-----订单查询

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

时间:2022-10-18 15:56:55浏览次数:45  
标签:core set string get 微信 trade ----- public

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

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;
        }

效果图:

 

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

 

标签:core,set,string,get,微信,trade,-----,public
From: https://www.cnblogs.com/zpy1993-09/p/16802833.html

相关文章

  • React组件设计模式-纯组件,函数组件,高阶组件
    一、组件(1)函数组件如果你想写的组件只包含一个render方法,并且不包含state,那么使用函数组件就会更简单。我们不需要定义一个继承于React.Component的类,我们可以定......
  • 云原生实战-基于K8s+Docker+DevOps+Jenkins
    云原生实战-基于K8s+Docker+DevOps+Jenkins之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套jenkins+dockerregistry+docker见......
  • selenium验证码处理-获取验证码图片二进流数据转成原图保存
    1.因为视频的作者给的代码不完整,只有核心部分的代码。2.视频作者示例使用的第三方破解12306的脚本网页(失效了)所以本人无法复现,此次截取部分代码作为理解核心意思(思想方法......
  • 升级到React-Router-v6
    前言近期完成了公司新项目的开发,相关的技术栈都用到了最新版本,reactrouter也使用了v6的版本,所以借这个机会自己再梳理下reactrouterv5与v6的区别,以及v6一些新......
  • 华为AirEngine 5760-22W Web示例(V200R021C00SPC200版本):NAT网关模式(DHCP方式入网)【
    说明:此版本存在一些默认的WLAN无线业务配置,AP上电启动后,默认创建名称为“HUAWEI-XXXX”的SSID,其中XXXX是APMAC地址的后四位。默认无线业务覆盖使用无认证方式,用户搜索到该......
  • 有趣的drop-shadow
    如果写了好几个阴影,filter:drop-shadow(-0.5vmin6vmin0var(--s2))drop-shadow(-4.5vmin10vmin0var(--v3));将会出现几个形状?如果没有重叠,一共4个!因为后面的drop-s......
  • IT 运营管理 (ITOM)解决方案-OpManager Plus
    什么是ITOMITOM是配置网络资源、增强容量规划、实现最佳性能并确保IT基础架构持续可用性的过程。它包含所有网络和应用程序监控任务,可帮助您向最终用户提供不间断的优质......
  • 一文详尽系列之K-means算法
    K-means是我们最常用的基于距离的聚类算法,其认为两个目标的距离越近,相似度越大。算法1.1牧师-村民模型​K-means有一个著名的解释:牧师—村民模型:有四个牧师去郊区布道,一......
  • 力扣523(java)-连续的子数组和(中等)
    题目:给你一个整数数组nums和一个整数 k,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小至少为2,且子数组元素总和为k的倍数。如果存......
  • 交流群里的两个实例--直接放源码了
    导读本文主要介绍交流群里的两个实例,直接放源码。(公众号:OpenCV与AI深度学习)实例一  要求:识别下图中加粗的文本内容。  实现步骤:        【1】闭运算减少......