2021-02-28

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









原文转载:http://www.shaoqun.com/a/593578.html

跨境电商:https://www.ikjzd.com/

淘粉8:https://www.ikjzd.com/w/1725

西集网:https://www.ikjzd.com/w/1353


官方参考资料  查询订单理论实战  官方提供两种查询订单的方式,一种是根据商户自己生成的订单号查询,一种方式是根据微信生成的订单号查询。而我使用的就是第一种方式。  调用微信支付的查询订单,需要生成签名,按照微信支付的接口规则构造http的header。  生成签名可以参考我的文章:《ASP.NETCore微信支付(一)【统一下单APIV3】》、《ASP.NETCore微信支付(二)【发布到服务器
贝贝官网:https://www.ikjzd.com/w/1321
catch:https://www.ikjzd.com/w/832
kk馆:https://www.ikjzd.com/w/1713
口述:堕胎三次 只换回三声对不起(3/3):http://lady.shaoqun.com/m/a/50563.html
口述:暴力狂男友让我受尽屈辱(7/7):http://lady.shaoqun.com/m/a/38986.html
A9算法还不懂?大卖都在"对付"A10算法了:https://www.ikjzd.com/home/114804

No comments:

Post a Comment