1
0

QPayController.cs 2.9 KB

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