AlipayController.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using Essensoft.AspNetCore.Alipay;
  2. using Essensoft.AspNetCore.Alipay.Domain;
  3. using Essensoft.AspNetCore.Alipay.Request;
  4. using Microsoft.AspNetCore.Mvc;
  5. using System.Threading.Tasks;
  6. namespace WebApplicationSample.Controllers
  7. {
  8. public class AlipayController : Controller
  9. {
  10. public readonly AlipayClient _client = null;
  11. public AlipayController(AlipayClient client)
  12. {
  13. _client = client;
  14. }
  15. [HttpPost]
  16. public async Task<IActionResult> PagePay(string out_trade_no, string subject, string total_amount, string body, string product_code, string notify_url)
  17. {
  18. var model = new AlipayTradePagePayModel()
  19. {
  20. Body = body,
  21. Subject = subject,
  22. TotalAmount = total_amount,
  23. OutTradeNo = out_trade_no,
  24. ProductCode = product_code,
  25. };
  26. var req = new AlipayTradePagePayRequest();
  27. req.SetBizModel(model);
  28. req.SetNotifyUrl(notify_url);
  29. var response = await _client.PageExecuteAsync(req, null, "GET");
  30. return Redirect(response.Body);
  31. }
  32. [HttpPost]
  33. public async Task<IActionResult> PreCreate(string out_trade_no, string subject, string total_amount, string body, string notify_url)
  34. {
  35. var builder = new AlipayTradePrecreateModel()
  36. {
  37. Body = body,
  38. Subject = subject,
  39. TotalAmount = total_amount,
  40. OutTradeNo = out_trade_no,
  41. };
  42. var req = new AlipayTradePrecreateRequest();
  43. req.SetBizModel(builder);
  44. req.SetNotifyUrl(notify_url);
  45. var response = await _client.ExecuteAsync(req);
  46. return Ok(response.Body);
  47. }
  48. [HttpPost]
  49. public async Task<IActionResult> Query(string out_trade_no, string trade_no)
  50. {
  51. var builder = new AlipayTradeQueryModel()
  52. {
  53. OutTradeNo = out_trade_no,
  54. TradeNo = trade_no
  55. };
  56. var req = new AlipayTradeQueryRequest();
  57. req.SetBizModel(builder);
  58. var response = await _client.ExecuteAsync(req);
  59. return Ok(response.Body);
  60. }
  61. [HttpPost]
  62. public async Task<IActionResult> Refund(string out_trade_no, string trade_no, string refund_amount, string refund_reason, string out_request_no)
  63. {
  64. var builder = new AlipayTradeRefundModel()
  65. {
  66. OutTradeNo = out_trade_no,
  67. TradeNo = trade_no,
  68. RefundAmount = refund_amount,
  69. OutRequestNo = out_request_no,
  70. RefundReason = refund_reason
  71. };
  72. var req = new AlipayTradeRefundRequest();
  73. req.SetBizModel(builder);
  74. var response = await _client.ExecuteAsync(req);
  75. return Ok(response.Body);
  76. }
  77. [HttpPost]
  78. public async Task<IActionResult> RefundQuery(string out_trade_no, string trade_no, string out_request_no)
  79. {
  80. var builder = new AlipayTradeFastpayRefundQueryModel()
  81. {
  82. OutTradeNo = out_trade_no,
  83. TradeNo = trade_no,
  84. OutRequestNo = out_request_no
  85. };
  86. var req = new AlipayTradeFastpayRefundQueryRequest();
  87. req.SetBizModel(builder);
  88. var response = await _client.ExecuteAsync(req);
  89. return Ok(response.Body);
  90. }
  91. [HttpPost]
  92. public async Task<IActionResult> Close(string out_trade_no, string trade_no)
  93. {
  94. var builder = new AlipayTradeCloseModel()
  95. {
  96. OutTradeNo = out_trade_no,
  97. TradeNo = trade_no,
  98. };
  99. var req = new AlipayTradeCloseRequest();
  100. req.SetBizModel(builder);
  101. var response = await _client.ExecuteAsync(req);
  102. return Ok(response.Body);
  103. }
  104. [HttpPost]
  105. public async Task<IActionResult> Trans(string out_biz_no, string payee_account, string payee_type, string amount, string remark)
  106. {
  107. var builder = new AlipayFundTransToaccountTransferModel()
  108. {
  109. OutBizNo = out_biz_no,
  110. PayeeType = payee_type,
  111. PayeeAccount = payee_account,
  112. Amount = amount,
  113. Remark = remark
  114. };
  115. var req = new AlipayFundTransToaccountTransferRequest();
  116. req.SetBizModel(builder);
  117. var response = await _client.ExecuteAsync(req);
  118. return Ok(response.Body);
  119. }
  120. [HttpPost]
  121. public async Task<IActionResult> TransQuery(string out_biz_no, string order_id)
  122. {
  123. var builder = new AlipayFundTransOrderQueryModel()
  124. {
  125. OutBizNo = out_biz_no,
  126. OrderId = order_id,
  127. };
  128. var req = new AlipayFundTransOrderQueryRequest();
  129. req.SetBizModel(builder);
  130. var response = await _client.ExecuteAsync(req);
  131. return Ok(response.Body);
  132. }
  133. [HttpPost]
  134. public async Task<IActionResult> BillDownloadurlQuery(string bill_date, string bill_type)
  135. {
  136. var builder = new AlipayDataDataserviceBillDownloadurlQueryModel()
  137. {
  138. BillDate = bill_date,
  139. BillType = bill_type
  140. };
  141. var req = new AlipayDataDataserviceBillDownloadurlQueryRequest();
  142. req.SetBizModel(builder);
  143. var response = await _client.ExecuteAsync(req);
  144. return Ok(response.Body);
  145. }
  146. }
  147. }