using System.Threading.Tasks;
using Essensoft.AspNetCore.Payment.LianLianPay;
using Essensoft.AspNetCore.Payment.LianLianPay.Notify;
using Essensoft.AspNetCore.Payment.LianLianPay.Request;
using Microsoft.AspNetCore.Mvc;
using WebApplicationSample.Models;
namespace WebApplicationSample.Controllers
{
public class LianLianPayController : Controller
{
private readonly ILianLianPayClient _client;
private readonly ILianLianPayNotifyClient _notifyClient;
public LianLianPayController(ILianLianPayClient client, ILianLianPayNotifyClient notifyClient)
{
_client = client;
_notifyClient = notifyClient;
}
///
/// 连连支付指引页
///
///
public IActionResult Index()
{
return View();
}
///
/// WEB快捷支付
///
///
[HttpGet]
public IActionResult WebQuickPay()
{
return View();
}
///
/// WEB快捷支付
///
///
///
[HttpPost]
public async Task WebQuickPay(LianLianPayWebQuickPayViewModel viewModel)
{
var request = new LianLianPayCreateBillRequest
{
UserId = viewModel.UserId,
NoOrder = viewModel.NoOrder,
DtOrder = viewModel.DtOrder,
NameGoods = viewModel.NameGoods,
MoneyOrder = viewModel.MoneyOrder,
NotifyUrl = viewModel.NotifyUrl,
UrlReturn = viewModel.UrlReturn,
RiskItem = viewModel.RiskItem,
FlagPayProduct = "0",
FlagChnl = "2"
};
var response = await _client.ExecuteAsync(request);
return Redirect(response.GatewayUrl);
}
///
/// H5快捷支付
///
///
[HttpGet]
public IActionResult H5QuickPay()
{
return View();
}
///
/// H5快捷支付
///
///
///
[HttpPost]
public async Task H5QuickPay(LianLianPayH5QuickPayViewModel viewModel)
{
var request = new LianLianPayCreateBillRequest
{
UserId = viewModel.UserId,
NoOrder = viewModel.NoOrder,
DtOrder = viewModel.DtOrder,
NameGoods = viewModel.NameGoods,
MoneyOrder = viewModel.MoneyOrder,
NotifyUrl = viewModel.NotifyUrl,
UrlReturn = viewModel.UrlReturn,
RiskItem = viewModel.RiskItem,
FlagPayProduct = "0",
FlagChnl = "3"
};
var response = await _client.ExecuteAsync(request);
return Redirect(response.GatewayUrl);
}
///
/// 订单查询
///
///
[HttpGet]
public IActionResult OrderQuery()
{
return View();
}
///
/// 订单查询
///
///
///
[HttpPost]
public async Task OrderQuery(LianLianPayOrderQueryViewModel viewModel)
{
var request = new LianLianPayOrderQueryRequest
{
NoOrder = viewModel.NoOrder,
DtOrder = viewModel.DtOrder,
OidPayBill = viewModel.OidPayBill
};
var response = await _client.ExecuteAsync(request);
ViewData["response"] = response.Body;
return View();
}
///
/// 退款
///
///
[HttpGet]
public IActionResult Refund()
{
return View();
}
///
/// 退款
///
///
///
[HttpPost]
public async Task Refund(LianLianPayRefundViewModel viewModel)
{
var request = new LianLianPayRefundRequest
{
NoRefund = viewModel.NoRefund,
DtRefund = viewModel.DtRefund,
MoneyRefund = viewModel.MoneyRefund,
NoOrder = viewModel.NoOrder,
DtOrder = viewModel.DtOrder,
OidPaybill = viewModel.OidPayBill,
NotifyUrl = viewModel.NotifyUrl
};
var response = await _client.ExecuteAsync(request);
ViewData["response"] = response.Body;
return View();
}
///
/// 退款查询
///
///
[HttpGet]
public IActionResult RefundQuery()
{
return View();
}
///
/// 退款查询
///
///
///
[HttpPost]
public async Task RefundQuery(LianLianPayRefundQueryViewModel viewModel)
{
var request = new LianLianPayRefundQueryRequest
{
NoRefund = viewModel.NoRefund,
DtRefund = viewModel.DtRefund,
OidRefundNo = viewModel.OidRefundNo
};
var response = await _client.ExecuteAsync(request);
ViewData["response"] = response.Body;
return View();
}
///
/// 快捷支付 - 同步跳转
///
///
[HttpPost]
public async Task QuickPayReturn()
{
try
{
var notify = await _notifyClient.ExecuteAsync(Request);
ViewData["response"] = "支付成功";
return View();
}
catch
{
ViewData["response"] = "出现错误";
return View();
}
}
}
}