using Microsoft.AspNetCore.Mvc; using PaySharp.Core; using PaySharp.Core.Response; using PaySharp.Unionpay; using PaySharp.Unionpay.Domain; using PaySharp.Unionpay.Request; using System.Text; using System.Threading.Tasks; namespace PaySharp.Demo.Controllers { public class UnionpayController : Controller { private readonly IGateway _gateway; public UnionpayController(IGateways gateways) { _gateway = gateways.Get(); } [HttpPost] public IActionResult WebPay(string out_trade_no, double total_amount) { var request = new WebPayRequest(); request.AddGatewayData(new WebPayModel() { TotalAmount = total_amount, OutTradeNo = out_trade_no }); var response = _gateway.Execute(request); return Content(response.Html, "text/html", Encoding.UTF8); } [HttpPost] public IActionResult WapPay(string out_trade_no, double total_amount) { var request = new WapPayRequest(); request.AddGatewayData(new WapPayModel() { TotalAmount = total_amount, OutTradeNo = out_trade_no }); var response = _gateway.Execute(request); return Content(response.Html, "text/html", Encoding.UTF8); } [HttpPost] public IActionResult AppPay(string out_trade_no, double total_amount, string body) { var request = new AppPayRequest(); request.AddGatewayData(new AppPayModel() { Body = body, TotalAmount = total_amount, OutTradeNo = out_trade_no }); var response = _gateway.Execute(request); return Json(response); } //[HttpPost] //public IActionResult ScanPay(string out_trade_no, string subject, double total_amount, string body) //{ // var request = new ScanPayRequest(); // request.AddGatewayData(new ScanPayModel() // { // Body = body, // TotalAmount = total_amount, // Subject = subject, // OutTradeNo = out_trade_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult BarcodePay(string out_trade_no, string auth_code, string subject, double total_amount, string body) //{ // var request = new BarcodePayRequest(); // request.AddGatewayData(new BarcodePayModel() // { // Body = body, // TotalAmount = total_amount, // Subject = subject, // OutTradeNo = out_trade_no, // AuthCode = auth_code // }); // request.PaySucceed += BarcodePay_PaySucceed; // request.PayFailed += BarcodePay_PayFaild; // var response = _gateway.Execute(request); // return Json(response); //} ///// ///// 支付成功事件 ///// ///// 返回结果 ///// 提示信息 //private void BarcodePay_PaySucceed(IResponse response, string message) //{ //} ///// ///// 支付失败事件 ///// ///// 返回结果,可能是BarcodePayResponse/QueryResponse ///// 提示信息 //private void BarcodePay_PayFaild(IResponse response, string message) //{ //} //[HttpPost] //public IActionResult Query(string out_trade_no, string trade_no) //{ // var request = new QueryRequest(); // request.AddGatewayData(new QueryModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult Refund(string out_trade_no, string trade_no, double refund_amount, string refund_reason, string out_request_no) //{ // var request = new RefundRequest(); // request.AddGatewayData(new RefundModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no, // RefundAmount = refund_amount, // RefundReason = refund_reason, // OutRefundNo = out_request_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult RefundQuery(string out_trade_no, string trade_no, string out_request_no) //{ // var request = new RefundQueryRequest(); // request.AddGatewayData(new RefundQueryModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no, // OutRefundNo = out_request_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult Cancel(string out_trade_no, string trade_no) //{ // var request = new CancelRequest(); // request.AddGatewayData(new CancelModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult Close(string out_trade_no, string trade_no) //{ // var request = new CloseRequest(); // request.AddGatewayData(new CloseModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult Transfer(string out_trade_no, string payee_account, string payee_type, double amount, string remark) //{ // var request = new TransferRequest(); // request.AddGatewayData(new TransferModel() // { // OutTradeNo = out_trade_no, // PayeeAccount = payee_account, // Amount = amount, // Remark = remark, // PayeeType = payee_type // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public IActionResult TransferQuery(string out_trade_no, string trade_no) //{ // var request = new TransferQueryRequest(); // request.AddGatewayData(new TransferQueryModel() // { // TradeNo = trade_no, // OutTradeNo = out_trade_no // }); // var response = _gateway.Execute(request); // return Json(response); //} //[HttpPost] //public async Task BillDownload(string bill_date, string bill_type) //{ // var request = new BillDownloadRequest(); // request.AddGatewayData(new BillDownloadModel() // { // BillDate = bill_date, // BillType = bill_type // }); // var response = _gateway.Execute(request); // return File(await response.GetBillFileAsync(), "application/zip"); //} } }