using System; using System.Collections.Generic; using System.Linq; using System.Text; using POSV.Entity; using POSV.HttpResponse; using POSV.Utils; namespace POSV.HttpApi { /// /// POS在线登录 /// public class LoginApi : BaseApi { protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// /// 门店计费检测 /// /// /// /// /// /// public static Tuple PosAuth(string storeId, string posNo) { try { //连接开放平台 OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business); //构建请求参数 SortedList parameters = OpenApiUtils.Instance.NewParameters(api); parameters.Add("method", "pos.auth"); parameters.Add("storeId", storeId); parameters.Add("posNo", posNo); parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters)); string response = HttpClientUtils.PostAsync(api, api.Url, parameters); if (Constant.IsSuccessful(response)) { var result = JsonUtils.Deserialize>(response); //成功 if (result.Status == 1) { var posAuth = result.Data; return new Tuple(true, result.Message, posAuth); } else { return new Tuple(false, result.Message, null); } } else { string errMessage = PaserErrors(response); return new Tuple(false, errMessage, null); } } catch (Exception ex) { logger.Error(ex, ex.Message); return new Tuple(false, "门店授权信息校验异常", null); } } /// /// 收银员登录 /// /// /// /// /// /// public static Tuple ValidateWorker(string storeId,string posNo,string no , string passwd) { try { //连接开放平台 OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business); //构建请求参数 SortedList parameters = OpenApiUtils.Instance.NewParameters(api); parameters.Add("method" , "worker.login"); parameters.Add("storeId" , storeId); parameters.Add("posNo" , posNo); parameters.Add("userName" , no); parameters.Add("password" , DesUtils.Encrypt(passwd)); var ignore = new List(); ignore.Add("password"); parameters.Add("sign" , OpenApiUtils.Instance.Sign(api , parameters , ignore)); string response = HttpClientUtils.PostAsync(api , api.Url , parameters); //logger.Info("登录返回结果:{0}", response); if (Constant.IsSuccessful(response)) { var result = JsonUtils.Deserialize>(response); //成功 if (result.Status == 1) { var worker = result.Data; if(worker.TenantId == null) { worker.TenantId = Global.Instance.Authc.TenantId; } return new Tuple(true , result.Message , worker); } else { return new Tuple(false , result.Message , null); } } else { string errMessage = PaserErrors(response); return new Tuple(false , errMessage , null); } } catch (Exception ex) { logger.Error(ex , ex.Message); return new Tuple(false , "网络有点不稳定,请再次点击登录按钮" , null); } } public static Tuple DatabaseLogin(string workerNo , string passwd) { try { Worker worker = null; using (var db = Global.Instance.OpenDataBase) { worker = db.FirstOrDefault("where no = @0" , workerNo); } if (worker != null) { if (BCrypt.Verify(passwd , worker.Passwd)) { return new Tuple(true , "脱机登录认证通过" , worker); } else { return new Tuple(false , "脱机工号或者密码错误" , null); } } else { return new Tuple(false , "脱机登录认证未通过" , null); } } catch (Exception ex) { logger.Error(ex , "脱机登录验证异常"); return new Tuple(false , "脱机登录验证异常" , null); } } } }