设为首页 加入收藏

TOP

C# MVC微信扫码支付(一)
2019-09-17 18:34:06 】 浏览:72
Tags:MVC 支付

项目需求:学校学生网上缴费项目,刚来公司实习网上百度了各种资料,感谢很多大神避免了很多大坑。

本次扫码支付为:电脑生成二维码,手机微信扫码进行付款。建议开发前下载官方demo熟悉及后续有用到里面代码:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

1.微信公众平台→支付配置→支付授权目录(授权目录就是指你要进行支付的目录)添加你的项目发布文件网址,手上暂无公司微信公众平台账号,百度上下有什么详细说明就不再说明了。

2.新建MVC项目→新建文件夹Resources将官方demo中的business和lib文件夹复制过来

3.打开lib文件夹里的config,在这里配置基础信息和支付回调地址

4.新建WxPay页面,此页面展示付款二维码,采用了jquery.qrcode.min.js生成二维码,贴部分重要代码

 

<script language="java script">
        $(function () {
            GetWXQRCode();
        });

        function GetWXQRCode() {
            //$('#QRCode').css('display', ''); //去除隐藏
            //$('#paytitle').html('微信支付');
            $('#tradeno').html('');
            $('#paymoney').html('');
            $.ajax({
                type: "post",
                url: "/StudentIndex/GetWXQRCode",
                data: {
                    time: new Date(),
                    productId: "考试费用",
                    idcard: '@ViewBag.idcard',
                },
                success: function (json) {
                    if (json.result) {
                        $("#QRCode").qrcode(json.str); //生成二维码
                        $("#tradeno").html(json.no); //订单编号
                        $('#paymoney').html(json.money);
                    }
                    else {
                        $("#QRCode").html("二维码生成失败");
                    }
                },
                error: function (json) {
                    $("#QRCode").html("二维码生成错误");
                }
            })
        }

    <div class="i_ma">
        <div class="i_name">
            微信支付
        <p>WeChat Payment</p>
        </div>
        <div class="space_hx">&nbsp;</div>

        <div>订单编号:<p id="tradeno"></p></div>
        <div>考试费用:<p id="paymoney"></p></div>
        <div id="QRCode">
        </div>

    </div>

    <div class="space_hx">&nbsp;</div>

5.控制器内添加生成二维码方法,这里面的idcard是学生身份证,添加到附加数据内便于后面查询订单时判断是谁缴了费

 //生成微信支付二维码
        [HttpPost]
        public ActionResult GetWXQRCode(string idcard)
        {
            object objResult = "";
            string tradeno;
            string paymoney;
            string strProductID = Request.Form["productId"];  //商品ID
            string strQRCodeStr = GetWXPayUrl(strProductID, idcard, out tradeno, out paymoney);
            //Session["outtradeno"] = outtradeno;
            if (!string.IsNullOrWhiteSpace(strProductID))
            {
                objResult = new { result = true, str = strQRCodeStr, no = tradeno, money = paymoney };
            }
            else
            {
                objResult = new { result = false };
            }

            return Json(objResult);
        }

        //生成直接微信支付url,支付url有效期为10分钟,模式二
        public string GetWXPayUrl(string productId, string idcard, out string out_trade_no, out string money)
        {
            WxPayData data = new WxPayData();
            data.SetValue("body", "分类考试学费");//商品描述
            data.SetValue("attach", idcard);//附加数据
            out_trade_no = WxPayApi.GenerateOutTradeNo();
            //Session["out_trade_no"] = out_trade_no;
            data.SetValue("out_trade_no", out_trade_no);//随机字符串
            string total = Convert.ToInt32((context.receiptInfoModel.OrderBy(x => x.ID).FirstOrDefault().PayMoney * 100)).ToString();
            money = context.receiptInfoModel.OrderBy(x => x.ID).FirstOrDefault().PayMoney + "";
            data.SetValue("total_fee", total);//总金额
            data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));//交易起始时间
            data.SetValue("time_expire", DateTime.
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇第39章 引用令牌 - Identity Serv.. 下一篇.NetCore WebApi——基于JWT的简..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目