2025-03-28 09:49:56 +08:00

164 lines
9.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Newtonsoft.Json;
using System;
namespace libESPay
{
public class ESPayService
{
#region 驿
#region -> 驿
/// <summary>
/// 驿商移动支付反扫交易统一接口
/// </summary>
/// <param name="mobilePayOperator">移动支付通道商</param>
/// <param name="payMerchant">移动支付交易参数</param>
/// <param name="authCode">用户支付授权码</param>
/// <param name="orderCode">系统交易订单号</param>
/// <param name="oderAmount">交易金额(元)</param>
/// <param name="isProxy">是否通过区服务器代理接口转发交易请求</param>
/// <returns>返回交易结果Json数据</returns>
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 -> 驿
/// <summary>
/// 驿商移动支付交易查询统一接口
/// </summary>
/// <param name="mobilePayOperator">移动支付通道商</param>
///<param name="payMerchant">移动支付交易参数</param>
/// <param name="merchantOrderCode">系统交易订单号
/// 注:与平台订单号必填一项</param>
/// <param name="platformOrderCode">平台订单号
/// 注:与系统交易订单号必填一项</param>
/// <param name="payAmount">交易金额(元)</param>
/// <param name="isProxy">是否服务器代理转发默认True</param>
/// <returns>返回交易结果Json数据</returns>
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 -> 驿退
/// <summary>
/// 驿商移动支付交易退款统一接口
/// </summary>
/// <param name="mobilePayOperator"></param>
/// <param name="payMerchant"></param>
/// <param name="refundOrderCode"></param>
/// <param name="platformOrderCode"></param>
/// <param name="payAmount"></param>
/// <param name="isProxy"></param>
/// <returns>返回交易结果Json数据</returns>
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
}
}