c#版在pc端发起微信扫码支付的实例

2019-12-30 14:45:56于海丽

返回WxPayData对象,这样一判断


if (res.GetValue("return_code") == "SUCCESS")

表示支付成功,就可以进入我们的业务逻辑。

然后我们还要对当前订单查单,获取订单的相关信息,之前微信未出demo的时候我自己写了个查单的,就直接用了,关键WxPayData对象会返回微信的订单号:res.GetValue("transaction_id").ToString()。

完事后还要发送信息回给微信,通知微信后台不要继续发送异步请求了:

    


 Response.Write(res.ToXml());
  Response.End();

这个代码比较重要了。

再说说放置二维码的页面:


<div class="g-body">
 <div class="g-wrap">
  <div class="m-weixin">
   <div class="m-weixin-header">
    <p><strong>请您及时付款,以便订单尽快处理!订单号:<asp:Label ID="trade_no" runat="server" Text="Label"></asp:Label></strong></p>
    <p>请您在提交订单后1小时内支付,否则订单会自动取消。</p>
   </div>
   <div class="m-weixin-main">
    <h1 class="m-weixin-title">
     <img    </h1>
    <p class="m-weixin-money"><font>扫一扫付款</font><br/><strong>¥<asp:Label ID="money" runat="server" Text="Label"></asp:Label></strong></p>
    <p>
     <img id="payQRImg" width="260" height="260" class="m-weixin-code" style="position: absolute;" src="<%=ImageUrl %>"     <img class="m-weixin-demo" src="../images/wxwebpay_guide.png"     <img style="margin-top:300px;" src="../images/weixin_1.png"    </p>
    <p id="we_ok" style="display:none;">
     <input value="完成" style="width: 300px; height: 50px; background: rgb(21, 164, 21) none repeat scroll 0% 0%; color: white; font-size: 30px; border: medium none; cursor: pointer;" type="button" />
    </p>
   </div>
  </div>
 </div>
</div>

写个js查单支付情况进行显示:


$(function () {
  var success = "<%=success %>";
  if (success == "error") {
   $(".g-body").hide();
  }
 })

 var iCount = setInterval(check, 2000); //每隔2秒执行一次check函数。

 function check() {
  $.ajax({
   contentType: "application/json",
   url: "/WebService/vinson.asmx/queryWeiXin",
   data: "{OrderID:'" + $("#trade_no").text() + "'}",
   type: "POST",
   dataType: "json",
   success: function (json) {
    json = eval("(" + json.d + ")");
    if (json.success == "success") {
     clearInterval(iCount);
     $(".m-weixin-money font").html("已成功付款");
     $("#payQRImg").remove();
     $(".m-weixin-demo").before('<img     $(".m-weixin-demo").next().remove();
     $("#we_ok").show();
    }
   },
   error: function (err, ex) {
   }
  });
 }