/// <summary> /// 批量创建公众号二维码 /// </summary> /// <returns></returns> public ActionResult CreateQrCode(QrCodeCreateDTO dto) { WeChatQRCodeFacade facade = new WeChatQRCodeFacade(); return(Json(facade.CreateWeChatQrCodeBatch(dto))); }
private ResultDTO CreateWeChatQrCodeBatchExt(QrCodeCreateDTO dto) { if (dto == null || dto.AppId == Guid.Empty || dto.CreateNo <= 0) { return new ResultDTO() { ResultCode = 1, Message = "参数为空" } } ; try { WeChatQrCodeSV worker = new WeChatQrCodeSV(); var developerInfo = WCPSV.Instance.GetDeveloperInfo(dto.AppId); if (developerInfo == null || string.IsNullOrEmpty(developerInfo.WAppId) || string.IsNullOrEmpty(developerInfo.WSecret)) { return new ResultDTO() { ResultCode = 3, Message = "未配置公众号" } } ; var tokenInfo = worker.GetToken(dto.AppId); ResultDTO ret = new ResultDTO(); //获取token失败 if (tokenInfo == null) { ret.ResultCode = 2; ret.Message = "获取微信access_token失败"; return(ret); } if (!tokenInfo.isSuccess) { ret.ResultCode = 2; ret.Message = tokenInfo.Message; return(ret); } ContextSession contextSession = ContextFactory.CurrentThreadContext; int successCount = 0; bool hasError = false; string errorMess = string.Empty; for (int i = 0; i < dto.CreateNo; i++) { var id = Guid.NewGuid(); var createResult = worker.CreateForeverQrcode(new ForeverQrcodeDTO() { SceneStr = id.ToString() }, tokenInfo); if (createResult == null) { hasError = true; errorMess = ""; break; } if (!createResult.isSuccess) { hasError = true; errorMess = createResult.Message; break; } WeChatQRCode qrCode = new WeChatQRCode { Id = id, WeChatPublicCode = dto.WeChatPublicCode, WeChatAppId = developerInfo.WAppId, WeChatSecret = developerInfo.WSecret, AppId = dto.AppId, QRNo = GetWeChatQRNoExt(), QRType = { Value = dto.QrType }, SpreadInfoId = Guid.Empty, WeChatTicket = createResult.Data, Description = dto.Description, EntityState = EntityState.Added }; contextSession.SaveObject(qrCode); contextSession.SaveChanges(); successCount++; } if (hasError) { if (successCount > 0) { ret.ResultCode = 5; ret.isSuccess = true; ret.Message = string.Format("本次应生成二维码数量:{0},实际生成数量:{1},失败原因:{2}", dto.CreateNo, successCount, errorMess); } else { ret.ResultCode = 4; ret.Message = errorMess; } return(ret); } return(new ResultDTO { isSuccess = true, Message = "success" }); } catch (Exception ex) { LogHelper.Error(string.Format("WeChatQRCodeBP.CreateWeChatQrCodeBatchExt异常,入参:{0}", JsonHelper.JsSerializer(dto)), ex); return(new ResultDTO { Message = "异常,请重试!" }); } }