Beispiel #1
0
        /// <summary>
        /// 微信二维码
        /// </summary>
        public ActionResult WxQRCode()
        {
            if (WorkContext.UserLevel <= 0)
            {
                return(PromptView("请先提升您的等级"));
            }

            string pth1 = "~/mobile/Qcode/" + WorkContext.Openid.ToString() + ".jpeg";
            string pth2 = "~/mobile/Qcode/" + WorkContext.Openid.ToString() + ".jpg";
            //LogHelper.WriteLog("二维码:" + pth1); LogHelper.WriteLog("二维码:" + pth2);
            //if (File.Exists(pth1)||File.Exists(pth2))
            //{
            //    File.Delete(pth1); File.Delete(pth2);
            //    LogHelper.WriteLog("二维码222222");
            //}
            CreateQrCodeResult re = new CreateQrCodeResult();

            re = QrCodeApi.Create(WeiXinHelp.IsExistAccess_Token2(), 604000, Convert.ToInt32(WorkContext.Uid));
            string tickets = re.ticket;

            //string quserno = WorkContext.Userno.ToString();
            WeiXinHelp.GetTicketImage(tickets, WorkContext.Openid.ToString(), @"\mobile\Qcode");
            string        picPth = @"~/mobile/Qcode/" + WorkContext.Openid.ToString() + ".jpeg";
            WxQRCodeModel model  = new WxQRCodeModel();

            model.picPth = "";
            if (!System.IO.File.Exists(picPth))
            {
                // LogHelper.WriteLog("二维码JPG");
                {
                    model.picPth = @"/mobile/Qcode/" + WorkContext.Openid.ToString() + ".jpg";
                }
            }
            WebClient mywebclient = new WebClient();
            // @"
            string savepath = Server.MapPath("~/mobile/Aavatar/") + WorkContext.Openid + ".jpg";

            // //LogHelper.WriteLog(savepath);

            //try
            //{
            if (!System.IO.File.Exists(savepath))
            {
                mywebclient.DownloadFile(WorkContext.Avatar, savepath);
            }

            //下载生成的二维码图片
            //}
            //catch (Exception ex)
            //{
            //    // ex.ToString();
            //    // BrnMall.Core.Common.LogHelper.WriteLog("错误了" + savepath);
            //}
            Core.ImageHelp.DrawImage("", "", (float)1.0, "", "", "", WorkContext.NickName, WorkContext.Openid);
            model.picPth = @"/mobile/Qcode/new/" + WorkContext.Openid.ToString() + ".jpg";
            return(View(model));
        }
Beispiel #2
0
        public ActionResult OrderPay()
        {
            //订单id列表
            string oidList = WebHelper.GetQueryString("oidList");

            string           paySystemName   = "";
            decimal          allSurplusMoney = 0M;
            List <OrderInfo> orderList       = new List <OrderInfo>();

            foreach (string oid in StringHelper.SplitString(oidList))
            {
                //订单信息
                OrderInfo orderInfo = Orders.GetOrderByOid(TypeHelper.StringToInt(oid));
                if (orderInfo != null && orderInfo.Uid == WorkContext.Uid && orderInfo.OrderState == (int)OrderState.WaitPaying && orderInfo.PayMode == 1 && (paySystemName.Length == 0 || paySystemName == orderInfo.PaySystemName))
                {
                    orderList.Add(orderInfo);
                }
                else
                {
                    return(Redirect(Url.Action("index", "home")));
                }

                paySystemName    = orderInfo.PaySystemName;
                allSurplusMoney += orderInfo.SurplusMoney;
            }

            if (orderList.Count < 1 || allSurplusMoney == 0M)
            {
                return(Redirect(Url.Action("index", "home")));
            }
            WeiXinConfig wxconfig  = BMAConfig.WeiXinConfig;
            var          appId     = wxconfig.AppID; //WeixinConfig.AppID;
            var          nonceStr  = Util.CreateNonce_str();
            var          timestamp = DateTime.Now.Ticks.ToString().Substring(0, 10);
            var          domain    = wxconfig.Domain;
            var          url       = Request.Url.ToString().Replace("#", "");// domain + Request.Url.PathAndQuery;

            var jsTickect   = WeiXinHelp.IsExistjsapi_ticket();
            var string1     = "";
            var signature   = WeiXinHelp.GetjsSDK_Signature(nonceStr, jsTickect, timestamp, url); //JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1);
            var userAgent   = Request.UserAgent;
            var userVersion = userAgent.Substring(userAgent.LastIndexOf("/") + 1);

            //WeiXinConfig wxconfig = BMAConfig.WeiXinConfig;
            //Logs.Write(form.ToString());
            var out_trade_no = orderList[0].OSN; //Guid.NewGuid().ToString();
            //var domain = wxconfig.Domain;
            var body             = "购买创梦星火商城商品";
            var detail           = "购买创梦星火商城商品";
            var attach           = "购买创梦星火商城商品";
            var fee_type         = "CNY";
            var total_fee        = Decimal.ToInt32(orderList[0].SurplusMoney) * 100;// *100;
            var trade_type       = "JSAPI";
            var spbill_create_ip = (trade_type == "APP" || trade_type == "NATIVE") ? Request.UserHostName : wxconfig.Spbill_create_ip;
            var time_start       = DateTime.Now.ToString("yyyyMMddHHmmss");
            var time_expire      = DateTime.Now.AddDays(7).ToString("yyyyMMddHHmmss"); //默认1个小时订单过期,开发者可自定义其他超时机制,原则上微信订单超时时间不超过2小时
            var goods_tag        = "商品";
            var notify_url       = wxconfig.NOTIFY_URL;                                //与下面的Notify对应,开发者可自定义其他url地址
            var product_id       = orderList[0].Oid.ToString();
            var openid           = WorkContext.Openid;
            var partnerKey       = wxconfig.PartnerKey;
            var content          = WxPayAPI.UnifiedOrder(
                wxconfig.AppID, wxconfig.Mch_id, wxconfig.Device_info, Util.CreateNonce_str(),
                body, detail, attach, out_trade_no, fee_type, total_fee, spbill_create_ip, time_start, time_expire,
                goods_tag, notify_url, trade_type, product_id, openid, partnerKey);
            var prepay_id = "";
            //var trade_type = "";
            var paySign = "";
            //var timestamp = "";
            var nonce_str   = "";
            var return_code = "";

            if (content.return_code.Value == "SUCCESS" && content.result_code.Value == "SUCCESS")
            {
                WxPayAPIHelp.WxPayData jsApiParam = new WxPayAPIHelp.WxPayData();
                string payTimeSamp = DateTime.Now.Ticks.ToString().Substring(0, 10);
                jsApiParam.SetValue("appId", wxconfig.AppID);
                jsApiParam.SetValue("timeStamp", payTimeSamp);
                jsApiParam.SetValue("nonceStr", content.nonce_str.Value);
                jsApiParam.SetValue("package", "prepay_id=" + content.prepay_id.Value);
                jsApiParam.SetValue("signType", "MD5");
                //prepay_id = content.prepay_id.Value;
                prepay_id  = content.prepay_id.Value;
                trade_type = content.trade_type.Value;
                paySign    = jsApiParam.MakeSign();

                timestamp   = payTimeSamp;
                nonce_str   = content.nonce_str.Value;
                return_code = content.result_code.Value;
            }
            else
            {
                return(PromptView("错误编号:" + content.return_code.Value + "错误信息:" + content.return_msg.Value));
            }
            OrderPayModel model = new OrderPayModel();

            model.OidList         = oidList;
            model.AllSurplusMoney = allSurplusMoney;
            model.OrderList       = orderList;
            model.PayPlugin       = Plugins.GetPayPluginBySystemName(paySystemName);
            model.nonceStr        = nonceStr;
            model.jsapiTicket     = jsTickect;
            model.nonce_str       = nonce_str;
            model.paySign         = paySign;
            model.signature       = signature;
            model.timestamp       = timestamp;
            model.userAgent       = userAgent;
            model.userVersion     = userVersion;
            model.appId           = appId;
            model.prepay_id       = prepay_id;
            return(View(model));

            //return PromptView("出错了!");
        }
Beispiel #3
0
        public ActionResult UserUpdate()
        {
            Models.UserUpdateModel model = new UserUpdateModel();
            if (WebHelper.IsGet())
            {
                if (WorkContext.UserLevel < 3)
                {
                    WeiXinConfig wxconfig  = BMAConfig.WeiXinConfig;
                    var          appId     = wxconfig.AppID; //WeixinConfig.AppID;
                    var          nonceStr  = Util.CreateNonce_str();
                    var          timestamp = DateTime.Now.Ticks.ToString().Substring(0, 10);
                    var          domain    = wxconfig.Domain;
                    var          url       = Request.Url.ToString().Replace("#", "");// domain + Request.Url.PathAndQuery;

                    var jsTickect   = WeiXinHelp.IsExistjsapi_ticket();
                    var string1     = "";
                    var signature   = WeiXinHelp.GetjsSDK_Signature(nonceStr, jsTickect, timestamp, url); //JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1);
                    var userAgent   = Request.UserAgent;
                    var userVersion = userAgent.Substring(userAgent.LastIndexOf("/") + 1);                //微信版本号高于或者等于5.0才支持微信支付
                    model = new UserUpdateModel
                    {
                        appId       = appId,
                        nonceStr    = nonceStr,
                        signature   = signature,
                        timestamp   = timestamp,
                        jsapiTicket = jsTickect,
                        string1     = string1,
                        userAgent   = userAgent,
                        userVersion = userVersion,
                    };
                    return(View(model));
                    //return View(model);
                }

                else
                {
                    return(PromptView("/mob/ucenter", "你已是钻石会员"));
                }
            }
            else
            {
                int paytype = WebHelper.GetFormInt("paytype");
                int payfee  = 1;
                switch (paytype)
                {
                case 1:
                    if (WorkContext.UserLevel >= 1)
                    {
                        return(AjaxResult("", "已是银卡会员"));
                    }
                    payfee = 100;
                    break;

                case 2:
                    if (WorkContext.UserLevel >= 2)
                    {
                        return(AjaxResult("error", "已是金卡会员"));
                    }
                    payfee = 200;
                    if (WorkContext.UserLevel == 0)
                    {
                        paytype = 4;
                        payfee  = 300;
                    }
                    break;

                case 3:
                    if (WorkContext.UserLevel >= 3)
                    {
                        return(AjaxResult("error", "已是钻石会员"));
                    }
                    payfee = 300;
                    if (WorkContext.UserLevel == 1)

                    {
                        paytype = 5;
                        payfee  = 500;
                    }
                    if (WorkContext.UserLevel == 0)

                    {
                        paytype = 6;
                        payfee  = 600;
                    }
                    break;

                default:
                    return(AjaxResult("error", "请选择卡类型"));

                    break;
                }


                //return AjaxResult("success", WebHelper.GetRequestData("http://localhost:6174/mob/weixinweb/Notify", "body=" + paytype.ToString() + "&payfee=" + payfee));
                // return AjaxResult("success", GetpayJson(paytype, payfee));
                return(View());
            }
            //model.appid = "100";
            //return View(model);
        }