示例#1
0
        public async Task <ActionResult> CountingView(string ids, string partUrl, string signUrl)
        {
            //using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant))
            //{
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);

            ViewBag.Ids = ids;
            String srcArray = "";

            foreach (var id in ids.Split(','))
            {
                Logger.Error("\r\n\r\nid" + id);
                var path = await ProcessTaskManager.GetTaskPicSrc(Convert.ToInt32(id));

                srcArray += path + ",";
            }
            srcArray.Substring(0, srcArray.Length - 1);
            Logger.Error("\r\n\r\nSrcArr" + srcArray);
            //var path = await ProcessTaskManager.GetTaskSheetImagePath(id);
            ViewBag.ImgPath  = partUrl;
            ViewBag.SignUrl  = signUrl;
            ViewBag.TaskUrls = srcArray;
            return(View("WeChat/process/CountingView", jssdkUiPackage));
            //}
        }
示例#2
0
        //
        // GET: /JSSDK/

        public ActionResult Index()
        {
            #region v13.6.4之前的写法
            ////获取时间戳
            //var timestamp = JSSDKHelper.GetTimestamp();
            ////获取随机码
            //var nonceStr = JSSDKHelper.GetNoncestr();
            //string ticket = JsApiTicketContainer.TryGetJsApiTicket(appId, secret);
            ////获取签名
            //var signature = JSSDKHelper.GetSignature(ticket, nonceStr, timestamp, Request.Url.AbsoluteUri);

            //ViewData["AppId"] = appId;
            //ViewData["Timestamp"] = timestamp;
            //ViewData["NonceStr"] = nonceStr;
            //ViewData["Signature"] = signature;
            #endregion

            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri());
            //ViewData["JsSdkUiPackage"] = jssdkUiPackage;
            //ViewData["AppId"] = appId;
            //ViewData["Timestamp"] = jssdkUiPackage.Timestamp;
            //ViewData["NonceStr"] = jssdkUiPackage.NonceStr;
            //ViewData["Signature"] = jssdkUiPackage.Signature;

            return(View(jssdkUiPackage));
        }
示例#3
0
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            // do something before the action executes
            TokenResult = JsonConvert.DeserializeObject <OAuthAccessTokenResult>(context.HttpContext.Session.GetString("OAuthAccessTokenResult"));
            var controller = context.RouteData.Values["controller"]?.ToString();
            var actionName = context.RouteData.Values["action"]?.ToString();

            if (controller?.ToUpper() == "SCHOOLBUS" && actionName?.ToUpper() != "REGISTER" && actionName?.ToUpper() != "SENDSMSCODE")
            {
                var result = await _schoolBusBusines.GetCardInfoByCodeAsync(TokenResult?.openid);

                if (result == null || string.IsNullOrEmpty(result.fcode) || string.IsNullOrEmpty(result.wxpkid))
                {
                    context.Result = new RedirectToActionResult("Register", "SchoolBus", null);
                    return;
                }
            }
            await next();

            // do something after the action executes
            if (!(ViewData.Model is Base_JSSDKVD vd))
            {
                return;
            }
            var model = vd;

            model.TokenResult    = TokenResult;
            model.PageRenderTime = DateTime.Now;
            model.JsSdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(Config.SenparcWeixinSetting.WeixinAppId,
                                                                 Config.SenparcWeixinSetting.WeixinAppSecret,
                                                                 Request.AbsoluteUri());
        }
示例#4
0
        public ActionResult ReceiptAudit()
        {
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);

            Logger.Info("JSSDKPackage:" + Common.JSONConvert.SerializeCamelCase(jssdkUiPackage));

            return(View("Wechat/factory/ReceiptAudit", jssdkUiPackage));
        }
示例#5
0
        public ActionResult Index()
        {
            var accessToken = AccessTokenContainer.TryGetAccessToken(appId, secret);

            TempData["AccessToken"] = accessToken;
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, secret, Request.AbsoluteUri());

            return(View(jssdkUiPackage));
        }
示例#6
0
        public async Task <ActionResult> HandWrite(string id)
        {
            //using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant))
            //{
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);

            ViewBag.Ids = id;
            //var path = await ProcessTaskManager.GetTaskSheetImagePath(id);
            //ViewBag.ImgPath = $"/sheets/{currentTenantId}/CountingPic/{tenantId}/{partUrl}.png";
            return(View("WeChat/process/handWrite", jssdkUiPackage));
            //}
        }
        public IActionResult Index()
        {
            var nonce     = JSSDKHelper.GetNoncestr();
            var timestamp = JSSDKHelper.GetTimestamp();
            var ticket    = JsApiTicketContainer.TryGetTicket(WeixinWorkOptions.CorpId, WeixinWorkOptions.Secret);
            var signature = JSSDKHelper.GetSignature(ticket, nonce, timestamp, Request.AbsoluteUri());

            ViewBag.CorpId    = WeixinWorkOptions.CorpId;
            ViewBag.Nonce     = nonce;
            ViewBag.TimeStamp = timestamp;
            ViewBag.Signature = signature;

            return(View());
        }
示例#8
0
        public async Task <ActionResult> ReportView(int id)
        {
            //todo:需要验证当前微信用户是否可以属于报工信息对应企业的策略提醒人
            var remindPersons = (await TacticManager.GetRemindPersonsByReport(id)).Select(o => o.Person);

            var currentPerson = await PersonManager.GetPersonByWeUserOrInsert(WeUser);

            if (!remindPersons.Contains(currentPerson))
            {
                return(Redirect("/WeiXin/Error?msg=" + "无权查看此报工信息".UrlEncode()));
            }

            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri());

            return(View(jssdkUiPackage));
        }
示例#9
0
        public async Task <ActionResult> OuterTaskView(int id)
        {
            using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant))
            {
                var task = await ProcessTaskManager.GetAll().Where(o => o.ToTenantId == AbpSession.TenantId).Where(o => o.Id == id).SingleOrDefaultAsync();

                if (task == null)
                {
                    return(Redirect("/WeiXin/Error?msg=" + "无权查看此任务信息".UrlEncode()));
                }
                //标记任务为加工点已查看状态
                task.SetStatus(MES.ProcessTask.Status_ProcessorReaded);
                var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);
                var path           = await ProcessTaskManager.GetTaskSheetImagePath(id);

                ViewBag.ImgPath = path;
                return(View("WeChat/process/TaskView", jssdkUiPackage));
            }
        }
示例#10
0
        public IActionResult Auth(string code, string state)
        {
            AccessTokenContainer.RegisterAsync(_wxSetting.WeixinAppId, _wxSetting.WeixinAppSecret, "doctor_platform");
            string state1 = IdHelper.ObjectId();            //随机数,用于识别请求可靠性

            HttpContext.Session.SetString("State", state1); //储存随机数到Session
            string signUrl = Request.AbsoluteUri();

            // LoggerHelper.Info(signUrl);
            // MemoryCacheHelper.Set("test", "nihao", TimeSpan.FromMinutes(1));
            // var keys= MemoryCacheHelper.GetCacheKeys();
            if (!string.IsNullOrEmpty(code))
            {
                var result = OAuthApi.GetAccessToken(_wxSetting.WeixinAppId, _wxSetting.WeixinAppSecret, code);
                if (result.errcode != ReturnCode.请求成功)
                {
                    return(Content("错误:" + result.errmsg));
                }
                //LoggerHelper.Info(result.openid);
                //尝试获取用户信息
                //OAuthUserInfo userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid);
                //string json = userInfo.ToJson();
                //LoggerHelper.Info(json);
                //Task.Factory.StartNew(() => GetUserInfo(result.access_token, result.openid));
                string key         = "{access_token}:wxtoken";
                var    redisClient = RedisFactory.GetRedisClient();
                redisClient.Set(key, result, result.expires_in);

                RequestHelper.SetOpenId(result.openid, result.expires_in);
                string homeUrl = $"/wechat/index.html?openId={result.openid}";
                return(Redirect(homeUrl));
            }
            else
            {
                // signUrl = signUrl + "/WxExpert/Index";snsapi_userinfo snsapi_base
                var url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect",
                                        _wxSetting.WeixinAppId, signUrl.UrlEncode(), state1);
                return(Redirect(url));
            }
        }
        /// <summary>
        /// 二维码扫描和设置盘点结果
        /// </summary>
        /// <param name="id">盘点id</param>
        /// <returns></returns>
        public IActionResult Check(int id)
        {
            var stockService = new StockService();
            var stock        = stockService.Load(id);

            if (stock == null || stock.IsFinish || stock.IsDel)
            {
                return(RedirectToAction("Error", new { title = "403", message = "请求的盘点不存在或已完成" }));
            }

            var nonce     = JSSDKHelper.GetNoncestr();
            var timestamp = JSSDKHelper.GetTimestamp();
            var ticket    = JsApiTicketContainer.TryGetTicket(WeixinWorkOptions.CorpId, WeixinWorkOptions.Secret);
            var signature = JSSDKHelper.GetSignature(ticket, nonce, timestamp, Request.AbsoluteUri());

            ViewBag.CorpId    = WeixinWorkOptions.CorpId;
            ViewBag.Nonce     = nonce;
            ViewBag.TimeStamp = timestamp;
            ViewBag.Signature = signature;

            return(View(stock));
        }
示例#12
0
        public async Task <ActionResult> Report(int taskId)
        {
            //return Redirect("/WeiXin/Error?msg=未找到可报工任务");
            if (!await ProcessTaskManager.CanReportAsync(taskId))
            {
                var task = await ProcessTaskManager.GetByIdAsync(taskId);

                if (task != null && task.ProcessTaskStatus == ProcessTaskStatus.Completed)
                {
                    return(Redirect("/MES/PartReportView?id=" + taskId));
                }
                return(Redirect("/WeiXin/Error?msg=" + "任务不存在或已失效".UrlEncode()));
            }
            //todo:临时使用,强制获取token
            //await AccessTokenContainer.GetAccessTokenAsync(appId, true);
            //JsApiTicketContainer.GetJsApiTicket(appId, true);


            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);

            Logger.Info("JSSDKPackage:" + Common.JSONConvert.SerializeCamelCase(jssdkUiPackage));
            ViewBag.ReporterName = WeUser.nickname;
            return(View(jssdkUiPackage));
        }
        /// <summary>
        /// 分享
        /// </summary>
        /// <returns></returns>
        public IActionResult Share()
        {
            var shareEnum = ShareEnum.默认;
            var openId    = Request.Query["openid"];
            var shareId   = Request.Query["shareid"];

            if (string.IsNullOrWhiteSpace(openId))
            {
                shareEnum = ShareEnum.非法;
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(shareId))
                {
                    shareEnum = openId != shareId ? ShareEnum.分享点赞 : ShareEnum.分享无法点赞;
                }
            }

            var reurnUrl = "http://www.mblogs.top/Wechat/Share?shareid=" + openId;

            var model = new WeiXinShareLikeViewModel
            {
                OpenId  = openId,
                ShareId = shareId,
                Url     = $"http://www.mblogs.top/Wechat/ShareAuthorizeUrl?reurnUrl=" + reurnUrl
            };

            ViewBag.WeiXinShareLike = model;
            ViewBag.ShareEnum       = shareEnum;

            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(WechatAppSettings.AppId, WechatAppSettings.CorpSecret, Request.AbsoluteUri());

            return(View(jssdkUiPackage));
        }
示例#14
0
//         #region 订单及退款

//         /// <summary>
//         /// 订单查询
//         /// </summary>
//         /// <returns></returns>
//         public ActionResult OrderQuery()
//         {
//             string nonceStr = TenPayV3Util.GetNoncestr();
//             RequestHandler packageReqHandler = new RequestHandler(null);

//             //设置package订单参数
//             packageReqHandler.SetParameter("appid", TenPayV3Info.AppId);		  //公众账号ID
//             packageReqHandler.SetParameter("mch_id", TenPayV3Info.MchId);		  //商户号
//             packageReqHandler.SetParameter("transaction_id", "");       //填入微信订单号
//             packageReqHandler.SetParameter("out_trade_no", "");         //填入商家订单号
//             packageReqHandler.SetParameter("nonce_str", nonceStr);             //随机字符串
//             string sign = packageReqHandler.CreateMd5Sign("key", TenPayV3Info.Key);
//             packageReqHandler.SetParameter("sign", sign);	                    //签名

//             string data = packageReqHandler.ParseXML();

//             var result = TenPayV3.OrderQuery(data);
//             var res = XDocument.Parse(result);
//             string openid = res.Element("xml").Element("sign").Value;

//             return Content(openid);
//         }

//         /// <summary>
//         /// 关闭订单接口
//         /// </summary>
//         /// <returns></returns>
//         public ActionResult CloseOrder()
//         {
//             string nonceStr = TenPayV3Util.GetNoncestr();
//             RequestHandler packageReqHandler = new RequestHandler(null);

//             //设置package订单参数
//             packageReqHandler.SetParameter("appid", TenPayV3Info.AppId);		  //公众账号ID
//             packageReqHandler.SetParameter("mch_id", TenPayV3Info.MchId);		  //商户号
//             packageReqHandler.SetParameter("out_trade_no", "");                 //填入商家订单号
//             packageReqHandler.SetParameter("nonce_str", nonceStr);              //随机字符串
//             string sign = packageReqHandler.CreateMd5Sign("key", TenPayV3Info.Key);
//             packageReqHandler.SetParameter("sign", sign);	                    //签名

//             string data = packageReqHandler.ParseXML();

//             var result = TenPayV3.CloseOrder(data);
//             var res = XDocument.Parse(result);
//             string openid = res.Element("xml").Element("openid").Value;

//             return Content(openid);
//         }

//         /// <summary>
//         /// 退款申请接口
//         /// </summary>
//         /// <returns></returns>
//         public ActionResult Refund()
//         {
//             try
//             {
//                 WeixinTrace.SendCustomLog("进入退款流程", "1");

//                 string nonceStr = TenPayV3Util.GetNoncestr();

//                 string outTradeNo = HttpContext.Session.GetString("BillNo");

//                 WeixinTrace.SendCustomLog("进入退款流程", "2 outTradeNo:" + outTradeNo);


//                 string outRefundNo = "OutRefunNo-" + SystemTime.Now.Ticks;
//                 int totalFee = int.Parse(HttpContext.Session.GetString("BillFee"));
//                 int refundFee = totalFee;
//                 string opUserId = TenPayV3Info.MchId;
//                 var notifyUrl = $"{_siteUrl}/TenPayV3/RefundNotifyUrl";
//                 var dataInfo = new TenPayV3RefundRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, TenPayV3Info.Key,
//                     null, nonceStr, null, outTradeNo, outRefundNo, totalFee, refundFee, opUserId, null, notifyUrl: notifyUrl);

//                 #region 旧方法
//                 //var cert = @"D:\cert\apiclient_cert_SenparcRobot.p12";//根据自己的证书位置修改
//                 //var password = TenPayV3Info.MchId;//默认为商户号,建议修改
//                 //var result = TenPayV3.Refund(dataInfo, cert, password);
//                 #endregion

//                 #region 新方法(Senparc.Weixin v6.4.4+)
//                 var result = TenPayV3.Refund(dataInfo);//证书地址、密码,在配置文件中设置,并在注册微信支付信息时自动记录
//                 #endregion

//                 WeixinTrace.SendCustomLog("进入退款流程", "3 Result:" + result.ToJson());


//                 return Content(string.Format("退款结果:{0} {1}。您可以刷新当前页面查看最新结果。", result.result_code, result.err_code_des));
//                 //return Json(result, JsonRequestBehavior.AllowGet);
//             }
//             catch (Exception ex)
//             {
//                 WeixinTrace.WeixinExceptionLog(new WeixinException(ex.Message, ex));

//                 throw;
//             }


//             #region 原始方法

//             //RequestHandler packageReqHandler = new RequestHandler(null);

//             //设置package订单参数
//             //packageReqHandler.SetParameter("appid", TenPayV3Info.AppId);		 //公众账号ID
//             //packageReqHandler.SetParameter("mch_id", TenPayV3Info.MchId);	     //商户号
//             //packageReqHandler.SetParameter("out_trade_no", "124138540220170502163706139412"); //填入商家订单号
//             ////packageReqHandler.SetParameter("out_refund_no", "");                //填入退款订单号
//             //packageReqHandler.SetParameter("total_fee", "");                    //填入总金额
//             //packageReqHandler.SetParameter("refund_fee", "100");                //填入退款金额
//             //packageReqHandler.SetParameter("op_user_id", TenPayV3Info.MchId);   //操作员Id,默认就是商户号
//             //packageReqHandler.SetParameter("nonce_str", nonceStr);              //随机字符串
//             //string sign = packageReqHandler.CreateMd5Sign("key", TenPayV3Info.Key);
//             //packageReqHandler.SetParameter("sign", sign);	                    //签名
//             ////退款需要post的数据
//             //string data = packageReqHandler.ParseXML();

//             ////退款接口地址
//             //string url = "http://api.mch.weixin.qq.com/secapi/pay/refund";
//             ////本地或者服务器的证书位置(证书在微信支付申请成功发来的通知邮件中)
//             //string cert = @"D:\cert\apiclient_cert_SenparcRobot.p12";
//             ////私钥(在安装证书时设置)
//             //string password = TenPayV3Info.MchId;
//             //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
//             ////调用证书
//             //X509Certificate2 cer = new X509Certificate2(cert, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);

//             //#region 发起post请求
//             //HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);
//             //webrequest.ClientCertificates.Add(cer);
//             //webrequest.Method = "post";

//             //byte[] postdatabyte = Encoding.UTF8.GetBytes(data);
//             //webrequest.ContentLength = postdatabyte.Length;
//             //Stream stream;
//             //stream = webrequest.GetRequestStream();
//             //stream.Write(postdatabyte, 0, postdatabyte.Length);
//             //stream.Close();

//             //HttpWebResponse httpWebResponse = (HttpWebResponse)webrequest.GetResponse();
//             //StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
//             //string responseContent = streamReader.ReadToEnd();
//             //#endregion

//             //// var res = XDocument.Parse(responseContent);
//             ////string openid = res.Element("xml").Element("out_refund_no").Value;
//             //return Content("申请成功:<br>" + HttpUtility.RequestUtility.HtmlEncode(responseContent));

//             #endregion

//         }

//         /// <summary>
//         /// 退款通知地址
//         /// </summary>
//         /// <returns></returns>
//         public ActionResult RefundNotifyUrl()
//         {
//             WeixinTrace.SendCustomLog("RefundNotifyUrl被访问", "IP" + HttpContext.UserHostAddress()?.ToString());

//             string responseCode = "FAIL";
//             string responseMsg = "FAIL";
//             try
//             {
//                 ResponseHandler resHandler = new ResponseHandler(null);

//                 string return_code = resHandler.GetParameter("return_code");
//                 string return_msg = resHandler.GetParameter("return_msg");

//                 WeixinTrace.SendCustomLog("跟踪RefundNotifyUrl信息", resHandler.ParseXML());

//                 if (return_code == "SUCCESS")
//                 {
//                     responseCode = "SUCCESS";
//                     responseMsg = "OK";

//                     string appId = resHandler.GetParameter("appid");
//                     string mch_id = resHandler.GetParameter("mch_id");
//                     string nonce_str = resHandler.GetParameter("nonce_str");
//                     string req_info = resHandler.GetParameter("req_info");

//                     var decodeReqInfo = TenPayV3Util.DecodeRefundReqInfo(req_info, TenPayV3Info.Key);
//                     var decodeDoc = XDocument.Parse(decodeReqInfo);

//                     //获取接口中需要用到的信息
//                     string transaction_id = decodeDoc.Root.Element("transaction_id").Value;
//                     string out_trade_no = decodeDoc.Root.Element("out_trade_no").Value;
//                     string refund_id = decodeDoc.Root.Element("refund_id").Value;
//                     string out_refund_no = decodeDoc.Root.Element("out_refund_no").Value;
//                     int total_fee = int.Parse(decodeDoc.Root.Element("total_fee").Value);
//                     int? settlement_total_fee = decodeDoc.Root.Element("settlement_total_fee") != null
//                             ? int.Parse(decodeDoc.Root.Element("settlement_total_fee").Value)
//                             : null as int?;
//                     int refund_fee = int.Parse(decodeDoc.Root.Element("refund_fee").Value);
//                     int tosettlement_refund_feetal_fee = int.Parse(decodeDoc.Root.Element("settlement_refund_fee").Value);
//                     string refund_status = decodeDoc.Root.Element("refund_status").Value;
//                     string success_time = decodeDoc.Root.Element("success_time").Value;
//                     string refund_recv_accout = decodeDoc.Root.Element("refund_recv_accout").Value;
//                     string refund_account = decodeDoc.Root.Element("refund_account").Value;
//                     string refund_request_source = decodeDoc.Root.Element("refund_request_source").Value;

//                     //进行业务处理
//                 }
//             }
//             catch (Exception ex)
//             {
//                 responseMsg = ex.Message;
//                 WeixinTrace.WeixinExceptionLog(new WeixinException(ex.Message, ex));
//             }

//             string xml = string.Format(@"<xml>
// <return_code><![CDATA[{0}]]></return_code>
// <return_msg><![CDATA[{1}]]></return_msg>
// </xml>", responseCode, responseMsg);
//             return Content(xml, "text/xml");
//         }

//         #endregion

        public IActionResult Card()
        {
            try
            {
                JsSdkUiPackage jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(TenPayV3Info.AppId, TenPayV3Info.AppSecret, Request.AbsoluteUri());

                var api_ticket = WxCardApiTicketContainer.TryGetWxCardApiTicket(TenPayV3Info.AppId, TenPayV3Info.AppSecret);
                // var openId = HttpContext.Session.GetString("OpenId");
                var timeStamp = TenPayV3Util.GetTimestamp();
                var nonceStr  = TenPayV3Util.GetNoncestr();
                var sign      = JSSDKHelper.GetcardExtSign(api_ticket, timeStamp, "pukHe541WmaHEBgW3gACiBCD4EbY", nonceStr);
                var cardExt   = new { timestamp = timeStamp, signature = sign, nonce_str = nonceStr };
                ViewData["cardExt"] = JsonConvert.SerializeObject(cardExt);
                return(View(jssdkUiPackage));
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                msg += "<br>" + ex.StackTrace;
                msg += "<br>==Source==<br>" + ex.Source;

                if (ex.InnerException != null)
                {
                    msg += "<br>===InnerException===<br>" + ex.InnerException.Message;
                }
                return(Content(msg));
            }
        }
示例#15
0
        public ActionResult ProcessorTask()
        {
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri().Split('#')[0]);

            return(View("WeChat/process/ProcessorTask", jssdkUiPackage));
        }
示例#16
0
        //单证查询
        public async Task <ActionResult> QueryDoc()
        {
            var jssdkUiPackage = await JSSDKHelper.GetJsSdkUiPackageAsync(appId, appSecret, Request.AbsoluteUri());

            ViewBag.AppId     = appId;
            ViewBag.Timestamp = jssdkUiPackage.Timestamp;
            ViewBag.NonceStr  = jssdkUiPackage.NonceStr;
            ViewBag.Signature = jssdkUiPackage.Signature;

            ViewBag.apihost = this._config.GetValue <string>("AppSetting:apihost");
            ViewBag.zone    = this._config.GetValue <string>("AppSetting:zone");
            return(View());
        }
示例#17
0
        public async Task <ActionResult> Index()
        {
            var jssdkUiPackage = await JSSDKHelper.GetJsSdkUiPackageAsync(appId, appSecret, Request.AbsoluteUri());

            return(View(jssdkUiPackage));
        }
示例#18
0
        /// <summary>
        ///  微信端 零件报工信息查看页
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <ActionResult> PartReportView(int id)
        {
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(appId, appSecret, Request.AbsoluteUri());

            return(View("Wechat/PartReportView", jssdkUiPackage));
        }
示例#19
0
        public async Task <IActionResult> WxPayIndex()
        {
            // 获取openId
            var openId = HttpContext.Session.GetString("OpenId");

            if (string.IsNullOrEmpty(openId))
            {
                return(Json(Url.Action("Index", "Home")));
            }
            var accessToken = HttpContext.Session.GetString("accessToken");

            HttpContext.Session.SetString("SiteUrl", _siteUrl);

            // 根据openId 查询用户
            var user = _authSrv.GetUserByExternalId(openId, 1);

            // 获取微信用户信息
            OAuthUserInfo userInfo = OAuthApi.GetUserInfo(accessToken, openId);

            // 用户存在则获取信息,不存在则创建用户
            if (user == null)
            {
                var newUser = new BaseUser {
                    UserName = openId, ExternalId = openId, ExternalType = 1, ExternalName = userInfo.nickname
                };
                var result = await _authSrv.CreateUser(newUser, openId);

                if (result.Succeeded)
                {
                    var role = await _authSrv.AddRolesAsync(openId, new string[] { "SysUser" });
                }
                user = newUser;
            }
            var paidOrders = _orderSrv.GetPaidOrders().Where(q => (q.OrderType == OrderType.BuyInStore || q.OrderType == OrderType.BuyOnline) && q.BuyerIdentity == openId);

            // Card
            var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(TenPayV3Info.AppId, TenPayV3Info.AppSecret, Request.AbsoluteUri());
            var api_ticket     = WxCardApiTicketContainer.TryGetWxCardApiTicket(TenPayV3Info.AppId, TenPayV3Info.AppSecret);

            // var openId = HttpContext.Session.GetString("OpenId");
            var timeStamp = TenPayV3Util.GetTimestamp();
            var nonceStr  = TenPayV3Util.GetNoncestr();
            var sign      = JSSDKHelper.GetcardExtSign(api_ticket, timeStamp, "pukHe541WmaHEBgW3gACiBCD4EbY", nonceStr);
            var cardExt   = new { timestamp = timeStamp, signature = sign, nonce_str = nonceStr };

            // 登陆Identity用户
            await _authSrv.Login(user);

            ViewData["credit"]         = user.Credit;
            ViewData["biz"]            = _biz;
            ViewData["userInfo"]       = userInfo;
            ViewData["paidOrders"]     = paidOrders;
            ViewData["jssdkUiPackage"] = jssdkUiPackage;
            ViewData["cardExt"]        = JsonConvert.SerializeObject(cardExt);

            return(View());
            // 前端菜单:直接支付,跳转js支付,余额支付跳转/Home/CreditPay,套餐支付:
        }