You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

222 lines
8.6 KiB
C#

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
/// <summary>
/// 自定义充值
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
private Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>> card_recharge_free(RechargeFreeRequest request)
{
Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>> result = null;
try
{
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Card);
SortedList<string, string> 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<string>();
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<StockEntityResponse<RechargeFreeResponse>>(response);
if (data.Status == 1)
{
result = new Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>>(true, data.Message, data);
}
else
{
result = new Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>>(false, data.ErrMessage, data);
}
}
else
{
var _errorMessage = PaserErrors(response);
result = new Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>>(false, _errorMessage, null);
}
}
catch (Exception ex)
{
LOGGET.Error(ex, "卡自定义充值");
result = new Tuple<bool, string, StockEntityResponse<RechargeFreeResponse>>(false, "卡自定义充值,请检测网络连接", null);
}
return result;
}
/// <summary>
/// 自定义充值方案查询
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
private Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>> card_recharge_scheme_free(RechargeSchemeFreeRequest request)
{
Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>> result = null;
try
{
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Card);
SortedList<string, string> 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<string>();
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<StockEntityResponse<RechargeSchemeFreeResponse>>(response);
if (data.Status == 1)
{
result = new Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>>(true, data.Message, data);
}
else
{
result = new Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>>(false, data.ErrMessage, data);
}
}
else
{
var _errorMessage = PaserErrors(response);
result = new Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>>(false, _errorMessage, null);
}
}
catch (Exception ex)
{
LOGGET.Error(ex, "自定义充值方案查询");
result = new Tuple<bool, string, StockEntityResponse<RechargeSchemeFreeResponse>>(false, "自定义充值方案查询,请检测网络连接", null);
}
return result;
}
#endregion
/// <summary>
/// 获取充值方案ID
/// </summary>
/// <param name="cardTypeId"></param>
/// <returns></returns>
public ReturnInfo<List<CardRechargeSchemeListResponse>> RechargeSchemeLis(string cardTypeId)
{
ReturnInfo<List<CardRechargeSchemeListResponse>> returnInfo = new ReturnInfo<List<CardRechargeSchemeListResponse>>();
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<RechargeSchemeFreeResponse> RechargeSchemeLis(RechargeSchemeFreeRequest request)
{
ReturnInfo<RechargeSchemeFreeResponse> returnInfo = new ReturnInfo<RechargeSchemeFreeResponse>();
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<RechargeFreeResponse> Recharge(RechargeFreeRequest request)
{
ReturnInfo<RechargeFreeResponse> returnInfo = new ReturnInfo<RechargeFreeResponse>();
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;
}
}
}
}