C# MVC 微信支付教程系列之扫码支付代码实例

2019-12-30 15:30:50丽君

特此更正,感谢“ abc54288”的指出,模式二也是有回调的,回调的接口设置在Config.cs,中,如下图:

c#,微信扫码支付,c#微信扫码支付,demo

所以下面的作废,但是如果需要手动查询订单情况的,还可以用下列的方法查询。再次感谢园友:“ abc54288”。

由于模式二是没有支付结果回调的,所以,我们要查询支付成功与否,需要自己写方法来查询,官方提供的查询支付成功与否的方法有以下,


/***
  * 订单查询完整业务流程逻辑
  * @param transaction_id 微信订单号(优先使用)
  * @param out_trade_no 商户订单号
  * @return 订单查询结果(xml格式)
  */
  public static string Run(string transaction_id, string out_trade_no)
  {
   Log.Info("OrderQuery", "OrderQuery is processing...");
   WxPayData data = new WxPayData();
   if(!string.IsNullOrEmpty(transaction_id))//如果微信订单号存在,则以微信订单号为准
   {
    data.SetValue("transaction_id", transaction_id);
   }
   else//微信订单号不存在,才根据商户订单号去查单
   {
    data.SetValue("out_trade_no", out_trade_no);
   }
   WxPayData result = WxPayApi.OrderQuery(data);//提交订单查询请求给API,接收返回数据
   Log.Info("OrderQuery", "OrderQuery process complete, result : " + result.ToXml());
   return result.ToPrintStr();
  }

可以通过这个微信订单号(transaction_id)来查询,也可以通过商户订单号(out_trade_no),所以,我们要合理利用这里面的技巧,上述模式二,我用的out_trade_no 是一个随机字符串,我们可以把这个字符串记录好,放数据库还是放哪里,你自己喜欢,然后写一个ajsx长轮询来,定时查询这个商户订单号,看看有没有支付成功,来做支付确认。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到c#教程频道。