/// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public JsonResult MadeCode(string openid, string city)
        {
            string qrcode = string.Empty, sign = string.Empty, first = string.Empty, TimeStamp = string.Empty;
            var    bus      = new Bus(this.DataSource);
            bool   isSign   = bus.isSign(openid, WxPayConfig.APPID(city), city);
            var    wxpay    = new WxPayApi();
            var    list     = new List <string>();
            string citycode = WxPayConfig.getCityCode(city);//"YQ0001";

            if (isSign)
            {
                //var user = bus.GetEntrustinfo(openid, WxPayConfig.APPID);
                qrcode = "gowechat://" + openid + "#" + WxPayConfig.APPID(city) + "#" + citycode + "#" + WxPayApi.GenerateTimeStamp(1);
                sign   = bus.toSign(qrcode);
                first  = qrcode + "#" + sign;
                int offlinelimits = Convert.ToInt16(ConfigurationManager.AppSettings["offlinelimits"]);

                for (int i = 1; i < offlinelimits + 1; i++)
                {
                    TimeStamp = WxPayApi.GenerateTimeStamp(i + 1);
                    qrcode    = "gowechat://" + openid + "#" + WxPayConfig.APPID(city) + "#" + citycode + "#" + TimeStamp;
                    sign      = bus.toSign(qrcode);
                    list.Add(citycode + "#" + TimeStamp + "#" + sign);//2017-8-17作了调整
                }
            }
            return(Json(new { mxqrcode = first, items = list, openid = openid, appid = WxPayConfig.APPID(city) }, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        public exterData Sign(string openid, string nickname, string UserHostAddress, string city)
        {
            city = (city == null) ? "" : city;
            var Entrustinfo = this.GetEntrustinfo(openid, WxPayConfig.APPID(city), WxPayConfig.getMCHID(city));
            var wxuser      = this.GetUserInfo(openid, WxPayConfig.APPID(city));
            var wxpay       = new WxPayApi();
            var exdata      = new exterData();

            exdata.appid  = WxPayConfig.APPID(city);
            exdata.mch_id = WxPayConfig.getMCHID(city);

            exdata.contract_code  = WxPayConfig.getCityCode(city) + Convert.ToString(long.Parse("10000") + Entrustinfo.Id) + DateTime.Now.ToString("ssfff");
            exdata.request_serial = Entrustinfo.Id.ToString();
            string display_account = string.Empty;

            if (!string.IsNullOrEmpty(wxuser.Mobile) && wxuser.Mobile.Length == 11)
            {
                display_account = wxuser.Mobile.Substring(0, 3) + "****" + wxuser.Mobile.Substring(7, 4);
            }
            else
            {
                display_account = nickname;
            }
            exdata.contract_display_account = display_account;
            switch (city)
            {
            case "福州市":
                exdata.notify_url = "https://www.cmeeol.com/wechat/FZReceiveSign";
                break;

            case "杭州市":
                exdata.notify_url = "https://wx.hzgolong.com/wechat/HZReceiveSign";
                break;

            case "杭州市2":
                exdata.notify_url = "https://wx.hzgolong.com/wechat/wccReceiveSign";
                break;

            default:
                exdata.notify_url = "https://wx.hzgolong.com/wechat/ReceiveSign";
                break;
            }
            //exdata.notify_url = HttpUtility.UrlEncode(exdata.notify_url);
            exdata.plan_id   = WxPayConfig.getPlanID(city);
            exdata.openid    = openid;
            exdata.timestamp = WxPayApi.GenerateTimeStamp();
            exdata.clientip  = UserHostAddress;
            exdata.deviceid  = "";
            exdata.mobile    = "";
            exdata.email     = "";
            exdata.qq        = "";
            exdata.creid     = "";
            exdata.outerid   = "";
            WxPayData inputObj = new WxPayData(city);

            inputObj.SetValue("appid", WxPayConfig.APPID(city));
            inputObj.SetValue("contract_code", exdata.contract_code);
            inputObj.SetValue("contract_display_account", exdata.contract_display_account);
            inputObj.SetValue("mch_id", exdata.mch_id);
            inputObj.SetValue("notify_url", exdata.notify_url);
            inputObj.SetValue("plan_id", exdata.plan_id);
            inputObj.SetValue("request_serial", exdata.request_serial);
            inputObj.SetValue("timestamp", exdata.timestamp);
            inputObj.SetValue("clientip", exdata.clientip);
            inputObj.SetValue("deviceid", "");
            inputObj.SetValue("mobile", "");
            inputObj.SetValue("email", "");
            inputObj.SetValue("qq", "");
            inputObj.SetValue("openid", openid);
            inputObj.SetValue("creid", "");
            inputObj.SetValue("outerid", "");
            if (wxuser.Mobile == "13588861726")
            {
                Log.Write("luo sign inputObj json:", inputObj.ToJson());
            }
            exdata.sign = inputObj.MakeSign();
            return(exdata);
        }