/// <summary> /// Reads the Json response and applies it to local properties. /// </summary> /// <param name="result"></param> private AccountServiceResponse ParseResult(string result) { try { AccountServiceResponse res = JsonUtility.FromJson <AccountServiceResponse>(result); // Unity's JsonUtility does not support deserializing Dictionary, we manually parse it, dirty & ugly af, better then using a 3rd party lib if (res.ReturnCode == AccountServiceReturnCodes.Success) { string[] parts = result.Split(new[] { "\"ApplicationIds\":{" }, StringSplitOptions.RemoveEmptyEntries); parts = parts[1].Split('}'); string applicationIds = parts[0]; if (!string.IsNullOrEmpty(applicationIds)) { parts = applicationIds.Split(new[] { ',', '"', ':' }, StringSplitOptions.RemoveEmptyEntries); res.ApplicationIds = new Dictionary <string, string>(parts.Length / 2); for (int i = 0; i < parts.Length; i = i + 2) { res.ApplicationIds.Add(parts[i], parts[i + 1]); } } else { Debug.LogError("The server did not return any AppId, ApplicationIds was empty in the response."); return(null); } } return(res); } catch (Exception ex) // probably JSON parsing exception, check if returned string is valid JSON { Debug.LogException(ex); return(null); } }
public ActionResult Close(CloseAccount model) { try { AccountServiceResponse rsp = model.Save(); if (string.IsNullOrWhiteSpace(rsp.CodeText)) { rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); } return(Json(rsp)); } catch (ConflictException ex) { _logger.Error(LogTypes.AccountClose, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountClose, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
/// <summary> /// Reads the Json response and applies it to local properties. /// </summary> /// <param name="result"></param> private void ParseResult(string result) { if (string.IsNullOrEmpty(result)) { this.Message = "Server's response was empty. Please register through account website during this service interruption."; return; } try { AccountServiceResponse res = UnityEngine.JsonUtility.FromJson <AccountServiceResponse>(result); this.ReturnCode = res.ReturnCode; this.Message = res.Message; if (this.ReturnCode == 0) { // returnCode == 0 means: all ok. message is new AppId this.AppId = this.Message; } else { // any error gives returnCode != 0 this.AppId = string.Empty; } } catch (Exception ex) // probably JSON parsing exception, check if returned string is valid JSON { this.ReturnCode = -1; this.Message = ex.Message; } }
public ActionResult AreaRecharing(RechargingAccount model) { try { string pageHtml = string.Empty; int tatolCount = 0; List <RechargingLog> rsp = model.AreaRecharges(out pageHtml, out tatolCount); return(Json(new { ModelList = rsp, html = pageHtml, tatolCount = tatolCount })); } catch (ConflictException ex) { _logger.Error(LogTypes.AccountRecharge, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountRecharge, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
public AccountServiceResponse InnerExecute(Func <IAccountDealService, AccountServiceResponse> func) { try { var database = new Database("ecard"); using (var instance = new DatabaseInstance(database)) { instance.BeginTransaction(); IAccountDealService accountDealService = GetAccountDealService(instance); AccountServiceResponse rsp = func(accountDealService); if (rsp.Code == ResponseCode.Success) { instance.Commit(); } return(rsp); } } catch (Exception ex) { Log.Error("error", ex); return(new AccountServiceResponse(ResponseCode.SystemError) { CodeText = ex.Message }); } }
public ActionResult SystemPay(SystemPayAccount item) { //string serialNo = SerialNoHelper.Create(); try { //var account = _accountService.GetByName(item.AccountName); //var rsp = account != null ? _accountDealService.Pay(new PayRequest(item.AccountName, "", item.PosName, item.Amount, serialNo, account.AccountToken, Constants.SystemShopName) { IsForce = true }) : new AccountServiceResponse(ResponseCode.NonFoundAccount); AccountServiceResponse rsp = item.DoPay(); if (string.IsNullOrWhiteSpace(rsp.CodeText)) { rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); } if (rsp.Code == 0) { rsp.CodeText = "交易成功"; } return(Json(rsp)); } catch (Exception ex) { AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
private void RegisterWithEmailSuccessCallback(AccountServiceResponse res) { EditorUtility.ClearProgressBar(); if (res.ReturnCode == AccountServiceReturnCodes.Success) { string key = ((int)ServiceTypes.Chat).ToString(); string appId; if (res.ApplicationIds.TryGetValue(key, out appId)) { currentSettings.AppId = appId; EditorUtility.SetDirty(currentSettings); this.showRegistrationDone = true; Selection.objects = new UnityEngine.Object[] { currentSettings }; } else { DisplayErrorMessage("Registration successful, but no Chat AppId returned"); } } else if (res.ReturnCode == 12) // todo: gather all error codes { this.showDashboardLink = true; } else { DisplayErrorMessage(res.Message); } }
public AccountServiceResponse DoRecharge() { var user = SecurityHelper.GetCurrentUser(); if (user is ShopUserModel) { var shopUser = user.CurrentUser as ShopUser; var shop = ShopService.GetById(shopUser.ShopId); if (shop == null) { return new AccountServiceResponse(-1) { CodeText = "无效商户" } } ; Account account = null; var accountUser = (AccountUser)_membershipService.GetByMobile(AccountName.Trim()); if (accountUser != null) { account = AccountService.QueryByOwnerId(accountUser).FirstOrDefault(); //return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不到会员,请检查输入是否正确,会员卡状态是否正常!" }; } else { account = AccountService.GetByName(AccountName.Trim()); } // var account = AccountService.GetByName(AccountName.Trim()); if (account == null || account.State != AccountStates.Normal) { return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不到会员,请检查输入是否正确,会员卡状态是否正常!" } } ; var sn = SerialNoHelper.Create(); AccountServiceResponse rsp = new AccountServiceResponse(0); rsp = AccountDealService.Recharge(new PayRequest(account.Name, "", "", Amount, sn, "", shop.Name, shop.Name), true); if (rsp.Code == ResponseCode.Success) { //做日志 // Logger.LogWithSerialNo(LogTypes.Deal, sn, account.AccountId, rsp.AccountType, account.Name); } return(rsp); } else if (user is AdminUserModel) { return(Save()); } else { return(new AccountServiceResponse(-1) { CodeText = "无效商户" }); } }
public RollbackType Rollback(int id) { try { using (var tran = TransactionHelper.BeginTransaction()) { var serialNo = SerialNoHelper.Create(); var shopDealLog = this.ShopDealLogService.GetById(id); if (shopDealLog == null) { throw new Exception(Localize("nofoundDeal")); } var dealLog = this.DealLogService.GetById(shopDealLog.Addin); if (dealLog == null) { throw new Exception(Localize("nofoundDeal")); } var account = AccountService.GetById(dealLog.AccountId); if (account == null) { throw new Exception(Localize("nofoundAccount")); } AccountServiceResponse rsp = null; RollbackType r = RollbackType.None; if (dealLog.SubmitTime.Date != DateTime.Now.Date) { rsp = AccountDealService.CancelPay(new CancelPayRequest(dealLog.AccountName, "", dealLog.SourcePosName, Math.Abs(dealLog.Amount), serialNo, dealLog.SerialNo, account.AccountToken, dealLog.SourceShopName) { IsForce = true }); r = RollbackType.Cancel; } else { rsp = AccountDealService.Roolback(new PayRequest_(dealLog.AccountName, "", dealLog.SourcePosName, Math.Abs(dealLog.Amount), serialNo, dealLog.SerialNo, account.AccountToken, dealLog.SourceShopName) { IsForce = true }); r = RollbackType.Undo; } if (rsp.Code != ResponseCode.Success) { throw new Exception(string.Format("{0}", ModelHelper.GetBoundText(rsp, x => x.Code))); } LogHelper.LogWithSerialNo(LogTypes.DealLogRollback, serialNo, dealLog.DealLogId, dealLog.SerialServerNo, dealLog.SerialNo); tran.Commit(); return(r); } } catch (Exception ex) { Logger.Error(LogTypes.DealLogRollback, ex); return(RollbackType.None); } }
protected override byte[] OnGetData() { if (Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { string accountName = AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//´ÅÌõ¿¨ } else { passwrod = GetPassword(this.AccountName);//IC¿¨ } string seriaNo = _i8583.gettabx_data(60); if (seriaNo.Length > 12) { seriaNo = seriaNo.Substring(0, 12); } AccountServiceResponse rsp = Context.AccountDealService.CancelDonePrePay(new CancelPayRequest(accountName, passwrod, PosName, DealAmount, BatchNo + SerialNo, seriaNo, token, ShopName)); Result = rsp.Code; //this._i8583.settabx_data(37, rsp.DealCode); if (Result == ResponseCode.Success) { this._i8583.settabx_data(37, SerialNo); SerialServerNo = rsp.SerialServerNo.PadLeft(12, '0'); Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("cancel_done_prepay", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0210")); }
private void RegisterWithEmailSuccessCallback(AccountServiceResponse res) { EditorUtility.ClearProgressBar(); if (res.ReturnCode == AccountServiceReturnCodes.Success) { string key = ((int)ServiceTypes.Pun).ToString(); string appId; if (res.ApplicationIds.TryGetValue(key, out appId)) { this.mailOrAppId = appId; PhotonNetwork.PhotonServerSettings.UseCloud(this.mailOrAppId); key = ((int)ServiceTypes.Chat).ToString(); if (res.ApplicationIds.TryGetValue(key, out appId)) { PhotonNetwork.PhotonServerSettings.ChatAppID = appId; } else if (PhotonEditorUtils.HasChat) { Debug.LogWarning("Registration successful but no Chat AppId returned"); } key = ((int)ServiceTypes.Voice).ToString(); if (res.ApplicationIds.TryGetValue(key, out appId)) { PhotonNetwork.PhotonServerSettings.VoiceAppID = appId; } else if (PhotonEditorUtils.HasVoice) { Debug.LogWarning("Registration successful but no Voice AppId returned"); } PhotonEditor.SaveSettings(); this.photonSetupState = PhotonSetupStates.GoEditPhotonServerSettings; } else { DisplayErrorMessage("Registration successful but no PUN AppId returned"); } } else { PhotonEditor.SaveSettings(); if (res.ReturnCode == AccountServiceReturnCodes.EmailAlreadyRegistered) { this.photonSetupState = PhotonSetupStates.EmailAlreadyRegistered; } else { DisplayErrorMessage(res.Message); } } }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { string accountName = this.AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { var seriaNo = BatchNo + SerialNo; string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//´ÅÌõ¿¨ } else { passwrod = GetPassword(this.AccountName);//IC¿¨ } //var pos = _posRepository.GetPosByName(PosName); AccountServiceResponse rsp = Context.AccountDealService.DonePrePay(new Ecard.Infrastructure.PrePayRequest(BatchNo + this.OldSerialNo, this.OldPayDate, accountName, passwrod, PosName, DealAmount, seriaNo, token, ShopName)); //rsp = _accountService.Pay(pos, ShopName, accountName, passwrod, DealAmount, dealItem, token); Result = rsp.Code; if (Result == ResponseCode.Success) { this._i8583.settabx_data(37, SerialNo); SerialServerNo = rsp.SerialServerNo.PadLeft(12, '0'); Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("done_prepay", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0210")); }
public static string Format(string template, string typeText, AccountServiceResponse rsp) { if (rsp == null) { return(template.Replace("#amount#", "") .Replace("#point#", "") .Replace("#type#", "") .Replace("#now#", DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒"))); } return(template.Replace("#amount#", rsp.Amount.ToString()) .Replace("#point#", rsp.Point.ToString()) .Replace("#type#", typeText) .Replace("#now#", DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒"))); }
public ActionResult QueryWithoutToken(QueryAccount item) { try { // var account = _accountService.GetByName(item.AccountName); Account account = null; var accountUser = (AccountUser)_membershipService.GetByMobile(item.AccountName); if (accountUser != null) { account = _accountService.QueryByOwnerId(accountUser).FirstOrDefault(); //return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不到会员,请检查输入是否正确,会员卡状态是否正常!" }; } else { account = _accountService.GetByName(item.AccountName); } if (account == null || (account.State != AccountStates.Normal && account.State != AccountStates.Invalid)) { var rsp = new AccountServiceResponse(ResponseCode.NonFoundAccount); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp, JsonRequestBehavior.AllowGet)); } var user = account.OwnerId.HasValue ? _membershipService.GetUserById(account.OwnerId.Value) : null; { var rsp = new AccountServiceResponse(ResponseCode.Success, null, _shopService.GetById(account.ShopId), account, user); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); rsp.CodeText = "查询成功"; return(Json(rsp, JsonRequestBehavior.AllowGet)); } } catch (ConflictException ex) { _logger.Error(LogTypes.AccountQueryWithoutToken, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountQueryWithoutToken, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
public bool RegisterByEmail(AccountServiceRequest request, Action <AccountServiceResponse> callback = null, Action <string> errorCallback = null) { if (request == null) { Debug.LogError("Registration request is null"); return(false); } ChatEditor.StartCoroutine( ChatEditor.HttpPost(GetUrlWithQueryStringEscaped(request), RequestHeaders, null, s => { if (string.IsNullOrEmpty(s)) { if (errorCallback != null) { errorCallback("Server's response was empty. Please register through account website during this service interruption."); } } else { AccountServiceResponse ase = this.ParseResult(s); if (ase == null) { if (errorCallback != null) { errorCallback("Error parsing registration response. Please try registering from account website"); } } else if (callback != null) { callback(ase); } } }, e => { if (errorCallback != null) { errorCallback(e); } }) ); return(true); }
public ActionResult Query(QueryAccount item) { try { //var account = _accountService.Query("Owner").FirstOrDefault(x => x.Name == item.AccountName // && x.AccountToken == item.AccountToken // && (x.State == AccountStates.Normal || x.State == AccountStates.Invalid)); var account = _accountService.QueryAccount(item.AccountName, item.AccountToken).FirstOrDefault(); if (account == null) { var rsp = new AccountServiceResponse(ResponseCode.NonFoundAccount); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp, JsonRequestBehavior.AllowGet)); } else { User owner = null; if (account.OwnerId.HasValue) { owner = _membershipService.GetUserById(account.OwnerId.Value) as AccountUser; } var rsp = new AccountServiceResponse(ResponseCode.Success, null, _shopService.GetById(account.ShopId), account, owner); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp, JsonRequestBehavior.AllowGet)); } } catch (ConflictException ex) { _logger.Error(LogTypes.AccountQuery, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountQuery, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success) { //string accountName = this.AccountName.Substring(0, 16); //string token = GetToken(); //_i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { var shoptoName = ShopNameTo ?? ""; shoptoName = shoptoName.Trim(); //var pos = _posRepository.GetPosByName(PosName); AccountServiceResponse rsp = Context.AccountDealService.QueryShop(PosName, ShopName, shoptoName); //rsp = _accountService.Pay(pos, ShopName, accountName, passwrod, DealAmount, dealItem, token); Result = rsp.Code; if (Result == ResponseCode.Success) { Amount = rsp.Amount; SerialServerNo = rsp.SerialServerNo; var array = BuildForShop(rsp); //_i8583.settabx_data(47, array); var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0110"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("deal", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0110")); }
public static byte[] BuildForShop(AccountServiceResponse rsp) { var encoding = I8583.Encoding; /* * > struct _QueryAccountInfo //Aid通知结构 * > { * { * u8 MerType; //0:加盟商户;1:非加盟商户 * u8 MerInfo[20]; //商户描述:20字节 * u8 MerChinaName[50]; //商户中文名:50字节;不足后补空格;(收款方姓名) * u8 MerNum[15]; //商户编码 :15字节(收款方代码) * u8 MerPhone[15]; //商户电话 15字节;不足后补空格 * u8 MerMobilePhone[11]; //商户手机号码 :11字节不足后补空格; * * u8 MerAccounts[20]; //收款方账号 20字节 * u8 MerPayType[20]; //付款方式描述20字节 * u8 MerSettleDate[20]; //结算日期20字节 * * // u8 MerAddress[100]; //商户地址:100字节;不足后补空格 * } * * > }__attribute__((packed)); //压缩;;; * > */ MemoryStream ms = new MemoryStream(); ms.WriteByte((byte)(rsp.ShopType == ShopTypes.OutOfClub ? '1' : '0')); Write(ms, rsp.ShopToDescription, 20, encoding); Write(ms, rsp.ShopToDisplayName, 50, encoding); Write(ms, rsp.ShopToName, 15, encoding); Write(ms, rsp.ShopToPhoneNumber, 15, encoding); Write(ms, rsp.ShopToMobile, 11, encoding); Write(ms, rsp.ShopToAccountName, 20, encoding); Write(ms, rsp.ShopToDealWay, 20, encoding); //Write(ms, rsp.ShopToDealTime, 20, encoding); byte[] array = ms.ToArray(); return(array); }
private void SuccessCallback(AccountServiceResponse response) { if (response.ReturnCode == AccountServiceReturnCodes.Success) { this.setupState = SetupState.RegisteredSuccessful; appIdOrEmail = response.ApplicationIds[((int)ServiceTypes.Realtime).ToString()]; // Save App ID AppSettingsInstance.AppIdRealtime = appIdOrEmail; } else { this.setupState = SetupState.AlreadyRegistered; UnityEngine.Debug.LogWarning("It was not possible to process your request, please go to the Photon Cloud Dashboard."); UnityEngine.Debug.LogWarningFormat("Return Code: {0}", response.ReturnCode); } requestingAppId = false; EditorUtility.ClearProgressBar(); }
public void Init(AccountServiceResponse rsp, int dealType) { Code = rsp.Code; Error = ModelHelper.GetBoundText(this, x => x.Code); if (Code == ResponseCode.Success) { var dealLog = DealLogService.GetById(Convert.ToInt32(rsp.SerialServerNo)); ShopName = dealLog.ShopName; PosName = dealLog.SourcePosName; AccountName = dealLog.AccountName; Amount = dealLog.Amount; SerialNo = dealLog.SerialNo; ServerSerialNo = dealLog.SerialServerNo; if (Code == ResponseCode.Success) { var account = AccountService.GetByName(AccountName); var shop = ShopService.GetByName(ShopName); var pos = PosService.GetById(dealLog.SourcePosId); var currentUser = SecurityHelper.GetCurrentUser().CurrentUser; switch (dealType) { case DealTypes.Deal: if (!string.IsNullOrWhiteSpace(HostSite.TicketTemplateOfDeal)) { this.Ticket = MessageFormator.FormatTickForDeal(HostSite.TicketTemplateOfDeal, HostSite, dealLog, account, shop, pos, currentUser); } break; case DealTypes.CancelDeal: if (!string.IsNullOrWhiteSpace(HostSite.TicketTemplateOfCancelDeal)) { this.Ticket = MessageFormator.FormatTickForDeal(HostSite.TicketTemplateOfCancelDeal, HostSite, dealLog, account, shop, pos, currentUser); } break; } } } }
public ActionResult Recharging(RechargingAccount model) { try { AccountServiceResponse rsp = model.DoRecharge(); rsp.CodeText = string.IsNullOrEmpty(rsp.CodeText) ? ModelHelper.GetBoundText(rsp, x => x.Code) : rsp.CodeText; return(Json(rsp)); } catch (ConflictException ex) { _logger.Error(LogTypes.AccountRecharge, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountRecharge, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }
public AccountServiceResponse Save() { try { Account account = null; var accountUser = (AccountUser)_membershipService.GetByMobile(AccountName.Trim()); if (accountUser != null) { account = AccountService.QueryByOwnerId(accountUser).FirstOrDefault(); //return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不到会员,请检查输入是否正确,会员卡状态是否正常!" }; } else { account = AccountService.GetByName(AccountName.Trim()); } this.AccountName = account.Name; var serialNo = SerialNoHelper.Create(); //var site = SiteService.Query(null).FirstOrDefault(); User operatorUser = SecurityHelper.GetCurrentUser().CurrentUser; RechargingCommand command = new RechargingCommand(serialNo, this.AccountName, this.Amount, this.HasReceipt, HowToDeal, operatorUser.UserId, null); UnityContainer.BuildUp(command); int code = command.Validate(); if (code != ResponseCode.Success) { return(new AccountServiceResponse(code)); } //ApplyToModel apply = new ApplyToModel(command.DealWay.ApplyTo); //if (!apply.EnabledRecharging) // return new AccountServiceResponse(ResponseCode.InvalidateDealWay); TransactionHelper.BeginTransaction(); Logger.LogWithSerialNo(LogTypes.AccountRecharge, serialNo, command.Account.AccountId, AccountName, Amount); //if (command.DealWay.IsCash) //{ // CashDealLogService.Create(new CashDealLog(Amount, 0, SecurityHelper.GetCurrentUser().CurrentUser.UserId, SystemDealLogTypes.Recharge)); // command.IsCash = true; //} //if (!HostSite.IsRechargingApprove) command.Execute(operatorUser); var response = new AccountServiceResponse(ResponseCode.Success, command.CreateDealLog(), ShopService.GetById(command.Account.ShopId), command.Account, command.Owner); //else // TaskService.Create(new Task(command, operatorUser.UserId) { AccountId = command.Account.AccountId, Amount = Amount }); var dealLog = command.CreateDealLog(); //if (!string.IsNullOrWhiteSpace(CurrentSite.TicketTemplateOfRecharge)) //{ // var message = MessageFormator.FormatTickForRecharging(CurrentSite.TicketTemplateOfRecharge, // CurrentSite, this.HasReceipt, Amount, // command.DealWay.DisplayName, dealLog, command.Account, command.AccountType, // command.Owner, command.OperatorUser); // PrintTicketService.Create(new PrintTicket(LogTypes.AccountRecharge, serialNo, message, command.Account)); // response.CodeText = message.FormatForJavascript(); //} return(TransactionHelper.CommitAndReturn(response)); } catch (Exception ex) { Logger.Error(LogTypes.AccountRecharge, ex); throw; } }
public AccountServiceResponse Save() { var serialNo = SerialNoHelper.Create(); TransactionHelper.BeginTransaction(); var account = AccountService.GetByName(AccountName); if (account == null) { return(new AccountServiceResponse(ResponseCode.NonFoundAccount)); } if (account.State != AccountStates.Normal) { return(new AccountServiceResponse(ResponseCode.AccountStateInvalid)); } AccountUser owner = null; if (account.OwnerId.HasValue) { owner = MembershipService.GetUserById(account.OwnerId.Value) as AccountUser; } var accountType = AccountTypeService.GetById(account.AccountTypeId); bool isRenew = false; int renewalMonth = 6; if (accountType != null) { isRenew = accountType.IsRenew; renewalMonth = accountType.RenewMonths; } if (!isRenew) { return(new AccountServiceResponse(ResponseCode.NonRenewal)); } var now = DateTime.Now; account.ExpiredDate = (now > account.ExpiredDate ? now : account.ExpiredDate).AddMonths(renewalMonth); AccountService.Update(account); Logger.LogWithSerialNo(LogTypes.AccountRenew, serialNo, account.AccountId, AccountName, accountType.RenewMonths); if (!string.IsNullOrWhiteSpace(HostSite.MessageTemplateOfAccountRenew)) { if (owner != null && owner.IsMobileAvailable) { if (accountType.IsSmsRenew) { var msg = MessageFormator.Format(HostSite.MessageTemplateOfAccountRenew, owner); msg = MessageFormator.Format(msg, account); SmsHelper.Send(owner.Mobile, msg); } } } var response = new AccountServiceResponse(ResponseCode.Success, null, ShopService.GetById(account.ShopId), account, owner); if (!string.IsNullOrWhiteSpace(HostSite.TicketTemplateOfRenewAccount)) { var msg = MessageFormator.FormatTickForRenewAccount(HostSite.TicketTemplateOfRenewAccount, serialNo, HostSite, account, owner, accountType, SecurityHelper.GetCurrentUser().CurrentUser); response.CodeText = msg; PrintTicketService.Create(new PrintTicket(LogTypes.AccountRenew, serialNo, msg, account)); } return(TransactionHelper.CommitAndReturn(response)); }
internal AccountServiceResponse DoPay() { //AccountServiceResponse rsp = new AccountServiceResponse(0); var user = SecurityHelper.GetCurrentUser(); if (user is ShopUserModel) { var shopUser = user.CurrentUser as ShopUser; var shop = _shopService.GetById(shopUser.ShopId); if (shop == null) { return new AccountServiceResponse(-1) { CodeText = "无效商户" } } ; Account account = null; var accountUser = (AccountUser)_membershipService.GetByMobile(AccountName.Trim()); if (accountUser != null) { account = AccountService.QueryByOwnerId(accountUser).FirstOrDefault(); //return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不到会员,请检查输入是否正确,会员卡状态是否正常!" }; } else { account = AccountService.GetByName(AccountName.Trim()); } string password1 = ""; var passSvc = UnityContainer.Resolve <IPasswordService>(HostSite.PasswordType); password1 = passSvc.Decrypto(AccountPwd); // var account = AccountService.GetByName(AccountName.Trim()); if (account == null || account.State != AccountStates.Normal) { return new AccountServiceResponse(ResponseCode.NonFoundAccount) { CodeText = "找不好会员,请检查输入是否正确,会员卡状态是否正常!" } } ; var sn = SeriaNo; //SerialNoHelper.Create(); AccountServiceResponse rsp = new AccountServiceResponse(0); if (PayWay == 2) //会员卡交易扣卡余额 { rsp = AccountDealService.Pay(new PayRequest(account.Name, AccountPwd, "", Amount, SeriaNo, account.AccountToken, shop.Name, shop.Name), true); } else if (PayWay == 1)//现金交易,给现金积分 { rsp = AccountDealService.Integral(new PayRequest(account.Name, AccountPwd, "", Amount, SeriaNo, account.AccountToken, shop.Name, shop.Name), true); } else { return(new AccountServiceResponse(-1) { CodeText = "无效支付方式" }); } if (rsp.Code == ResponseCode.Success) { //做日志 // Logger.LogWithSerialNo(LogTypes.Deal, sn, account.AccountId, rsp.AccountType, account.Name); } return(rsp); } else { return(new AccountServiceResponse(-1) { CodeText = "无效商户" }); } }
public AccountServiceResponse Save() { var serialNo = SerialNoHelper.Create(); TransactionHelper.BeginTransaction(); var newAccount = AccountService.GetByName(AccountName); if (newAccount == null || newAccount.State != AccountStates.Ready) { return(new AccountServiceResponse(ResponseCode.NonFoundAccount)); } var oldAccount = AccountService.GetByName(OldAccountName); if (oldAccount == null || (oldAccount.State != AccountStates.Normal && oldAccount.State != AccountStates.Invalid)) { return(new AccountServiceResponse(ResponseCode.NonFoundAccount)); } oldAccount.Remark1 = "Ô¿¨ºÅ£º" + newAccount.Name; oldAccount.Name = newAccount.Name; oldAccount.AccountToken = newAccount.AccountToken; oldAccount.Password = newAccount.Password; oldAccount.PasswordSalt = newAccount.PasswordSalt; var owner = (AccountUser)(oldAccount.OwnerId.HasValue ? MembershipService.GetUserById(oldAccount.OwnerId.Value) : null); Logger.LogWithSerialNo(LogTypes.AccountChangeName, serialNo, oldAccount.AccountId, OldAccountName, AccountName); var fee = HostSite.ChangeCardFee; if (fee.HasValue) { SystemDealLogService.Create(new SystemDealLog(serialNo, SecurityHelper.GetCurrentUser().CurrentUser) { Addin = oldAccount.AccountId.ToString(), Amount = fee.Value, DealType = SystemDealLogTypes.ChangeCard }); oldAccount.ChargingAmount += fee.Value; CashDealLogService.Create(new CashDealLog(fee.Value, 0, SecurityHelper.GetCurrentUser().CurrentUser.UserId, CashDealLogTypes.ChangeCard)); } AccountService.Delete(newAccount); AccountService.Update(oldAccount); var response = new AccountServiceResponse(ResponseCode.Success, null, ShopService.GetById(oldAccount.ShopId), oldAccount, owner); var accountType = AccountTypeService.GetById(oldAccount.AccountTypeId); if (!string.IsNullOrWhiteSpace(HostSite.MessageTemplateOfAccountChangeName)) { if (owner != null && owner.IsMobileAvailable) { var msg = MessageFormator.Format(HostSite.MessageTemplateOfAccountChangeName, owner); SmsHelper.Send(owner.Mobile, msg); } } if (!string.IsNullOrWhiteSpace(HostSite.TicketTemplateOfChangeAccountName)) { var msg = MessageFormator.FormatTickForChangeAccountName( HostSite.TicketTemplateOfChangeAccountName, HostSite, serialNo, OldAccountName, oldAccount, owner, accountType, SecurityHelper.GetCurrentUser().CurrentUser); PrintTicketService.Create(new PrintTicket(LogTypes.AccountChangeName, serialNo, msg, oldAccount)); response.CodeText = msg; } return(TransactionHelper.CommitAndReturn(response)); }
public ActionResult QueryWithUserInfo(QueryAccount item) { try { //var account = _accountService.Query("Owner").Where(x => (x.State == AccountStates.Normal || x.State == AccountStates.Invalid) // && (x.Name == item.AccountName || x.Owner.DisplayName == item.AccountName || x.Owner.Mobile == item.AccountName) // ).ToList(); var account = string.IsNullOrWhiteSpace(item.AccountName) ? new List <Account>() : _accountService.QueryForName(new AccountWithNameRequest() { States = new[] { AccountStates.Normal, AccountStates.Invalid }, Name = item.AccountName, OwnerDisplayName = item.AccountName, OwnerMobile = item.AccountName }).ToList(); if (account.Count == 0) { var rsp = new AccountServiceResponse(ResponseCode.NonFoundAccount); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp, JsonRequestBehavior.AllowGet)); } else { var users = _membershipService.QueryUsers <AccountUser>(new UserRequest() { UserIds = account.Where(x => x.OwnerId.HasValue).Select(x => x.OwnerId.Value).ToArray() }).ToList(); if (account.Count == 1) { var single = account.Single(); var rsp = new AccountServiceResponse(ResponseCode.Success, null, _shopService.GetById(single.ShopId), single, users.FirstOrDefault()); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp, JsonRequestBehavior.AllowGet)); } else { var data = from x in account let owner = x.OwnerId.HasValue ? users.FirstOrDefault(y => y.UserId == x.OwnerId.Value) : null select new { AccountName = x.Name, OwnerMobile = (owner == null ? "" : owner.Mobile) ?? "", OwnerDisplayName = (owner == null ? "" : owner.DisplayName) ?? "", OwnerIdentity = (owner == null ? "" : owner.IdentityCard) ?? "", }; return(Json(data, JsonRequestBehavior.AllowGet)); } } } catch (ConflictException ex) { _logger.Error(LogTypes.AccountQueryWithUserInfo, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.AccountConflict); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } catch (Exception ex) { _logger.Error(LogTypes.AccountQueryWithUserInfo, ex); AccountServiceResponse rsp = new AccountServiceResponse(ResponseCode.SystemError); rsp.CodeText = ModelHelper.GetBoundText(rsp, x => x.Code); return(Json(rsp)); } }