QPayController.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Essensoft.AspNetCore.QPay;
  2. using Essensoft.AspNetCore.QPay.Request;
  3. using Microsoft.AspNetCore.Mvc;
  4. using System.Threading.Tasks;
  5. namespace WebApplicationSample.Controllers
  6. {
  7. public class QPayController : Controller
  8. {
  9. public readonly QPayClient _client = null;
  10. public readonly QPayCertificateClient _certClient = null;
  11. public QPayController(QPayClient client, QPayCertificateClient certClient)
  12. {
  13. _client = client;
  14. _certClient = certClient;
  15. }
  16. [HttpPost]
  17. public async Task<IActionResult> UnifiedOrder(string out_trade_no, string body, int total_fee, string spbill_create_ip, string notify_url, string trade_type)
  18. {
  19. var request = new QPayUnifiedOrderRequest()
  20. {
  21. OutTradeNo = out_trade_no,
  22. Body = body,
  23. TotalFee = total_fee,
  24. SpbillCreateIp = spbill_create_ip,
  25. NotifyUrl = notify_url,
  26. TradeType = trade_type,
  27. };
  28. var response = await _client.ExecuteAsync(request);
  29. return Ok(response.Body);
  30. }
  31. [HttpPost]
  32. public async Task<IActionResult> OrderQuery(string transaction_id, string out_trade_no)
  33. {
  34. var request = new QPayOrderQueryRequest()
  35. {
  36. TransactionId = transaction_id,
  37. OutTradeNo = out_trade_no,
  38. };
  39. var response = await _client.ExecuteAsync(request);
  40. return Ok(response.Body);
  41. }
  42. [HttpPost]
  43. public async Task<IActionResult> CloseOrder(string out_trade_no)
  44. {
  45. var request = new QPayCloseOrderRequest()
  46. {
  47. OutTradeNo = out_trade_no,
  48. };
  49. var response = await _client.ExecuteAsync(request);
  50. return Ok(response.Body);
  51. }
  52. [HttpPost]
  53. public async Task<IActionResult> Refund(string out_refund_no, string transaction_id, string out_trade_no, int refund_fee, string op_user_id, string op_user_passwd)
  54. {
  55. var request = new QPayRefundRequest()
  56. {
  57. OutRefundNo = out_refund_no,
  58. TransactionId = transaction_id,
  59. OutTradeNo = out_trade_no,
  60. RefundFee = refund_fee,
  61. OpUserId = op_user_id,
  62. OpUserPasswd = op_user_passwd,
  63. };
  64. var response = await _certClient.ExecuteAsync(request);
  65. return Ok(response.Body);
  66. }
  67. [HttpPost]
  68. public async Task<IActionResult> RefundQuery(string refund_id, string out_refund_no, string transaction_id, string out_trade_no)
  69. {
  70. var request = new QPayRefundQueryRequest()
  71. {
  72. RefundId = refund_id,
  73. OutRefundNo = out_refund_no,
  74. TransactionId = transaction_id,
  75. OutTradeNo = out_trade_no,
  76. };
  77. var response = await _client.ExecuteAsync(request);
  78. return Ok(response.Body);
  79. }
  80. }
  81. }