您的位置:首页 > 移动开发 > 微信开发

微信支付 生成付款二维码链接 并生成支付二维码图片 .net C#

2016-04-28 20:43 651 查看
  //生成付款二维码链接

                string pay_url = PayURL(order_id_parent.ToString(), _total_fee.ToString());

                if (pay_url != "")

                    create_two(order_id_parent.ToString(), pay_url);

         

    

        private void create_two(string order_id_parent, string pay_url)

        {

            //QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            //qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;

            //qrCodeEncoder.QRCodeScale = 4;

            //qrCodeEncoder.QRCodeVersion = 8;

            //qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

            ////System.Drawing.Image image = qrCodeEncoder.Encode("4408810820 深圳-广州 小江");

            //System.Drawing.Image image = qrCodeEncoder.Encode(pay_url);

            //string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";

            //string filepath = Server.MapPath(@"~\upload\QRCode") + "\\" + filename;

            //System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);

            //image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);

            //fs.Close();

            //image.Dispose();

            //this.imgWeiXin.ImageUrl = "/upload/QRCode/" + filename;

        }

        public string PayURL(string _order_id_parent, string _total_fee)

        {

            var paySignReqHandler = new WeiPay.RequestHandler(Context);

            string time_stamp = WeiPay.TenpayUtil.getTimestamp(); //时间戳  

            string nonce_str = WeiPay.TenpayUtil.getNoncestr().ToLower();//随机字符串  

            var packageReqHandler = new WeiPay.RequestHandler(Context);

            packageReqHandler.init();

            packageReqHandler.setParameter("body", "丁书网"); //商品信息 127字符

            packageReqHandler.setParameter("appid", WeiPay.PayConfig.AppId);

            packageReqHandler.setParameter("mch_id", WeiPay.PayConfig.MchId);

            packageReqHandler.setParameter("nonce_str", nonce_str);

            packageReqHandler.setParameter("notify_url", "https://m.iisbn.com/pay_scancode_url.aspx");

            packageReqHandler.setParameter("out_trade_no", _order_id_parent);

            packageReqHandler.setParameter("product_id", _order_id_parent); //商家订单号 

            packageReqHandler.setParameter("spbill_create_ip", "27.54.248.129");//Native支付填调用微信支付API的机器IP。  

            packageReqHandler.setParameter("total_fee", _total_fee); //商品金额,以分为单位(money * 100).ToString()

            packageReqHandler.setParameter("trade_type", "NATIVE");//SAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付, MICROPAY--刷卡支付, 

            packageReqHandler.setParameter("attach", _order_id_parent);//自定义参数 127字符  

            string sign = packageReqHandler.CreateMd5Sign("key", WeiPay.PayConfig.AppKey);

            packageReqHandler.setParameter("sign", sign);

            string data = packageReqHandler.parseXML();

            string prepayXml = WeiPay.HttpUtil.Send(data, "https://api.mch.weixin.qq.com/pay/unifiedorder");

            var xdoc = new XmlDocument();

            xdoc.LoadXml(prepayXml);

            XmlNode xn = xdoc.SelectSingleNode("xml");

            XmlNodeList xnl = xn.ChildNodes;

            string code_url = "";

            if (xnl.Count > 9)

            {

                code_url = xnl[9].InnerText;

            }

            return code_url;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net C# .NET