public MiniCode2Session AuthUserOpenId() { string code = Request.Query["code"]; MiniCode2Session result = null; if (!string.IsNullOrEmpty(code)) { result = WXApi.GetOpenIdForWxMini(code); result.HasExistInWX = _UserSrv.ExistUnionId(result.unionid); return(result); } return(new MiniCode2Session()); }
void BtnWeichat_TouchUpInside(object sender, EventArgs e) { // 使用 WXApi.IsWXAppInstalled 之前注意事项 // 1. 配置 NSAppTransportSecurity // 2. LSApplicationQueriesSchemes 增加 weixin // 3. 注册 App: WXApi.RegisterApp(""); WXApi.RegisterApp("wx4e176430f6f0560d"); UMSocialWechatHandler.DefaultManager.SetAppId("wx4e176430f6f0560d", "586b357cd07033b781b0f66520720547", "http://www.umeng.com/social"); var result = WXApi.IsWXAppInstalled; var alertView = new UIAlertView("微信", result ? "已安装" : "未安装", null, "OK", null); alertView.Show(); }
public ResultObject <AccessToken> getMiniAccessToken() { ResultObject <AccessToken> result = new ResultObject <AccessToken>(); try { result.Entity = WXApi.getAccessToken(EduConfig.WXAppId, EduConfig.WXSecret); result.Entity.expire_DateTime = DateTime.Now.AddSeconds(7200); } catch (Exception ex) { result.ErrorMsg = ex.Message; } return(result); }
public JsonResult AsyncPic() { IEnumerable <Files> files = FilesService.instance().GetFilesByCompanyID(UserDateTicket.Company.ID); files = files.Where(m => m.RelationID == UserDateTicket.wx_config.ID); foreach (var item in files) { if (string.IsNullOrEmpty(item.media_id)) { string media_id = Utils.GetJsonValue(WXApi.Material_add_img(GetToken(), item.FilePath), "media_id"); item.media_id = media_id; FilesService.instance().Update(item); } } return(Json("ok", JsonRequestBehavior.AllowGet)); }
public bool GenQRInvite(string openId, string phone, string headerUrl) { var qr = _dbContext.DBQRInvite.Where(a => a.UserOpenId == openId && a.InviteQRType == InviteQRType.UserInvite).FirstOrDefault(); if (qr != null) { throw new EduException("不能重复创建邀请码"); } string qrDownFilePath = EduEnviroment.GetQRInviteUserFilePath($"OrigUserInvite_{phone}.png"); string qrWithLogoFilePath = EduEnviroment.GetQRInviteUserFilePath($"UserInviteWithLogo_{phone}.png"); string bkFilePath = EduEnviroment.GetQRFilePath("InviteBK.png"); string finalFilePath = EduEnviroment.GetQRInviteUserFilePath($"FinalUserInvite_{phone}.png"); AccessToken accessToken = WXApi.getAccessToken(); WXQRResult result = WXApi.getQR(WxConfig.QR_Invite_User + "_" + openId, accessToken.access_token); WXApi.DownLoadWXQR(result.ticket, qrDownFilePath); //添加Logo ,且添加文字 List <string> text = new List <string>(); text.Add("您的朋友邀请您加入云艺书院"); QRHelper.AddLogoForQR(headerUrl, new Bitmap(qrDownFilePath), qrWithLogoFilePath, text); //添加背景 QRHelper.AddBKForQR(bkFilePath, qrWithLogoFilePath, finalFilePath); qr = new EQRInvite() { OrigFilePath = EduEnviroment.VirPath_QRInviteUser + $"OrigUserInvite_{phone}.png", FileWithLogoPath = EduEnviroment.VirPath_QRInviteUser + $"UserInviteWithLogo_{phone}.png", FinalFilePath = EduEnviroment.VirPath_QRInviteUser + $"FinalUserInvite_{phone}.png", InviteQRType = InviteQRType.UserInvite, RecordStatus = RecordStatus.Normal, TargetUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + result.ticket + "", CreateDateTime = DateTime.Now, UserOpenId = openId }; _dbContext.DBQRInvite.Add(qr); _dbContext.SaveChanges(); return(true); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { //注册微信程序 WXApi.RegisterApp("wx3f94d21d67c4ae76"); //wxd930ea5d5a258f4f // create a new window instance based on the screen size Window = new UIWindow(UIScreen.MainScreen.Bounds); TestViewController vc = new TestViewController(); Window.RootViewController = vc; // If you have defined a root view controller, set it here: // Window.RootViewController = myViewController; // make the window visible Window.MakeKeyAndVisible(); return(true); }
/// <summary> /// 关注 /// </summary> private void SubscribeHandler() { NLogHelper.InfoTxt("SubscribeHandler In"); EUserInfo ui = _UserSrv.GetUserInfo(_wxMessage.FromUserName); if (ui == null) { var wxUser = WXApi.GetWXUserInfo(_wxMessage.FromUserName); ui = _UserSrv.AddOrUpdateFromWXUser(wxUser); _ResultMsg = _wxMessage.toText(WXReplyContent.NewUserAdd(ui.wx_Name)); } else { _ResultMsg = _wxMessage.toText(WXReplyContent.UserComing(ui.wx_Name)); } }
public HttpRequestMessage UpdateWX() { string json = ""; UserInfo user = AdminUtil.GetLoginUser(""); string result = WXApi.CreateMenu(AdminUtil.GetAccessToken(""), user.OrgID); if (Tools.GetJsonValue(result, "errcode") == "0") { json = "{\"code\":1,\"msg\":\"\"}"; } else { json = "{\"code\":0,\"msg\":\"errcode:" + Tools.GetJsonValue(result, "errcode") + ", errmsg:" + Tools.GetJsonValue(result, "errmsg") + "\"}"; } return(null); }
protected void Button1_Click(object sender, EventArgs e) { //WXApi.DownloadMedia("http://localhost:2454/UploadFile/aa.png"); //Response.Write(WXApi.UploadMedia(Session["token"].ToString(), "image", "d:\\_临时文件\\aa.png")); //获取天气预报 //string result = HttpRequestUtil.RequestUrl("http://www.weather.com.cn/data/sk/101220101.html", "GET"); //Response.Write(result); //result = Weixin.Mp.Util.Tools.GetJosnValue(result, "WSE"); //Response.Write(result); //Response.Write(AdminUtil.GetRootUrl()); //string result = WXApi.CreateMenu(AdminUtil.GetAccessToken(this), AdminUtil.GetLoginUser(this).OrgID); //Response.Write(AdminUtil.GetRootUrl()); //string path = MapPath("UploadFile/aa.png"); //string id = WXApi.UploadMedia(AdminUtil.GetAccessToken(this), "image", path); //Response.Write(id); Response.Write(WXMsgUtil.CreateTextJson("abc", WXApi.GetOpenIDs(AdminUtil.GetAccessToken(this)))); }
void WXSendMessage(string text) { try { SendMessageToWXReq req = new SendMessageToWXReq(); req.Text = text; req.BText = true; req.Scene = (int)WXScene.Session; var result = WXApi.SendReq(req); UIAlertView alertView = new UIAlertView("", "分享结果:" + result, null, "取消"); alertView.Show(); } catch (Exception ex) { UIAlertView alertView = new UIAlertView("", "错误:" + ex, null, "取消"); alertView.Show(); } }
public JsonResult AsyncMenu() { string result = WXApi.CreateMenu(GetToken(), UserDateTicket.Company.ID); if (Utils.GetJsonValue(result, "errcode") == "0") { return(Json(new { code = 1, msg = "" }, JsonRequestBehavior.AllowGet));// "{\"code\":1,\"msg\":\"\"}"; } else { return(Json(new { code = 0, msg = "errcode:" + Utils.GetJsonValue(result, "errcode") + ", errmsg:" + Utils.GetJsonValue(result, "errmsg") }, JsonRequestBehavior.AllowGet)); } }
public ResultNormal SendComment(InArtComment indata) { NLogHelper.InfoTxt($"[SendComment]unionId: {indata.unionId}"); ResultNormal result = new ResultNormal(); try { var checkRes = WXApi.CheckContentSec(indata.Content); if (checkRes.errcode == 0) { EArtComment artComment = new EArtComment { ArtId = indata.ArtId, Content = indata.Content, Praize = 0, UnionId = indata.unionId, CreateDateTime = DateTime.Now, RefId = 0, }; _WxMiniSrv.AddComment(artComment); var artInfo = _WxMiniSrv.GetArtInfo(indata.ArtId); artInfo.Comments++; _WxMiniSrv.SaveChanges(); } else { if (checkRes.errcode == 87014) { result.ErrorMsg = "请注意您的言论,请勿发布包含色情、违法等有害信息"; } else { result.ErrorMsg = checkRes.errMsg; } } } catch (Exception ex) { result.ErrorMsg = "发布评论失败"; } return(result); }
// // This method is invoked when the application has loaded and is ready to run. In this // method you should instantiate the window, load the UI into it and then make the window // visible. // // You have 17 seconds to return from this method, or iOS will terminate your application. // public override bool FinishedLaunching(UIApplication app, NSDictionary options) { // HockeyApp var manager = BITHockeyManager.SharedHockeyManager; manager.Configure("1578f0ce30e440b98f4478e239d38dd6"); manager.StartManager(); HockeyApp.MetricsManager.TrackEvent("Feedback"); manager.Authenticator.AuthenticateInstallation(); //Obsolete for crash only builds (assuming we're using it for more) // Azure CurrentPlatform.Init(); SQLitePCL.CurrentPlatform.Init(); // WeChat WXApi.RegiserApp("wx8b14701dca600e63"); DependencyService.Register <ILoginServiceWeChat, WeChatService>(); // Xamarin global::Xamarin.Forms.Forms.Init(); // Push Notifications App appToLoad = new App(); //if (!appToLoad.MockData) //{ // var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, new NSSet()); // UIApplication.SharedApplication.RegisterUserNotificationSettings(pushSettings); // UIApplication.SharedApplication.RegisterForRemoteNotifications(); //} // Grial Appearance.Configure(); GrialKit.Init(new ThemeColors(), "airmily.iOS.GrialLicense"); // Launch LoadApplication(appToLoad); UIApplication.SharedApplication.ApplicationSupportsShakeToEdit = true; return(base.FinishedLaunching(app, options)); }
//分享文本 partial void UIButton9_TouchUpInside(UIButton sender) { try { SendMessageToWXReq req = new SendMessageToWXReq(); req.Text = @"微信分享及收藏是指第三方App通过接入该功能,让用户可以从App分享文字、图片、音乐、视频、网页至微信好友会话、朋友圈或添加到微信收藏。 微信分享及收藏功能已向全体开发者开放,开发者在微信开放平台帐号下申请App并通过审核后,即可获得微信分享及收藏权限。 微信分享及收藏目前支持文字、图片、音乐、视频、网页共五种类型。开发者在App中在集成微信SDK后,可调用接口实现,以下依次是文字分享、图片分享、音乐分享、视频分享、网站分享的示例。"; req.BText = true; req.Scene = (int)WXScene.Session; var result = WXApi.SendReq(req); UIAlertView alertView = new UIAlertView("", "分享结果:" + result, null, "取消"); alertView.Show(); } catch (Exception ex) { UIAlertView alertView = new UIAlertView("", "异常:" + ex, null, "取消"); alertView.Show(); } }
/// <summary> /// 发送模板消息(余额提醒) /// </summary> /// <param name="openId">openId</param> /// <param name="mobile">手机号</param> /// <param name="blanceMsg">消息</param> /// <param name="url">链接</param> /// <returns></returns> public static bool SendTemplateMessageBlance(string openId, string mobile, string blanceMsg, string url = "") { ///data 示例 ///{{first.DATA}} ///账号:{{keyword1.DATA}} ///当前余额:{{keyword2.DATA}} ///{{remark.DATA}} TemplateMessage msg = new TemplateMessage(); msg.template_id = ""; msg.touser = openId; msg.url = url; msg.data = new { first = new { value = string.Format("尊敬的{0},您当前账户余额不足,希望您尽快充值!", mobile) }, keyword1 = new { value = mobile }, keyword2 = new { value = blanceMsg }, remark = new { value = "感谢你的使用。" } }; return(WXApi.SendTemplateMessage(AccessToken, msg)); }
public IActionResult OnPostCreateMenu() { ResultNormal result = new ResultNormal(); try { string access_token = WXApi.getAccessToken().access_token; string posturl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token; string menuStr = "";// " 菜单结构"; using (StreamReader sr = new StreamReader(EduEnviroment.Menus_JsonFilePath)) { menuStr = sr.ReadToEnd(); } result.SuccessMsg = HttpHelper.RequestUrlSendMsg(posturl, HttpHelper.HttpMethod.Post, menuStr, "application/json"); } catch (Exception ex) { result.ErrorMsg = ex.Message; // throw ex; } return(new JsonResult(result)); }
public void OnPostCreateTecQR() { Msg = "创建成功!"; string qrDownFilePath = EduEnviroment.GetQRInviteTecFilePath("WXInvite.png"); string bkFilePath = EduEnviroment.GetQRFilePath("InviteBK.png"); string finalFilePath = EduEnviroment.GetQRInviteTecFilePath("EduTecInvite.png"); try { AccessToken accessToken = WXApi.getAccessToken(); WXQRResult result = WXApi.getQR(WxConfig.QR_Invite_TecPre, accessToken.access_token); WXApi.DownLoadWXQR(result.ticket, qrDownFilePath); QRHelper.AddBKForQR(bkFilePath, qrDownFilePath, finalFilePath); } catch (Exception ex) { Msg = ex.Message; } }
public void OnPostGetPicMeterial() { try { string access_token = WXApi.getAccessToken().access_token; string wxUrl = $"https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={access_token}"; MaterialList_In paremeter = new MaterialList_In { type = "image", offset = 0, count = 20, }; var json = JsonConvert.SerializeObject(paremeter); string data = HttpHelper.RequestUrlSendMsg(wxUrl, HttpHelper.HttpMethod.Post, json); PicMedia = JsonConvert.DeserializeObject <JOMedia>(data); } catch (Exception ex) { Msg = ex.Message; } }
/// <summary> /// 拼接图文消息素材Json字符串 /// </summary> public static string GetArticlesJsonStr(PageBase page, string access_token, DataTable dt) { StringBuilder sbArticlesJson = new StringBuilder(); sbArticlesJson.Append("{\"articles\":["); int i = 0; foreach (DataRow dr in dt.Rows) { string path = page.MapPath(dr["ImgUrl"].ToString()); if (!File.Exists(path)) { return("{\"code\":0,\"msg\":\"要发送的图片不存在\"}"); } string msg = WXApi.UploadMedia(access_token, "image", path); // 上图片返回媒体ID string media_id = Tools.GetJsonValue(msg, "media_id"); sbArticlesJson.Append("{"); sbArticlesJson.Append("\"thumb_media_id\":\"" + media_id + "\","); sbArticlesJson.Append("\"author\":\"" + dr["Author"].ToString() + "\","); sbArticlesJson.Append("\"title\":\"" + dr["Title"].ToString() + "\","); sbArticlesJson.Append("\"content_source_url\":\"" + dr["TextUrl"].ToString() + "\","); sbArticlesJson.Append("\"content\":\"" + dr["Content"].ToString() + "\","); sbArticlesJson.Append("\"digest\":\"" + dr["Content"].ToString() + "\","); if (i == dt.Rows.Count - 1) { sbArticlesJson.Append("\"show_cover_pic\":\"1\"}"); } else { sbArticlesJson.Append("\"show_cover_pic\":\"1\"},"); } i++; } sbArticlesJson.Append("]}"); return(sbArticlesJson.ToString()); }
private JOMedia QueryNews() { if (_pageIndex * 20 >= _NewsTotalItems && _NewsTotalItems != -1) { return(null); } string access_token = WXApi.getAccessToken().access_token; string wxUrl = $"https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={access_token}"; MaterialList_In paremeter = new MaterialList_In { type = "news", offset = _pageIndex * 20, count = 20, }; var json = JsonConvert.SerializeObject(paremeter); string data = HttpHelper.RequestUrlSendMsg(wxUrl, HttpHelper.HttpMethod.Post, json); var JOMedia = JsonConvert.DeserializeObject <JOMedia>(data); _NewsTotalItems = Convert.ToInt32(JOMedia.total_count); return(JOMedia); }
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation) { //return base.OpenUrl(application, url, sourceApplication, annotation); return(WXApi.HandleOpenURL(url, wxApiDelegate)); }
/// <summary> /// 注册微信sdk /// </summary> public bool Register(string appId) { return(WXApi.RegisterApp(appId, "[Your-Universal-Links]")); }
public JsonResult SendNewGroup(string media_id) { string resultMsg = WXApi.Send(GetToken(), WXApiJson.CreateNewsJson(media_id, WXApi.GetOpenIDs(GetToken()))); return(Json("ok", JsonRequestBehavior.AllowGet)); }
public JsonResult SendText(string txt) { string resultMsg = WXApi.Send(GetToken(), WXApiJson.CreateTextJson(txt, WXApi.GetOpenIDs(GetToken()))); return(Json("ok", JsonRequestBehavior.AllowGet)); }
public JsonResult AsyncMessage() { Hashtable hash = new Hashtable(); IEnumerable <WX_Message> Messages = WX_MessageService.instance().GetEnumByCID(UserDateTicket.Company.ID); foreach (var item in Messages) { StringBuilder ArticlesJson = new StringBuilder(); if (string.IsNullOrEmpty(item.media_id)) { ArticlesJson.Append(WXApiJson.GetArticlesJsonStr(item.ID)); string msg = WXApi.Material_add_news(GetToken(), ArticlesJson.ToString()); if (Utils.GetJsonValue(msg, "errcode") != "") { hash["code"] = 0; hash["errcode"] = Utils.GetJsonValue(msg, "errcode"); hash["errmsg"] = Utils.GetJsonValue(msg, "errmsg"); return(Json(hash, JsonRequestBehavior.AllowGet)); } string media_id = Utils.GetJsonValue(msg, "media_id"); string backInfo = WXApi.Material_get(GetToken(), "{\"media_id\":\"" + media_id + "\"}"); if (Utils.GetJsonValue(backInfo, "errcode") != "") { hash["code"] = 0; hash["errcode"] = Utils.GetJsonValue(msg, "errcode"); hash["errmsg"] = Utils.GetJsonValue(msg, "errmsg"); return(Json(hash, JsonRequestBehavior.AllowGet)); } var serializer = JsonSerializer.Create(); var obj = serializer.Deserialize(new JsonTextReader(new StringReader(backInfo))) as JObject; var data = obj["news_item"]; for (int i = 0; i < item.Groups.Count(); i++) { if (string.IsNullOrEmpty(item.Groups.ToList()[i].URL)) { item.Groups.ToList()[i].URL = JsonHelper.GetJsonValue(data[i].ToString(), "url"); WX_MessageGroupService.instance().Update(item.Groups.ToList()[i]); } } item.media_id = media_id; WX_MessageService.instance().Update(item); } } hash["code"] = 1; return(Json(hash, JsonRequestBehavior.AllowGet)); //if (Utils.GetJsonValue(msg, "errcode") == "0") //{ // return Json(new { code = 1, msg = "" }, JsonRequestBehavior.AllowGet);// "{\"code\":1,\"msg\":\"\"}"; //} //else //{ // return Json(new // { // code = 0, // msg = "errcode:" + // Utils.GetJsonValue(msg, "errcode") + // ", errmsg:" + Utils.GetJsonValue(msg, "errmsg") // }, JsonRequestBehavior.AllowGet); //} }
/// <summary> /// 微信链接打开 /// </summary> /// <param name="url">URL.</param> public bool OpenUrl(NSUrl url) { return(WXApi.HandleOpenURL(url, this)); }
/// <summary> /// 群发 /// </summary> public string Send() { string type = Request["type"]; string data = Request["data"]; string access_token = AdminUtil.GetAccessToken(this); //获取access_token List <string> openidList = WXApi.GetOpenIDs(access_token); //获取关注者OpenID列表 UserInfo loginUser = AdminUtil.GetLoginUser(this); //当前登录用户 string resultMsg = null; //发送文本 if (type == "1") { resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateTextJson(data, openidList)); } //发送图片 if (type == "2") { string path = MapPath(data); if (!File.Exists(path)) { return("{\"code\":0,\"msg\":\"要发送的图片不存在\"}"); } string msg = WXApi.UploadMedia(access_token, "image", path); string media_id = Tools.GetJsonValue(msg, "media_id"); resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateImageJson(media_id, openidList)); } //发送图文消息 if (type == "3") { DataTable dt = ImgItemDal.GetImgItemTable(loginUser.OrgID, data); string articlesJson = ImgItemDal.GetArticlesJsonStr(this, access_token, dt); string newsMsg = WXApi.UploadNews(access_token, articlesJson); string newsid = Tools.GetJsonValue(newsMsg, "media_id"); resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateNewsJson(newsid, openidList)); } //结果处理 if (!string.IsNullOrWhiteSpace(resultMsg)) { string errcode = Tools.GetJsonValue(resultMsg, "errcode"); string errmsg = Tools.GetJsonValue(resultMsg, "errmsg"); if (errcode == "0") { return("{\"code\":1,\"msg\":\"\"}"); } else { return("{\"code\":0,\"msg\":\"errcode:" + errcode + ", errmsg:" + errmsg + "\"}"); } } else { return("{\"code\":0,\"msg\":\"type参数错误\"}"); } }
public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) { //return base.ContinueUserActivity(application, userActivity, completionHandler); return(WXApi.HandleOpenUniversalLink(userActivity, wxApiDelegate)); }
//微信链接打开 public bool Open(NSUrl url) { var result = WXApi.HandleOpenURL(url, this); return(result); }
//微信登录 public bool Log(string appID) { var result = WXApi.RegisterApp(appID); return(result); }