LianLianPayController.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. using System.Threading.Tasks;
  2. using Essensoft.AspNetCore.Payment.LianLianPay;
  3. using Essensoft.AspNetCore.Payment.LianLianPay.Notify;
  4. using Essensoft.AspNetCore.Payment.LianLianPay.Request;
  5. using Microsoft.AspNetCore.Mvc;
  6. using WebApplicationSample.Models;
  7. namespace WebApplicationSample.Controllers
  8. {
  9. public class LianLianPayController : Controller
  10. {
  11. private readonly ILianLianPayClient _client;
  12. private readonly ILianLianPayNotifyClient _notifyClient;
  13. public LianLianPayController(ILianLianPayClient client, ILianLianPayNotifyClient notifyClient)
  14. {
  15. _client = client;
  16. _notifyClient = notifyClient;
  17. }
  18. /// <summary>
  19. /// 连连支付指引页
  20. /// </summary>
  21. /// <returns></returns>
  22. public IActionResult Index()
  23. {
  24. return View();
  25. }
  26. /// <summary>
  27. /// WEB快捷支付
  28. /// </summary>
  29. /// <returns></returns>
  30. [HttpGet]
  31. public IActionResult WebQuickPay()
  32. {
  33. return View();
  34. }
  35. /// <summary>
  36. /// WEB快捷支付
  37. /// </summary>
  38. /// <param name="viewModel"></param>
  39. /// <returns></returns>
  40. [HttpPost]
  41. public async Task<IActionResult> WebQuickPay(LianLianPayWebQuickPayViewModel viewModel)
  42. {
  43. var request = new LianLianPayCreateBillRequest
  44. {
  45. UserId = viewModel.UserId,
  46. NoOrder = viewModel.NoOrder,
  47. DtOrder = viewModel.DtOrder,
  48. NameGoods = viewModel.NameGoods,
  49. MoneyOrder = viewModel.MoneyOrder,
  50. NotifyUrl = viewModel.NotifyUrl,
  51. UrlReturn = viewModel.UrlReturn,
  52. RiskItem = viewModel.RiskItem,
  53. FlagPayProduct = "0",
  54. FlagChnl = "2"
  55. };
  56. var response = await _client.ExecuteAsync(request);
  57. return Redirect(response.GatewayUrl);
  58. }
  59. /// <summary>
  60. /// H5快捷支付
  61. /// </summary>
  62. /// <returns></returns>
  63. [HttpGet]
  64. public IActionResult H5QuickPay()
  65. {
  66. return View();
  67. }
  68. /// <summary>
  69. /// H5快捷支付
  70. /// </summary>
  71. /// <param name="viewModel"></param>
  72. /// <returns></returns>
  73. [HttpPost]
  74. public async Task<IActionResult> H5QuickPay(LianLianPayH5QuickPayViewModel viewModel)
  75. {
  76. var request = new LianLianPayCreateBillRequest
  77. {
  78. UserId = viewModel.UserId,
  79. NoOrder = viewModel.NoOrder,
  80. DtOrder = viewModel.DtOrder,
  81. NameGoods = viewModel.NameGoods,
  82. MoneyOrder = viewModel.MoneyOrder,
  83. NotifyUrl = viewModel.NotifyUrl,
  84. UrlReturn = viewModel.UrlReturn,
  85. RiskItem = viewModel.RiskItem,
  86. FlagPayProduct = "0",
  87. FlagChnl = "3"
  88. };
  89. var response = await _client.ExecuteAsync(request);
  90. return Redirect(response.GatewayUrl);
  91. }
  92. /// <summary>
  93. /// 订单查询
  94. /// </summary>
  95. /// <returns></returns>
  96. [HttpGet]
  97. public IActionResult OrderQuery()
  98. {
  99. return View();
  100. }
  101. /// <summary>
  102. /// 订单查询
  103. /// </summary>
  104. /// <param name="viewModel"></param>
  105. /// <returns></returns>
  106. [HttpPost]
  107. public async Task<IActionResult> OrderQuery(LianLianPayOrderQueryViewModel viewModel)
  108. {
  109. var request = new LianLianPayOrderQueryRequest
  110. {
  111. NoOrder = viewModel.NoOrder,
  112. DtOrder = viewModel.DtOrder,
  113. OidPayBill = viewModel.OidPayBill
  114. };
  115. var response = await _client.ExecuteAsync(request);
  116. ViewData["response"] = response.Body;
  117. return View();
  118. }
  119. /// <summary>
  120. /// 退款
  121. /// </summary>
  122. /// <returns></returns>
  123. [HttpGet]
  124. public IActionResult Refund()
  125. {
  126. return View();
  127. }
  128. /// <summary>
  129. /// 退款
  130. /// </summary>
  131. /// <param name="viewModel"></param>
  132. /// <returns></returns>
  133. [HttpPost]
  134. public async Task<IActionResult> Refund(LianLianPayRefundViewModel viewModel)
  135. {
  136. var request = new LianLianPayRefundRequest
  137. {
  138. NoRefund = viewModel.NoRefund,
  139. DtRefund = viewModel.DtRefund,
  140. MoneyRefund = viewModel.MoneyRefund,
  141. NoOrder = viewModel.NoOrder,
  142. DtOrder = viewModel.DtOrder,
  143. OidPaybill = viewModel.OidPayBill,
  144. NotifyUrl = viewModel.NotifyUrl
  145. };
  146. var response = await _client.ExecuteAsync(request);
  147. ViewData["response"] = response.Body;
  148. return View();
  149. }
  150. /// <summary>
  151. /// 退款查询
  152. /// </summary>
  153. /// <returns></returns>
  154. [HttpGet]
  155. public IActionResult RefundQuery()
  156. {
  157. return View();
  158. }
  159. /// <summary>
  160. /// 退款查询
  161. /// </summary>
  162. /// <param name="viewModel"></param>
  163. /// <returns></returns>
  164. [HttpPost]
  165. public async Task<IActionResult> RefundQuery(LianLianPayRefundQueryViewModel viewModel)
  166. {
  167. var request = new LianLianPayRefundQueryRequest
  168. {
  169. NoRefund = viewModel.NoRefund,
  170. DtRefund = viewModel.DtRefund,
  171. OidRefundNo = viewModel.OidRefundNo
  172. };
  173. var response = await _client.ExecuteAsync(request);
  174. ViewData["response"] = response.Body;
  175. return View();
  176. }
  177. /// <summary>
  178. /// 快捷支付 - 同步跳转
  179. /// </summary>
  180. /// <returns></returns>
  181. [HttpPost]
  182. public async Task<IActionResult> QuickPayReturn()
  183. {
  184. try
  185. {
  186. var notify = await _notifyClient.ExecuteAsync<LianLianPayReceiveMoneyReturnResponse>(Request);
  187. ViewData["response"] = "支付成功";
  188. return View();
  189. }
  190. catch
  191. {
  192. ViewData["response"] = "出现错误";
  193. return View();
  194. }
  195. }
  196. }
  197. }