public NormalResult Create(DomainContext domainContext, ScenicQRCodeEntity scenicQRCode) { if (scenicQRCode == null) { Debug.Assert(false, "scenicQRCode 为空"); return(new NormalResult("参数错误")); } //if (domainContext.Domain.Type == EnumDomainType.Free) //{ // //最大数量不允许超过10个 // if (GetTotalCount(domainContext) >= 5) // { // return new NormalResult("免费帐户创建场景二维码数量最多不可超过5个。"); // } //} WeixinCreateQRCodeArgs createArgs = new WeixinCreateQRCodeArgs(); createArgs.ActionInfo.Scene.SceneId = scenicQRCode.Id.ToString(); RequestApiResult <WeixinCreateQRCodeResult> createResult = QRCodeApiWrapper.Create(domainContext, createArgs); if (createResult.Success == false) { return(new NormalResult(createResult.Message)); } scenicQRCode.Ticket = createResult.ApiResult.Ticket; scenicQRCode.Url = createResult.ApiResult.Url; //下载二维码图片 FileDownloadAgentArgs downloadAgentArgs = new FileDownloadAgentArgs(); downloadAgentArgs.Domain = domainContext.Domain.Id; downloadAgentArgs.Url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + System.Web.HttpUtility.UrlEncode(createResult.ApiResult.Ticket); FileDownloadAgentResult downloadAgentResult = _fileService.DownloadAgent(downloadAgentArgs); if (downloadAgentResult.Success) { _log.Write("下载二维码返回", JsonConvert.SerializeObject(downloadAgentResult), TraceEventType.Verbose); scenicQRCode.QRCodeImageUrl = _fileService.FileServiceUri + downloadAgentResult.OutputFile; } else { return(new NormalResult(downloadAgentResult.Message)); } _dataBase.Insert(scenicQRCode); return(new NormalResult()); }
public static RequestApiResult <WeixinCreateQRCodeResult> Create(DomainContext domainContext, WeixinCreateQRCodeArgs args) { string accessToken = domainContext.AccessToken; RequestApiResult <WeixinCreateQRCodeResult> result = QRCodeApi.Create(accessToken, args); if (result.Success == false) { if (result.Retry) { if (result.ApiError.ErrorCode == 40001) { accessToken = AccessTokenGetter.Refresh(domainContext.AppId, accessToken); } result = QRCodeApi.Create(accessToken, args); if (result.Success == false) { _log.Write("QRCodeApi.Create 失败", result.GetDetail(), TraceEventType.Warning); } } else { _log.Write("QRCodeApi.Create 失败", result.GetDetail(), TraceEventType.Warning); } } return(result); }