Exemple #1
0
        public ActionResult Index()
        {
            ViewBag.Title = "JSSDK demo";
            var appId     = WeixinConfig.AppID;
            var nonceStr  = JSAPI.CreateNonce_str();
            var timestamp = JSAPI.CreatenTimestamp();
            var domain    = System.Configuration.ConfigurationManager.AppSettings["Domain"];
            var url       = domain + Request.Url.PathAndQuery;
            var jsTickect = WeixinConfig.TokenHelper.GetJSTickect();
            var string1   = "";
            var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1);
            var model     = new JSSDKModel
            {
                appId       = appId,
                nonceStr    = nonceStr,
                signature   = signature,
                timestamp   = timestamp,
                shareUrl    = url,
                jsapiTicket = jsTickect,
                shareImg    = domain + Url.Content("/images/ad.jpg"),
                string1     = string1,
            };

            return(View(model));
        }
Exemple #2
0
        public ActionResult Index()
        {
            var appId     = WeixinConfig.AppID;
            var appSecret = WeixinConfig.AppSecret;

            var nonceStr  = Util.CreateNonce_str();
            var timestamp = Util.CreateTimestamp();
            var domain    = System.Configuration.ConfigurationManager.AppSettings["Domain"];
            var url       = domain + Request.Url.PathAndQuery;
            var jsTickect = "";

            using (CommanderServiceClient client = new CommanderServiceClient())
            {
                jsTickect = client.GetJsTicket(appId, appSecret, false);
            }
            var string1   = "";
            var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1);
            var model     = new JSSDKModel
            {
                appId       = appId,
                nonceStr    = nonceStr,
                signature   = signature,
                timestamp   = timestamp,
                shareUrl    = url,
                jsapiTicket = jsTickect,
                shareImg    = domain + Url.Content("/images/ad.jpg"),
                string1     = string1,
            };

            return(View(model));
        }
Exemple #3
0
        public ActionResult JsApi(string shareUrl = "")
        {
            string url       = "";
            var    appId     = WeixinConfig.AppID;
            var    nonceStr  = Util.CreateNonce_str();
            var    timestamp = Util.CreateTimestamp();
            var    domain    = System.Configuration.ConfigurationManager.AppSettings["Domain"];

            if (string.IsNullOrEmpty(shareUrl))
            {
                url = domain + Request.Url.PathAndQuery;
            }
            else
            {
                url = shareUrl;
            }
            var jsTickect = WeixinConfig.TokenHelper.GetJSTickect();
            var string1   = "";
            var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1);
            var model     = new JSSDKModel
            {
                appId       = appId,
                nonceStr    = nonceStr,
                signature   = signature,
                timestamp   = timestamp,
                shareUrl    = url,
                jsapiTicket = jsTickect,
                //shareImg = domain + Url.Content("/images/ad.jpg"),
                string1 = string1,
            };

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Exemple #4
0
        /// <summary>
        /// 获得微信参数
        /// </summary>
        /// <param name="URL"></param>
        /// <returns></returns>
        public JSSDKModel GetWechatParams(string URL)
        {
            /// 微信接口属性
            var appId    = System.Web.Configuration.WebConfigurationManager.AppSettings["appid"].ToString();
            var nonceStr = JsonHelper.CreatenNonce_str();
            //LogHelper.Info("------------Shared-----nonceStr:" + nonceStr);
            var timestamp = JsonHelper.CreatenTimestamp();
            //LogHelper.Info("------------Shared-----timestamp:" + timestamp);

            string realUrl = URL.Split(new char[] { '#' })[0];
            //LogHelper.Info("------------Shared-----realUrl:" + realUrl);

            AccessTokenModel accessTokenModel = GetAccessToken();

            JSSDKModel JsSdkModel = new JSSDKModel();

            if (accessTokenModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                //LogHelper.Info("------------Shared-----token-error-logic:" + accessTokenModel.type);
                JsSdkModel.type    = accessTokenModel.type;
                JsSdkModel.content = accessTokenModel.content;
                return(JsSdkModel);
            }

            JsapiTicketModel jsapiTicketModel = GetTickect(accessTokenModel.access_token);

            if (jsapiTicketModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                //LogHelper.Info("------------Shared-----ticket-error-logic:" + jsapiTicketModel.type);
                JsSdkModel.type    = jsapiTicketModel.type;
                JsSdkModel.content = jsapiTicketModel.content;
                return(JsSdkModel);
            }

            var string1   = "";
            var signature = JsonHelper.GetSignature(jsapiTicketModel.ticket, nonceStr, timestamp, realUrl, out string1);

            //LogHelper.Info("------------Shared-----signature:" + signature);
            //LogHelper.Info("------------Shared-----string1:" + string1);

            string[] jsApiList = { "onMenuShareTimeline", "onMenuShareAppMessage" };/// 分享朋友和朋友圈

            ///
            JsSdkModel.appId       = appId;
            JsSdkModel.nonceStr    = nonceStr;
            JsSdkModel.signature   = signature;
            JsSdkModel.timestamp   = timestamp;
            JsSdkModel.shareUrl    = URL;
            JsSdkModel.jsapiTicket = jsapiTicketModel.ticket;
            JsSdkModel.string1     = string1;
            JsSdkModel.jsApiList   = jsApiList;
            JsSdkModel.type        = (int)ShareUtils.JsonType.typeSucc;

            return(JsSdkModel);
        }
Exemple #5
0
        /// <summary>
        /// 获得专题页分享信息
        /// </summary>
        /// <param name="Title"></param>
        /// <param name="Description"></param>
        /// <param name="SharedImage"></param>
        /// <param name="URL"></param>
        /// <returns></returns>
        public JsonResult GetSpecialPageSharedInfo(string Title, string Description, string SharedImage, string URL)
        {
            ///
            SpecialPageModel SpecialPageModel = new SpecialPageModel();

            SpecialPageModel.Title       = Title;
            SpecialPageModel.Description = Description;
            SpecialPageModel.SharedImage = SharedImage;

            /// 获得微信配置信息
            JSSDKModel JsSdkModel = GetWechatParams(URL);

            if (JsSdkModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                return(Json(new
                {
                    type = JsSdkModel.type,
                    content = JsSdkModel.content
                }, JsonRequestBehavior.AllowGet));
            }
            //LogHelper.Info("------------Shared-----Title:" + SpecialPageModel.Title);
            //LogHelper.Info("------------Shared-----ImagePath:" + SpecialPageModel.SharedImage);
            //LogHelper.Info("------------Shared-----Description:" + SpecialPageModel.Description);
            //LogHelper.Info("------------Shared-----Url:" + URL);

            return(Json(new
            {
                type = JsSdkModel.type,
                data = new
                {
                    appId = JsSdkModel.appId,
                    timestamp = JsSdkModel.timestamp,
                    nonceStr = JsSdkModel.nonceStr,
                    signature = JsSdkModel.signature,
                    jsApiList = JsSdkModel.jsApiList,
                    Title = SpecialPageModel.Title,
                    ImagePath = SpecialPageModel.SharedImage,
                    Description = SpecialPageModel.Description,
                    Url = URL
                }
            }, JsonRequestBehavior.AllowGet));
        }
Exemple #6
0
        /// <summary>
        /// 拼生活详情页分享Json
        /// </summary>
        /// <param name="URL"></param>
        /// <returns></returns>
        private JsonResult PinLifeProductDetail(string URL)
        {
            string     sku  = "";
            string     pid  = "";
            JsonResult json = null;

            Uri    uri      = new Uri(URL);
            int    index    = uri.Query.IndexOf("?");
            string urlQuery = uri.Query.Substring(index + 1, uri.Query.Length - 1);

            string[] urlParams = urlQuery.Split('&');
            foreach (string param in urlParams)
            {
                string[] items = param.Split('=');
                if (items[0].Equals("sku"))
                {
                    sku = items[1];
                }
                else if (items[0].Equals("pid"))
                {
                    pid = items[1];
                }
            }
            LogHelper.Info("------------PinLifeDetail-----URL1:" + URL);

            IList <ProductInfoModel> productsDetail = new List <ProductInfoModel>();

            if (!string.IsNullOrEmpty(sku) && !string.IsNullOrEmpty(pid))
            {
                // 拼生活商品详情页
                productsDetail = productBll.GetProductFightDetailForShare(sku, base.ExchangeRate, Int32.Parse(pid));
                LogHelper.Info("------------PinLifeDetail-----productsDetail:" + productsDetail);
            }
            else
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_PinLife_ParamIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            /// 判断集合是否为空
            if (productsDetail == null || productsDetail.Count() == 0)
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_PinLifeDetailListIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            LogHelper.Info("------------PinLifeDetail-----URL2:" + URL);
            LogHelper.Info("------------PinLifeDetail-----ImagePath:" + productsDetail.FirstOrDefault().ImagePath);

            // 获得商品净重、净含量信息,再重新装配数据集合
            List <ProductInfoModel> productDetailProductList = new List <ProductInfoModel>();

            foreach (ProductInfoModel product in productsDetail)
            {
                string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit);
                product.NetWeightUnit = neight;
                productDetailProductList.Add(product);
            }

            // 拼生活详情页分享信息
            ProductModel ProductViewModel = GetPinLifeDetailSharedInfo(productDetailProductList);

            /// 获得微信配置信息
            JSSDKModel JsSdkModel = GetWechatParams(URL);

            if (JsSdkModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                return(Json(new
                {
                    type = JsSdkModel.type,
                    content = JsSdkModel.content
                }, JsonRequestBehavior.AllowGet));
            }

            /*LogHelper.Info("------------PinLifeDetail-------sku:" + sku);
             * LogHelper.Info("------------PinLifeDetail-------pid:" + pid);
             * LogHelper.Info("------------Shared-----Title:" + ProductViewModel.Title);
             * LogHelper.Info("------------Shared-----ImagePath:" + ProductViewModel.ImagePath);
             * LogHelper.Info("------------Shared-----Description:" + ProductViewModel.Description);*/

            json = Json(new
            {
                type = JsSdkModel.type,
                data = new
                {
                    appId       = JsSdkModel.appId,
                    timestamp   = JsSdkModel.timestamp,
                    nonceStr    = JsSdkModel.nonceStr,
                    signature   = JsSdkModel.signature,
                    jsApiList   = JsSdkModel.jsApiList,
                    Title       = ProductViewModel.Title,
                    ImagePath   = ProductViewModel.ImagePath,
                    Description = ProductViewModel.Description,
                    Url         = URL
                }
            }, JsonRequestBehavior.AllowGet);

            return(json);
        }
Exemple #7
0
        /// <summary>
        /// 获得团详情页分享Json
        /// </summary>
        /// <param name="URL"></param>
        /// <returns></returns>
        private JsonResult TeamJoinDetail(string URL)
        {
            string     TeamCodeStr  = "";
            string     OrderCodeStr = "";
            JsonResult json         = null;

            Uri    uri      = new Uri(URL);
            int    index    = uri.Query.IndexOf("?");
            string urlQuery = uri.Query.Substring(index + 1, uri.Query.Length - 1);

            string[] urlParams = urlQuery.Split('&');
            foreach (string param in urlParams)
            {
                string[] items = param.Split('=');
                if (items[0].Equals("TeamCode"))
                {
                    TeamCodeStr = items[1];
                }
                else if (items[0].Equals("OrderCode"))
                {
                    OrderCodeStr = items[1];
                }
            }
            //LogHelper.Info("------------Shared-----URL1:" + URL);

            IList <TeamDetailEntity> teamDetailList = null;

            if (!string.IsNullOrEmpty(TeamCodeStr))
            {
                /// 获取团详情信息
                teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr);
                //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList);
            }
            else if (!string.IsNullOrEmpty(OrderCodeStr))
            {
                TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCodeStr);
                //LogHelper.Info("------------Shared-----teamInfoEntity:" + teamInfoEntity);
                if (teamInfoEntity != null)
                {
                    TeamCodeStr = teamInfoEntity.TeamCode;
                    //LogHelper.Info("------------Shared-----TeamCodeStr:" + TeamCodeStr);

                    /// 获取团详情信息
                    teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr);
                    //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList);
                }
            }
            else
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_TeamCodeIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            /// 判断集合是否为空
            if (teamDetailList == null || teamDetailList.Count() == 0)
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_TeamListIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            //LogHelper.Info("------------Shared-----URL2:" + URL);
            //LogHelper.Info("------------Shared-----ImagePath:" + teamDetailList.First().ImagePath);

            // 获得商品净重、净含量信息,再重新装配数据集合
            List <TeamDetailEntity> teamDetailProductList = new List <TeamDetailEntity>();

            foreach (TeamDetailEntity product in teamDetailList)
            {
                string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit);
                product.NetWeightUnit = neight;
                teamDetailProductList.Add(product);
            }

            /// 获得团详情页分享对象
            TeamSharedModel teamSharedModel = GetTeamSharedInfo(teamDetailProductList);

            /// 获得微信配置信息
            JSSDKModel JsSdkModel = GetWechatParams(URL);

            if (JsSdkModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                return(Json(new
                {
                    type = JsSdkModel.type,
                    content = JsSdkModel.content
                }, JsonRequestBehavior.AllowGet));
            }

            //LogHelper.Info("------------Shared-------TeamCode:" + TeamCodeStr);

            // 获得团成员剩余数量
            int value = teamSharedModel.RestTeamMemberNum;

            /*LogHelper.Info("------------Shared----RestTeamMemberNum-----RestTeamMemberNum:" + value);
             * LogHelper.Info("------------Shared-----Title:" + teamSharedModel.Title);
             * LogHelper.Info("------------Shared-----ImagePath:" + teamSharedModel.ImagePath);
             * LogHelper.Info("------------Shared-----Description:" + teamSharedModel.Description);
             * LogHelper.Info("------------Shared-----URL3:" + teamSharedModel.Url);*/

            json = Json(new
            {
                type = JsSdkModel.type,
                data = new
                {
                    appId       = JsSdkModel.appId,
                    timestamp   = JsSdkModel.timestamp,
                    nonceStr    = JsSdkModel.nonceStr,
                    signature   = JsSdkModel.signature,
                    jsApiList   = JsSdkModel.jsApiList,
                    Title       = teamSharedModel.Title,
                    ImagePath   = teamSharedModel.ImagePath,
                    Description = teamSharedModel.Description,
                    Url         = URL
                }
            }, JsonRequestBehavior.AllowGet);

            return(json);
        }
Exemple #8
0
        public JsonResult GetSharedInfo(string TeamCode, string URL)
        {
            /// 获取团详情信息
            var teamDetailList = teamBll.GetTeamDetailList(TeamCode);

            if (teamDetailList.Count() == 0)
            {
                return(null);
            }

            LogHelper.Info("------------TeamDetail-----URL:" + URL);
            LogHelper.Info("------------TeamDetail-----ImagePath:" + teamDetailList.First().ImagePath);

            /// 团分享对象Model
            TeamSharedModel teamSharedModel = new TeamSharedModel();

            /// 登录用户ID
            int LoginUserId = 0;

            // 登录用户
            if (base.LoginUser != null)
            {
                LoginUserId = base.LoginUser.UserID;
            }

            teamSharedModel.RestTeamMemberNum = (teamDetailList.First().TeamNumbers - teamDetailList.Count());
            LogHelper.Info("------------RestTeamMemberNum-----RestTeamMemberNum1:" + teamSharedModel.RestTeamMemberNum);

            /// 用户已经登录
            if (LoginUserId > 0)
            {
                /// 团成员
                if (teamDetailList.Where(d => d.UserId == LoginUserId).Count() > 0)
                {
                    /// 标题
                    StringBuilder strbul = new StringBuilder();
                    strbul.Append("我参加了健康绿氧").Append(teamDetailList.First().ProductName)
                    .Append(teamDetailList.First().MainValue).Append(teamDetailList.First().SubValue)
                    .Append(teamDetailList.First().NetWeightUnit).Append("拼单!");

                    teamSharedModel.Title = strbul.ToString();

                    /// 第一张缩略图(180x180图)
                    teamSharedModel.ImagePath = PathHelper.GetImageSmallUrl(teamDetailList.First().ImagePath);

                    /// 描述
                    if (teamDetailList.Count() < teamDetailList.First().TeamNumbers)
                    {
                        teamSharedModel.Description = "【还差"
                                                      + (teamDetailList.First().TeamNumbers - teamDetailList.Count())
                                                      + "x人】健康绿氧,贵州茅台怀桥酒厂发货,全场包邮,一起实惠一起拼!";
                    }
                    else
                    {
                        teamSharedModel.Description = "团人数已经满了";
                    }

                    /// 团详情页链接

                    /*teamSharedModel.Url = System.Web.Configuration.WebConfigurationManager.AppSettings["sharedUrl"].ToString()
                     + teamDetailList.First().TeamCode + "&Flag=1";*/
                }
                /// 未参团
                else
                {
                    /// 标题
                    StringBuilder strbul = new StringBuilder();
                    strbul.Append(teamDetailList.First().ProductName).Append(teamDetailList.First().MainValue)
                    .Append(teamDetailList.First().SubValue).Append(teamDetailList.First().NetWeightUnit);

                    teamSharedModel.Title = strbul.ToString();

                    /// 第一张缩略图(180x180图)
                    teamSharedModel.ImagePath = PathHelper.GetImageSmallUrl(teamDetailList.First().ImagePath);

                    /// 描述
                    teamSharedModel.Description = "健康绿氧,贵州茅台怀桥酒厂发货,全场包邮,一起实惠一起拼!";

                    /// 团详情页链接

                    /*teamSharedModel.Url = System.Web.Configuration.WebConfigurationManager.AppSettings["sharedUrl"].ToString()
                     + teamDetailList.First().TeamCode + "&Flag=1";*/
                }
            }
            /// 未登录
            else
            {
                /// 标题
                StringBuilder strbul = new StringBuilder();
                strbul.Append(teamDetailList.First().ProductName).Append(teamDetailList.First().MainValue)
                .Append(teamDetailList.First().SubValue).Append(teamDetailList.First().NetWeightUnit);

                teamSharedModel.Title = strbul.ToString();

                /// 第一张缩略图(180x180图)
                teamSharedModel.ImagePath = PathHelper.GetImageSmallUrl(teamDetailList.First().ImagePath);

                /// 描述
                teamSharedModel.Description = "健康绿氧,贵州茅台怀桥酒厂发货,全场包邮,一起实惠一起拼!";

                /// 团详情页链接

                /*teamSharedModel.Url = System.Web.Configuration.WebConfigurationManager.AppSettings["sharedUrl"].ToString()
                 + teamDetailList.First().TeamCode + "&Flag=1";*/
            }

            /// 微信接口属性
            var appId    = System.Web.Configuration.WebConfigurationManager.AppSettings["appid"].ToString();
            var nonceStr = JsonHelper.CreatenNonce_str();

            LogHelper.Info("------------TeamDetail-----nonceStr:" + nonceStr);
            var timestamp = JsonHelper.CreatenTimestamp();

            LogHelper.Info("------------TeamDetail-----timestamp:" + timestamp);
            //var domain = System.Configuration.ConfigurationManager.AppSettings["MServer"];
            //var url = domain + Request.Url.PathAndQuery;
            //var url = Request.Url.AbsoluteUri;
            string realUrl = URL.Split(new char[] { '#' })[0];

            teamSharedModel.Url = realUrl;
            LogHelper.Info("------------TeamDetail-----realUrl:" + realUrl);
            // var url = Request.Url.AbsoluteUri;

            // LogHelper.Info("------------TeamDetail-----url:" + url);
            AccessTokenModel accessTokenModel = GetAccessToken();

            if (accessTokenModel.type == 2)
            {
                LogHelper.Info("------------TeamDetail-----token-error-logic:" + accessTokenModel.type);
                return(Json(new
                {
                    type = accessTokenModel.type,
                    content = accessTokenModel.content
                }, JsonRequestBehavior.AllowGet));
            }

            JsapiTicketModel jsapiTicketModel = GetTickect(accessTokenModel.access_token);

            if (jsapiTicketModel.type == 2)
            {
                LogHelper.Info("------------TeamDetail-----ticket-error-logic:" + jsapiTicketModel.type);
                return(Json(new
                {
                    type = jsapiTicketModel.type,
                    content = jsapiTicketModel.content
                }, JsonRequestBehavior.AllowGet));
            }

            var string1   = "";
            var signature = JsonHelper.GetSignature(jsapiTicketModel.ticket, nonceStr, timestamp, realUrl, out string1);

            LogHelper.Info("------------TeamDetail-----signature:" + signature);
            LogHelper.Info("------------TeamDetail-----string1:" + string1);
            string[] jsApiList = { "onMenuShareTimeline", "onMenuShareAppMessage" };/// 分享朋友和朋友圈

            /// 微信接口必填参数Model
            var model = new JSSDKModel
            {
                appId       = appId,
                nonceStr    = nonceStr,
                signature   = signature,
                timestamp   = timestamp,
                shareUrl    = realUrl,
                jsapiTicket = jsapiTicketModel.ticket,
                //shareImg = domain + Url.Content("/images/ad.jpg"),
                string1   = string1,
                jsApiList = jsApiList,
                type      = 1
            };

            LogHelper.Info("------------RestTeamMemberNum-----TeamCode:" + TeamCode);
            int value = teamSharedModel.RestTeamMemberNum;

            LogHelper.Info("------------RestTeamMemberNum-----RestTeamMemberNum2:" + value);


            LogHelper.Info("------------TeamDetil-----Title:" + teamSharedModel.Title);
            LogHelper.Info("------------TeamDetil-----ImagePath:" + teamSharedModel.ImagePath);
            LogHelper.Info("------------TeamDetil-----Description:" + teamSharedModel.Description);
            LogHelper.Info("------------TeamDetil-----Url:" + teamSharedModel.Url);

            return(Json(new
            {
                type = model.type,
                data = new
                {
                    appId = appId,
                    timestamp = timestamp,
                    nonceStr = nonceStr,
                    signature = signature,
                    jsApiList = jsApiList
                    ,
                    Title = teamSharedModel.Title,
                    ImagePath = teamSharedModel.ImagePath,

                    Description = teamSharedModel.Description
                    ,
                    RestTeamMemberNum = value,

                    Url = teamSharedModel.Url
                }
            }, JsonRequestBehavior.AllowGet));
        }