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.
93 lines
3.7 KiB
C#
93 lines
3.7 KiB
C#
using POSV.Card;
|
|
using POSV.HttpApi;
|
|
using POSV.Proxy.Base;
|
|
using POSV.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace POSV.Proxy.Member.Trade
|
|
{
|
|
public class MemberTradeProxy : ProxyBase
|
|
{
|
|
#region Web API
|
|
|
|
/// <summary>
|
|
/// 消费退款
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
private Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>> jw_trade_refund(CardTradeRefundRequest request)
|
|
{
|
|
Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Card);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "jw.trade.refund");
|
|
parameters.Add("tradeVoucherNo", request.TradeVoucherNo);
|
|
parameters.Add("tradeNo", request.TradeNo);
|
|
parameters.Add("ticketNo", request.TicketNo);
|
|
parameters.Add("totalAmount", request.TotalAmount.ToString());
|
|
parameters.Add("totalPoint", request.TotalPoint.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("reason", request.Reason);
|
|
parameters.Add("cardInfo", JsonUtils.Serialize(request.CardInfo));
|
|
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<CardTraderRefundResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>>(false, data.ErrMessage, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var _errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>>(false, _errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LOGGET.Error(ex, "消费退款充值");
|
|
|
|
result = new Tuple<bool, string, StockEntityResponse<CardTraderRefundResponse>>(false, "消费退款,请检测网络连接", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
|
|
public Tuple<bool, string, CardTraderRefundResponse> MemberTradeRefund(CardTradeRefundRequest request)
|
|
{
|
|
var _data = this.jw_trade_refund(request);
|
|
|
|
if (!_data.Item1)
|
|
{
|
|
|
|
return new Tuple<bool, string, CardTraderRefundResponse>(false, string.IsNullOrEmpty(_data.Item3?.ErrMessage) ? _data.Item2 : _data.Item3?.ErrMessage, null);
|
|
}
|
|
|
|
return new Tuple<bool, string, CardTraderRefundResponse>(true, "", _data.Item3.Data);
|
|
|
|
}
|
|
}
|
|
}
|