LianLianPayController.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. using Essensoft.AspNetCore.Payment.LianLianPay;
  2. using Essensoft.AspNetCore.Payment.LianLianPay.Notify;
  3. using Essensoft.AspNetCore.Payment.LianLianPay.Request;
  4. using Microsoft.AspNetCore.Mvc;
  5. using NewWebApplicationSample.Models;
  6. using System.Threading.Tasks;
  7. namespace NewWebApplicationSample.Controllers
  8. {
  9. public class LianLianPayController : Controller
  10. {
  11. private readonly LianLianPayClient _client = null;
  12. private readonly LianLianPayNotifyClient _notifyClient = null;
  13. public LianLianPayController(LianLianPayClient client, LianLianPayNotifyClient notifyClient)
  14. {
  15. _client = client;
  16. _notifyClient = notifyClient;
  17. }
  18. public IActionResult Index()
  19. {
  20. return View();
  21. }
  22. [HttpGet]
  23. public IActionResult WebQuickPay()
  24. {
  25. return View();
  26. }
  27. [HttpPost]
  28. public async Task<IActionResult> WebQuickPay(LianLianPayWebQuickPayViewModel viewModel)
  29. {
  30. var request = new LianLianPayWebQuickPayRequest()
  31. {
  32. NoOrder = viewModel.NoOrder,
  33. DtOrder = viewModel.DtOrder,
  34. MoneyOrder = viewModel.MoneyOrder,
  35. NameGoods = viewModel.NameGoods,
  36. UserId = viewModel.UserId,
  37. NotifyUrl = viewModel.NotifyUrl,
  38. UrlReturn = viewModel.UrlReturn,
  39. BankCode = viewModel.BankCode,
  40. PayType = viewModel.PayType,
  41. NoAgree = viewModel.NoAgree,
  42. RiskItem = viewModel.RiskItem,
  43. IdType = viewModel.IdType,
  44. IdNo = viewModel.IdNo,
  45. AcctName = viewModel.AcctName,
  46. CardNo = viewModel.CardNo,
  47. };
  48. var response = await _client.PageExecuteAsync(request);
  49. return Content(response.Body, "text/html");
  50. }
  51. [HttpGet]
  52. public IActionResult WapQuickPay()
  53. {
  54. return View();
  55. }
  56. [HttpPost]
  57. public async Task<IActionResult> WapQuickPay(LianLianPayWapQuickPayViewModel viewModel)
  58. {
  59. var request = new LianLianPayWapQuickPayRequest()
  60. {
  61. NoOrder = viewModel.NoOrder,
  62. DtOrder = viewModel.DtOrder,
  63. MoneyOrder = viewModel.MoneyOrder,
  64. NameGoods = viewModel.NameGoods,
  65. UserId = viewModel.UserId,
  66. AppRequest = viewModel.AppRequest,
  67. NotifyUrl = viewModel.NotifyUrl,
  68. UrlReturn = viewModel.UrlReturn,
  69. NoAgree = viewModel.NoAgree,
  70. RiskItem = viewModel.RiskItem,
  71. IdType = viewModel.IdType,
  72. IdNo = viewModel.IdNo,
  73. AcctName = viewModel.AcctName,
  74. CardNo = viewModel.CardNo,
  75. };
  76. var response = await _client.PageReqDataExecuteAsync(request);
  77. return Content(response.Body, "text/html");
  78. }
  79. [HttpGet]
  80. public IActionResult OrderQuery()
  81. {
  82. return View();
  83. }
  84. [HttpPost]
  85. public async Task<IActionResult> OrderQuery(LianLianPayOrderQueryViewModel viewModel)
  86. {
  87. var request = new LianLianPayOrderQueryRequest()
  88. {
  89. NoOrder = viewModel.NoOrder,
  90. DtOrder = viewModel.DtOrder,
  91. OidPayBill = viewModel.OidPayBill
  92. };
  93. var response = await _client.ExecuteAsync(request);
  94. ViewData["response"] = response.Body;
  95. return View();
  96. }
  97. [HttpGet]
  98. public IActionResult Refund()
  99. {
  100. return View();
  101. }
  102. [HttpPost]
  103. public async Task<IActionResult> Refund(LianLianPayRefundViewModel viewModel)
  104. {
  105. var request = new LianLianPayRefundRequest()
  106. {
  107. NoRefund = viewModel.NoRefund,
  108. DtRefund = viewModel.DtRefund,
  109. MoneyRefund = viewModel.MoneyRefund,
  110. NoOrder = viewModel.NoOrder,
  111. DtOrder = viewModel.DtOrder,
  112. OidPaybill = viewModel.OidPayBill,
  113. NotifyUrl = viewModel.NotifyUrl,
  114. };
  115. var response = await _client.ExecuteAsync(request);
  116. ViewData["response"] = response.Body;
  117. return View();
  118. }
  119. [HttpGet]
  120. public IActionResult RefundQuery()
  121. {
  122. return View();
  123. }
  124. [HttpPost]
  125. public async Task<IActionResult> RefundQuery(LianLianPayRefundQueryViewModel viewModel)
  126. {
  127. var request = new LianLianPayRefundQueryRequest()
  128. {
  129. NoRefund = viewModel.NoRefund,
  130. DtRefund = viewModel.DtRefund,
  131. OidRefundNo = viewModel.OidRefundNo,
  132. };
  133. var response = await _client.ExecuteAsync(request);
  134. ViewData["response"] = response.Body;
  135. return View();
  136. }
  137. [HttpPost]
  138. public async Task<IActionResult> WebQuickPayReturn()
  139. {
  140. try
  141. {
  142. var notify = await _notifyClient.ExecuteAsync<LianLianPayWebQuickPayReturnResponse>(Request);
  143. ViewData["response"] = "支付成功";
  144. return View();
  145. }
  146. catch
  147. {
  148. ViewData["response"] = "出现错误";
  149. return View();
  150. }
  151. }
  152. [HttpPost]
  153. public async Task<IActionResult> WapQuickPayReturn()
  154. {
  155. try
  156. {
  157. var notify = await _notifyClient.ExecuteAsync<LianLianPayWapQuickPayReturnResponse>(Request);
  158. ViewData["response"] = "支付成功";
  159. return View();
  160. }
  161. catch
  162. {
  163. ViewData["response"] = "出现错误";
  164. return View();
  165. }
  166. }
  167. }
  168. }