C# MVC 微信支付教程系列之公众号支付代码

2019-12-30 15:34:35于海丽

除此以外,我们还需要改这里:

asp.net,mvc,微信支付,.net

就是一定要授权这里,否则,支付的时候,会提示其他错误,具体,我就不测试了。

另外,这里其实已经完成了这个公众号的支付的流程了,但是,我们页面上,会友善的提醒(其实不友善,提示是红色的,在头部,提示别输入密码什么),这是因为,我们还没把咱们这个http://www.easck.com/p>

asp.net,mvc,微信支付,.net

在这里面加入咱们的域名,就完美了。。。

 我的代码都尽量精简,多余的,我都会丢掉,就是为了避免混淆视听。如果代码里面,有写的不清楚的,可以私信问我,或群里来问我,群号在文章末端。

 现在,我开始一一解释我上面的做法。

首先,在后端,页面加载的时候,他会先执行


public ActionResult Index()
  {
   if (Session["openid"] == null)
   {
    try
    {
     //调用【网页授权获取用户信息】接口获取用户的openid和access_token
     GetOpenidAndAccessToken();

    }
    catch (Exception ex)
    {
     //Response.Write(ex.ToString());
     //throw;
    }
   }
   return View();
  } 

 这里面就是为了获取用户的Openid和Access_token,这个用途很大,还有就是,我们通过代码可以知道,我们通过这个方法,可以获取到微信的一些相关信息,获取完了之后,他会返回到我们的页面上来,url就存在一个session里面,如下:

 Session["url"] = url;       

接着,在前端:

当页面加载完毕之后,会执行以下JS方法,如下:

 


 $(function () {
   var vCode = getQueryString("code");
   if (vCode != "" && vCode != null) {
    //alert(vCode);
    $.ajax({
     type: 'post',
     data: {
      code: vCode
     },
     url: '/Home/getWxInfo',
     success: function (sjson) {
      //alert(sjson);
      //var vData = JSON.stringify(sjson);
      //alert(vData);
      $.messager.show({
       title: '提示',
       msg: '欢迎您来到微信端充值中心。'
      });
     }
    })
   }
   else {
    $.ajax({
     type: 'post',
     url: '/Home/getCode',
     success: function (sjson) {
      //alert(sjson);
      location.href = sjson;
     }
    })
   }
  }) 

他会先获取浏览器的url,然后获取code,就是一般url后面的xxx.com?code=xxx,这里面就是首先判断有无code,如果没有code,则,我们去后台请求这个code。为什么请求这个code呢?我们来看这个方法: getWxInfo,如下图: