using Essensoft.AspNetCore.Payment.Alipay;
using Essensoft.AspNetCore.Payment.Alipay.Notify;
using Essensoft.AspNetCore.Payment.JDPay;
using Essensoft.AspNetCore.Payment.JDPay.Notify;
using Essensoft.AspNetCore.Payment.LianLianPay;
using Essensoft.AspNetCore.Payment.LianLianPay.Notify;
using Essensoft.AspNetCore.Payment.QPay;
using Essensoft.AspNetCore.Payment.QPay.Notify;
using Essensoft.AspNetCore.Payment.UnionPay;
using Essensoft.AspNetCore.Payment.UnionPay.Notify;
using Essensoft.AspNetCore.Payment.WeChatPay;
using Essensoft.AspNetCore.Payment.WeChatPay.Notify;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
namespace WebApplicationSample.Controllers
{
#region 支付宝异步通知
[Route("notify/alipay")]
public class AlipayNotifyController : Controller
{
private readonly AlipayNotifyClient _client = null;
public AlipayNotifyController(AlipayNotifyClient client)
{
_client = client;
}
///
/// 扫码支付异步通知
///
///
[Route("precreate")]
[HttpPost]
public async Task Precreate()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("TRADE_SUCCESS" == notify.TradeStatus)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return AlipayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// 条码支付异步通知
///
///
[Route("pay")]
[HttpPost]
public async Task Pay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("TRADE_SUCCESS" == notify.TradeStatus)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return AlipayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// APP支付异步通知
///
///
[Route("apppay")]
[HttpPost]
public async Task AppPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("TRADE_SUCCESS" == notify.TradeStatus)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return AlipayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// 电脑网站支付异步通知
///
///
[Route("pagepay")]
[HttpPost]
public async Task PagePay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("TRADE_SUCCESS" == notify.TradeStatus)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return AlipayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// 手机网站支付异步通知
///
///
[Route("wappay")]
[HttpPost]
public async Task WapPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("TRADE_SUCCESS" == notify.TradeStatus)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return AlipayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
}
#endregion
#region 微信支付异步通知
[Route("notify/wechatpay")]
public class WeChatPayNotifyController : Controller
{
private readonly WeChatPayNotifyClient _client = null;
public WeChatPayNotifyController(WeChatPayNotifyClient client)
{
_client = client;
}
///
/// 统一下单支付结果通知
///
///
[Route("unifiedorder")]
[HttpPost]
public async Task Unifiedorder()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if (notify.ReturnCode == "SUCCESS")
{
if (notify.ResultCode == "SUCCESS")
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return WeChatPayNotifyResult.Success;
}
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// 退款结果通知
///
///
[Route("refund")]
[HttpPost]
public async Task Refund()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if (notify.ReturnCode == "SUCCESS")
{
if (notify.RefundStatus == "SUCCESS")
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return WeChatPayNotifyResult.Success;
}
}
return NoContent();
}
catch
{
return NoContent();
}
}
}
#endregion
#region QQ钱包异步通知
[Route("notify/qpay")]
public class QPayNotifyController : Controller
{
private readonly QPayNotifyClient _client = null;
public QPayNotifyController(QPayNotifyClient client)
{
_client = client;
}
///
/// 统一下单支付结果通知
///
///
[Route("unifiedorder")]
[HttpPost]
public async Task Unifiedorder()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("SUCCESS" == notify.TradeState)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return QPayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
///
/// 付款码支付结果通知
///
///
[Route("micropay")]
[HttpPost]
public async Task MicroPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
if ("SUCCESS" == notify.TradeState)
{
Console.WriteLine("OutTradeNo: " + notify.OutTradeNo);
return QPayNotifyResult.Success;
}
return NoContent();
}
catch
{
return NoContent();
}
}
}
#endregion
#region 京东支付异步通知
[Route("notify/jdpay")]
public class JDPayNotifyController : Controller
{
private readonly JDPayNotifyClient _client = null;
public JDPayNotifyController(JDPayNotifyClient client)
{
_client = client;
}
[Route("async")]
[HttpPost]
public async Task Async()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("TradeNum: " + notify.TradeNum + " tradeType :" + notify.TradeType);// notify.TradeType 0-消费 1-退款
return JDPayNotifyResult.Success;
}
catch
{
return NoContent();
}
}
[Route("defraypay")]
[HttpPost]
public async Task DefrayPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("trade_no: " + notify.TradeNo + " trade_amount :" + notify.TradeAmount);
return JDPayNotifyResult.Success;
}
catch
{
return NoContent();
}
}
}
#endregion
#region 连连支付异步通知
[Route("notify/lianlianpay")]
public class LianLianPayNotifyController : Controller
{
private readonly LianLianPayNotifyClient _client = null;
public LianLianPayNotifyController(LianLianPayNotifyClient client)
{
_client = client;
}
[Route("webquickpay")]
[HttpPost]
public async Task WebQuickPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("NoOrder: " + notify.NoOrder);
return LianLianPayNotifyResult.Success;
}
catch
{
return NoContent();
}
}
[Route("wapquickpay")]
[HttpPost]
public async Task WapQuickPay()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("NoOrder: " + notify.NoOrder);
return LianLianPayNotifyResult.Success;
}
catch
{
return NoContent();
}
}
[Route("refund")]
[HttpPost]
public async Task Refund()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("NoRefund: " + notify.NoRefund);
return LianLianPayNotifyResult.Success;
}
catch
{
return NoContent();
}
}
}
#endregion
#region 银联支付异步通知
[Route("notify/unionpay")]
public class UnionPayNotifyController : Controller
{
private readonly UnionPayNotifyClient _client = null;
public UnionPayNotifyController(UnionPayNotifyClient client)
{
_client = client;
}
///
/// 网关支付 - 跳转网关页面支付通知
///
///
[Route("frontconsume62")]
[HttpPost]
public async Task FrontConsume62()
{
try
{
var notify = await _client.ExecuteAsync(Request);
Console.WriteLine("OrderId: " + notify.OrderId + " respCode :" + notify.RespCode);
return UnionPayNotifyResult.Ok;
}
catch
{
return NoContent();
}
}
}
#endregion
}