public override Task <UploadImageResponse> UploadImage(UploadImageRequest request, ServerCallContext context) { var resp = new UploadImageResponse(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var result = WxWebApi.UploadImage(accessToken, request.File.ToByteArray()); if (result.ErrCode != 0) { resp.Error = new Error { ErrCode = result.ErrCode, ErrMsg = result.ErrMsg }; } else { resp.ImageId = result.MediaId; resp.Url = result.Url; } } else { resp.Error = new Error { ErrCode = 99999, ErrMsg = "AccessToken Missing" }; } return(Task.FromResult(resp)); }
public void Run(string appId, PerformContext context = null) { context.WriteLine("开始刷新JsTicket【{0}】...", appId); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + appId); if (accessToken.HasValue) { var resp = WxWebApi.GetJsTicket(accessToken); if (resp.ErrCode == 0) { _redis.StringSet(CacheKey.UserJsTicketPrefix + appId, resp.Ticket, new TimeSpan(0, 0, resp.ExpiresIn)); context.WriteLine("刷新JsTicket【{0}】成功...", appId); } else { context.WriteLine("刷新JsTicket【{0}】失败:{1}...", appId, resp.ErrMsg); throw new ServiceException(resp.ErrCode, resp.ErrMsg); } } else { context.WriteLine("刷新JsTicket失败:无法获取AccessToken..."); throw new ServiceException(-1, "刷新JsTicket失败:无法获取AccessToken..."); } }
public override Task <GetQrCodeResponse> GetQrCode(GetQrCodeRequest request, ServerCallContext context) { var resp = new GetQrCodeResponse(); var qrCodeUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="; var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var result = WxWebApi.CreateQrCode(accessToken, request.Data); if (result.ErrCode == 0) { resp.Expired = Util.GetTimestamp() + result.ExpireSeconds; resp.ImageUrl = result.Url; resp.QrcodeUrl = qrCodeUrl + result.Ticket; } else { resp.Error = new Error { ErrCode = result.ErrCode, ErrMsg = result.ErrMsg }; } } else { resp.Error = new Error { ErrCode = 99999, ErrMsg = "AccessToken Missing" }; } return(Task.FromResult(resp)); }
public override Task <GetAuthCodeUrlResponse> GetAuthCodeUrl(GetAuthCodeUrlRequest request, ServerCallContext context) { var resp = new GetAuthCodeUrlResponse { Url = WxWebApi.GetCodeUrl(_componentAppId, request.AppId, request.RedirectUrl) }; return(Task.FromResult(resp)); }
public void Template(string messageId, string appId, string openId, string templateId, string url, Dictionary <string, WxWebSendTemplateRequest.DataItem> data, string formId, PerformContext context) { var messageStatus = new MessageStatus(_redis, messageId); messageStatus.Sended(openId); context.WriteLine("向用户「{0}」@「{1}」发送模版消息「{2}」...", openId, appId, templateId); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + appId); if (accessToken.HasValue) { if (string.IsNullOrEmpty(formId)) { var resp = WxWebApi.SendTemplate(accessToken, openId, templateId, url, data); if (resp.ErrCode == 0) { messageStatus.SetTemplateMap(resp.MsgId.ToString()); context.WriteLine("消息发送成功...[MsgId: {0}]", resp.MsgId); } else { messageStatus.SendError(openId); context.WriteLine("消息发送失败:{0}...", resp.ErrMsg); throw new ServiceException(resp.ErrCode, resp.ErrMsg); } } else { var tmpData = new Dictionary <string, WxAppSendTemplateRequest.DataItem>(); foreach (var item in data) { tmpData.Add(item.Key, new WxAppSendTemplateRequest.DataItem { Value = item.Value.Value }); } var resp = WxAppApi.SendTemplate(accessToken, openId, templateId, url, formId, tmpData); if (resp.ErrCode == 0) { messageStatus.Success(openId); context.WriteLine("消息发送成功..."); } else { messageStatus.SendError(openId); context.WriteLine("消息发送失败:{0}...", resp.ErrMsg); throw new ServiceException(resp.ErrCode, resp.ErrMsg); } } } else { messageStatus.SendError(openId); context.WriteLine("消息发送失败:无法获取AccessToken..."); throw new ServiceException(-1, "消息发送失败:无法获取AccessToken..."); } }
public override Task <GetUserInfoResponse> GetUserInfo(GetUserInfoRequest request, ServerCallContext context) { var resp = new GetUserInfoResponse(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var data = WxWebApi.GetUserInfo(accessToken, request.OpenId); if (data.ErrCode == 0) { resp.SubscribeTime = data.Subscribe == 1 ? data.SubscribeTime : 0; resp.OpenId = data.OpenId; if (resp.SubscribeTime != 0) { resp.NickName = data.NickName; resp.Sex = data.Sex; resp.City = data.City; resp.Province = data.Province; resp.Country = data.Country; resp.Photo = data.HeadImgUrl; resp.UnionId = data.UnionId; } } else { resp.Error = new Error { ErrCode = data.ErrCode, ErrMsg = data.ErrMsg }; } } else { resp.Error = new Error { ErrCode = 99999, ErrMsg = "AccessToken Missing" }; } return(Task.FromResult(resp)); }
public override Task <GetOpenIdByCodeResponse> GetOpenId(GetOpenIdByCodeRequest request, ServerCallContext context) { var resp = new GetOpenIdByCodeResponse(); var data = WxWebApi.GetAccessToken(_componentAppId, _componentAccessToken, request.AppId, request.Code); if (data.ErrCode == 0) { resp.OpenId = data.OpenId; resp.SecretKey = data.AccessToken; } else { resp.Error = new Error { ErrCode = data.ErrCode, ErrMsg = data.ErrMsg }; } return(Task.FromResult(resp)); }
public override Task <Error> DeleteImage(G.DeleteImageRequest request, ServerCallContext context) { var resp = new Error(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var result = WxWebApi.DeleteImage(accessToken, request.ImageId); if (result.ErrCode != 0) { resp.ErrCode = result.ErrCode; resp.ErrMsg = result.ErrMsg; } } else { resp.ErrCode = 99999; resp.ErrMsg = "AccessToken Missing"; } return(Task.FromResult(resp)); }
public override Task <Error> CreateMenu(CreateMenuRequest request, ServerCallContext context) { var resp = new Error(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var data = WxWebApi.SetMenu(accessToken, request.Config); if (data.ErrCode != 0) { resp.ErrCode = data.ErrCode; resp.ErrMsg = data.ErrMsg; } } else { resp.ErrCode = 99999; resp.ErrMsg = "AccessToken Missing"; } return(Task.FromResult(resp)); }
public override Task <G.GetImageListResponse> GetImageList(G.GetImageListRequest request, ServerCallContext context) { var resp = new G.GetImageListResponse(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var result = WxWebApi.GetImageList(accessToken, request.Page); if (result.ErrCode == 0) { resp.Total = result.TotalCount; foreach (var item in result.List) { resp.List.Add(new ImageItem { ImageId = item.MediaId, UpdateTime = item.UpdateTime, Url = item.Url }); } } else { resp.Error = new Error { ErrCode = result.ErrCode, ErrMsg = result.ErrMsg }; } } else { resp.Error = new Error { ErrCode = 99999, ErrMsg = "AccessToken Missing" }; } return(Task.FromResult(resp)); }
public override Task <GetTemplateResponse> GetTemplate(GetInfoRequest request, ServerCallContext context) { var resp = new GetTemplateResponse(); var accessToken = _redis.StringGet(CacheKey.UserAccessTokenPrefix + request.AppId); if (accessToken.HasValue) { var isWxApp = _redis.KeyExists(CacheKey.UserIsWxAppPrefix + request.AppId); if (isWxApp) { var data = WxAppApi.GetTemplateList(accessToken); if (data.ErrCode != 0) { resp.Error = new Error { ErrCode = data.ErrCode, ErrMsg = data.ErrMsg }; } else { foreach (var item in data.TemplateList) { resp.TemplateList.Add(new GetTemplateResponse.Types.ListItem { TemplateId = item.TemplateId, Title = item.Title, Content = item.Content, Example = item.Example }); } } } else { var data = WxWebApi.GetTemplateList(accessToken); if (data.ErrCode != 0) { resp.Error = new Error { ErrCode = data.ErrCode, ErrMsg = data.ErrMsg }; } else { foreach (var item in data.TemplateList) { resp.TemplateList.Add(new GetTemplateResponse.Types.ListItem { TemplateId = item.TemplateId, Title = item.Title, PrimaryIndustry = item.PrimaryIndustry, DeputyIndustry = item.DeputyIndustry, Content = item.Content, Example = item.Example }); } } } } else { resp.Error = new Error { ErrCode = 99999, ErrMsg = "AccessToken Missing" }; } return(Task.FromResult(resp)); }