/// <summary> /// 获取token,若token存在则返回当前值,若不存在则调用接口重新获取 /// </summary> /// <returns></returns> private static string GetAccessToken() { if (string.IsNullOrEmpty(AccessToken)) { //从配置文件获取corpid string corpid = WechatCommonPara.CorpId; //从配置文件获取corpsecret string corpsecret = WechatCommonPara.CorpSecret; string para = string.Format("corpid={0}&corpsecret={1}", corpid, corpsecret); //获取token string returnStr = CostomHttpRequest.HttpGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken", para); //转换成Object CropTokenResult tokenResult = JsonConvert.DeserializeObject <CropTokenResult>(returnStr); //取token失败则抛出异常 if (string.IsNullOrEmpty(tokenResult.access_token)) { throw new Exception(string.Format("errcode:{0},errmsg:{1}", tokenResult.errcode, tokenResult.errmsg)); } return(tokenResult.access_token); } else { return(AccessToken); } }
private CorpSendResult SendMessage(string url, CorpMessageBase sendData) { CorpSendResult result = new CorpSendResult(); //发出请求 string returnStr = CostomHttpRequest.HttpPost(url, JsonConvert.SerializeObject(sendData)); //返回结果反序列化 result = JsonConvert.DeserializeObject <CorpSendResult>(returnStr); return(result); }
/// <summary> /// 上传永久素材 /// media_id是可复用的,同一个media_id可用于消息的多次发送 /// </summary> /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param> /// <param name="path">文件路径</param> /// <param name="mediaId">返回的素材media_id</param> /// <returns></returns> public CommonResult Add(string type, string path, ref string mediaId) { CommonResult result = new CommonResult(); mediaId = ""; try { //url string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}"; string url = string.Format(urlFormat, CropToken.AccessToken, type); string returnStr = CostomHttpRequest.UploadFile(url, path); //发送消息 CropMaterialResult materialResult = JsonConvert.DeserializeObject <CropMaterialResult>(returnStr); //处理发送结果 if (materialResult.errcode != "0") { result.Success = false; result.ErrorMessage = string.Format("errcode:{0},errmsg:{1}", materialResult.errcode, materialResult.errmsg); } else { result.Success = true; mediaId = materialResult.media_id; result.ErrorMessage = string.Format("errcode:{0},errmsg:{1}", materialResult.errcode, materialResult.errmsg); } } catch (Exception ex) { result.Success = false; result.ErrorMessage = ex.Message; } return(result); }