using System; using System.Collections.Generic; using System.Linq; using System.Text; using POSV.HttpApi; using POSV.Utils; namespace POSV.Card { public class WorkerUtils { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); protected static Dictionary _errorDesc = new Dictionary(); static WorkerUtils() { //------------------------------------------------------ _errorDesc.Add("isv.card-trade-pay-service-error:CARD_TRADE_PAY_TRADE_EXCEPTION_ERROR" , "交易失败,请稍候再试"); //系统没有定义的错误代码 _errorDesc.Add("9999" , "应答的报文解析异常"); } /// /// 员工密码修改 /// /// /// public static Tuple WorkerUpdatePwd(WorkerUpdatePwdRequest request) { Tuple result = null; try { OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business); SortedList parameters = OpenApiUtils.Instance.NewParameters(api); parameters.Add("method", "worker.update.pwd"); parameters.Add("storeId", request.StoreId); parameters.Add("posNo", request.PosNo); parameters.Add("workerId", request.WorkerId); parameters.Add("workerNo", request.WorkerNo); parameters.Add("passwd", request.Passwd); parameters.Add("newPasswd", request.NewPasswd); var ignoreParameters = new List(); ignoreParameters.Add("passwd"); ignoreParameters.Add("newPasswd"); parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters)); string response = HttpClientUtils.PostAsync(api, api.Url, parameters); //获取成功 if (Constant.IsSuccessful(response)) { var data = JsonUtils.Deserialize>(response); if (data.Status == 1) { result = new Tuple(true, data.Message, data.Data); } else { result = new Tuple(false, data.ErrMessage, null); } } else { string errorMessage = PaserErrors(response); result = new Tuple(false, errorMessage, null); } } catch (Exception ex) { logger.Error(ex, "员工修改密码异常"); result = new Tuple(false, "员工修改密码异常,本次操作无效", null); } return result; } protected static string PaserErrors(string response) { string result = string.Empty; try { logger.Error(response); Errors mainError = JsonUtils.Deserialize(response); if (_errorDesc.ContainsKey(mainError.Code)) { result = _errorDesc[mainError.Code]; } else { result = mainError.Message; } List subError = mainError.SubErrors; if (subError != null && subError.Count > 0) { SubErrors error = subError[0]; if (_errorDesc.ContainsKey(error.Code)) { result = _errorDesc[error.Code]; } else { result = error.Message; } } } catch (Exception ex) { logger.Error(ex , "非法的错误信息格式"); result = _errorDesc["9999"]; } return result; } } }