using Newtonsoft.Json;
using System;
namespace libESPay
{
public class ESPayService
{
#region 驿商移动支付交易接口
#region 方法 -> 驿商移动支付反扫交易统一接口
///
/// 驿商移动支付反扫交易统一接口
///
/// 移动支付通道商
/// 移动支付交易参数
/// 用户支付授权码
/// 系统交易订单号
/// 交易金额(元)
/// 是否通过区服务器代理接口转发交易请求
/// 返回交易结果Json数据
public static string ESTScanPay(PayUtils.MobilePayOperators mobilePayOperator,
PayUtils.MobilePayConfig.PayMerchant payMerchant, string authCode,
string orderCode, string oderAmount,string payDesc, bool isProxy)
{
switch (mobilePayOperator)
{
case PayUtils.MobilePayOperators.kwypay://客无忧交易
return ESTPayService.KwyPayService.KwyPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
case PayUtils.MobilePayOperators.unionpay://中国银联交易
return ESTPayService.UnionPayService.UnionPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
case PayUtils.MobilePayOperators.irichpay://南京银行交易
return ESTPayService.IRichPayService.IRichPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
case PayUtils.MobilePayOperators.ccbpay://建设银行交易
return ESTPayService.CCBPayService.CCBPayScan(
payMerchant, authCode, orderCode, oderAmount, payDesc, isProxy);
case PayUtils.MobilePayOperators.gznxpay://贵州农信交易
return ESTPayService.GZNXPayService.GZNXPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
case PayUtils.MobilePayOperators.icbcpay://工商银行交易
return ESTPayService.ICBCPayService.ICBCPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
case PayUtils.MobilePayOperators.uphicoo://重庆嗨客交易
return ESTPayService.UphicooPayService.UphicooPayScan(
payMerchant, authCode, orderCode, oderAmount, isProxy);
default://已不再支持的通道
return JsonConvert.SerializeObject(new PayModel.PayResultModel
{
result_code = ((int)PayUtils.MobilePayConfig.ResultCode.系统异常).ToString(),
trade_no = "",
trade_num = orderCode,
result_desc = $"系统异常:【{(int)mobilePayOperator}】该通道不支持进行交易。"
});
}
}
#endregion
#region 方法 -> 驿商移动支付交易查询统一接口
///
/// 驿商移动支付交易查询统一接口
///
/// 移动支付通道商
///移动支付交易参数
/// 系统交易订单号
/// 注:与平台订单号必填一项
/// 平台订单号
/// 注:与系统交易订单号必填一项
/// 交易金额(元)
/// 是否服务器代理转发,默认:True
/// 返回交易结果Json数据
public static string ESTPayQuery(PayUtils.MobilePayOperators mobilePayOperator,
PayUtils.MobilePayConfig.PayMerchant payMerchant, string merchantOrderCode,
string platformOrderCode, string payAmount, int queryCount, bool isProxy)
{
switch (mobilePayOperator)
{
case PayUtils.MobilePayOperators.kwypay://客无忧交易查询
return ESTPayService.KwyPayService.KwyPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.unionpay://中国银联交易查询
return ESTPayService.UnionPayService.UnionPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.irichpay://南京银行交易查询
return ESTPayService.IRichPayService.IRichPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.ccbpay://建设银行交易查询
return ESTPayService.CCBPayService.CCBPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, queryCount, isProxy);
case PayUtils.MobilePayOperators.gznxpay://贵州农信交易查询
return ESTPayService.GZNXPayService.GZNXPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.icbcpay://工商银行交易查询
return ESTPayService.ICBCPayService.ICBCPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.uphicoo://重庆嗨客交易查询
return ESTPayService.UphicooPayService.UphicooPayQuery(
payMerchant, merchantOrderCode, platformOrderCode, payAmount, isProxy);
default://已不再支持的通道
return JsonConvert.SerializeObject(new PayModel.PayResultModel
{
result_code = ((int)PayUtils.MobilePayConfig.ResultCode.系统异常).ToString(),
trade_no = "",
trade_num = merchantOrderCode,
result_desc = $"系统异常:【{(int)mobilePayOperator}】该通道不支持进行交易。"
});
}
}
#endregion
#region 方法 -> 驿商移动支付交易退款统一接口
///
/// 驿商移动支付交易退款统一接口
///
///
///
///
///
///
///
/// 返回交易结果Json数据
public static string ESTPayRefund(PayUtils.MobilePayOperators mobilePayOperator,
PayUtils.MobilePayConfig.PayMerchant payMerchant, string refundOrderCode,
string platformOrderCode, string payAmount, bool isProxy)
{
switch (mobilePayOperator)
{
case PayUtils.MobilePayOperators.kwypay://客无忧交易退款
return ESTPayService.KwyPayService.KwyPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.unionpay://中国银联交易退款
return ESTPayService.UnionPayService.UnionPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.irichpay://南京银行交易退款
return ESTPayService.IRichPayService.IRichPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.ccbpay://建设银行交易退款
return ESTPayService.CCBPayService.CCBPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.gznxpay://贵州农信交易退款
return ESTPayService.GZNXPayService.GZNXPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.icbcpay://工商银行交易退款
return ESTPayService.ICBCPayService.ICBCPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
case PayUtils.MobilePayOperators.uphicoo://重庆嗨客交易退款
return ESTPayService.UphicooPayService.UphicooPayRefund(
payMerchant, refundOrderCode, platformOrderCode, payAmount, isProxy);
default://已不再支持的通道
return JsonConvert.SerializeObject(new PayModel.PayResultModel
{
result_code = ((int)PayUtils.MobilePayConfig.ResultCode.系统异常).ToString(),
trade_no = "",
trade_num = refundOrderCode,
result_desc = $"系统异常:【{(int)mobilePayOperator}】该通道不支持进行交易。"
});
}
}
#endregion
#endregion
}
}