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)); }
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)); }
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)); }
/// <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); }
/// <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)); }
/// <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); }
/// <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); }
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)); }