using POSV.Card; using POSV.HttpApi; using POSV.Proxy.Base; using POSV.Proxy.Common; using POSV.Rechargefree; using POSV.Utils; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace POSV.Proxy.Member.Recharge { public class CustomRechargeProxy : ProxyBase { #region Web API /// /// 自定义充值 /// /// /// private Tuple> card_recharge_free(RechargeFreeRequest request) { Tuple> result = null; try { OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Card); SortedList parameters = OpenApiUtils.Instance.NewParameters(api); parameters.Add("method", "card.recharge.free"); parameters.Add("cardNo", request.CardNo); parameters.Add("schemeId", request.SchemeId); parameters.Add("amount", request.Amount.ToString()); parameters.Add("giftPoint", request.GiftPoint.ToString()); parameters.Add("giftAmount", request.GiftAmount.ToString()); parameters.Add("shopNo", request.ShopNo); parameters.Add("posNo", request.PosNo); parameters.Add("workerNo", request.WorkerNo); parameters.Add("sourceSign", request.SourceSign); var ignoreParameters = new List(); parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters)); parameters.Add("payType", request.PayType); parameters.Add("payVoucherNo", request.PayVoucherNo); LOGGET.Info("卡自定义充值请求:" + JsonUtils.Serialize(parameters)); string response = HttpClientUtils.PostAsync(api, api.Url, parameters); LOGGET.Info("卡自定义充值接收:" + response); //获取成功 if (Constant.IsSuccessful(response)) { var data = JsonUtils.Deserialize>(response); if (data.Status == 1) { result = new Tuple>(true, data.Message, data); } else { result = new Tuple>(false, data.ErrMessage, data); } } else { var _errorMessage = PaserErrors(response); result = new Tuple>(false, _errorMessage, null); } } catch (Exception ex) { LOGGET.Error(ex, "卡自定义充值"); result = new Tuple>(false, "卡自定义充值,请检测网络连接", null); } return result; } /// /// 自定义充值方案查询 /// /// /// private Tuple> card_recharge_scheme_free(RechargeSchemeFreeRequest request) { Tuple> result = null; try { OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Card); SortedList parameters = OpenApiUtils.Instance.NewParameters(api); parameters.Add("method", "card.recharge.scheme.free"); parameters.Add("cardTypeId", request.CardTypeId); parameters.Add("shopNo", request.ShopNo); parameters.Add("posNo", request.PosNo); var ignoreParameters = new List(); parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters)); LOGGET.Info("自定义充值方案查询请求:" + JsonUtils.Serialize(parameters)); string response = HttpClientUtils.PostAsync(api, api.Url, parameters); LOGGET.Info("自定义充值方案查询接收:" + response); //获取成功 if (Constant.IsSuccessful(response)) { var data = JsonUtils.Deserialize>(response); if (data.Status == 1) { result = new Tuple>(true, data.Message, data); } else { result = new Tuple>(false, data.ErrMessage, data); } } else { var _errorMessage = PaserErrors(response); result = new Tuple>(false, _errorMessage, null); } } catch (Exception ex) { LOGGET.Error(ex, "自定义充值方案查询"); result = new Tuple>(false, "自定义充值方案查询,请检测网络连接", null); } return result; } #endregion /// /// 获取充值方案ID /// /// /// public ReturnInfo> RechargeSchemeLis(string cardTypeId) { ReturnInfo> returnInfo = new ReturnInfo>(); try { returnInfo.Code = ReturnState.Failed; var request = new CardRechargeSchemeListRequest(); request.CardTypeId = cardTypeId; request.ShopNo = Global.Instance.Authc.StoreNo; request.PosNo = Global.Instance.Authc.PosNo; var response = CardUtils.CardRechargeSchemeList(request); if (!response.Item1) { returnInfo.ErrorMessage = response.Item2; return returnInfo; } returnInfo.Code = ReturnState.Succeed; returnInfo.Data = response.Item3.List; return returnInfo; } catch (Exception ex) { LOGGET.Error(ex); returnInfo.ErrorMessage = ex.Message; return returnInfo; } } public ReturnInfo RechargeSchemeLis(RechargeSchemeFreeRequest request) { ReturnInfo returnInfo = new ReturnInfo(); try { var _data = this.card_recharge_scheme_free(request); if (!_data.Item1) { returnInfo.ErrorMessage = _data.Item2; return returnInfo; } returnInfo.Data = _data.Item3.Data; returnInfo.Code = ReturnState.Succeed; return returnInfo; } catch (Exception ex) { throw; } } public ReturnInfo Recharge(RechargeFreeRequest request) { ReturnInfo returnInfo = new ReturnInfo(); try { var _data = this.card_recharge_free(request); if (!_data.Item1) { returnInfo.ErrorMessage = _data.Item2; return returnInfo; } returnInfo.Data = _data.Item3.Data; returnInfo.Code = ReturnState.Succeed; return returnInfo; } catch (Exception ex) { LOGGET.Error(ex); returnInfo.ErrorMessage = ex.Message; return returnInfo; } } } }