UnionPayController.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System.Threading.Tasks;
  2. using Essensoft.AspNetCore.Payment.UnionPay;
  3. using Essensoft.AspNetCore.Payment.UnionPay.Notify;
  4. using Essensoft.AspNetCore.Payment.UnionPay.Request;
  5. using Microsoft.AspNetCore.Mvc;
  6. using WebApplicationSample.Models;
  7. namespace WebApplicationSample.Controllers
  8. {
  9. public class UnionPayController : Controller
  10. {
  11. private readonly IUnionPayClient _client;
  12. private readonly IUnionPayNotifyClient _notifyClient;
  13. public UnionPayController(IUnionPayClient client, IUnionPayNotifyClient notifyClient)
  14. {
  15. _client = client;
  16. _notifyClient = notifyClient;
  17. }
  18. public IActionResult Index()
  19. {
  20. return View();
  21. }
  22. [HttpGet]
  23. public IActionResult FrontConsume62()
  24. {
  25. return View();
  26. }
  27. [HttpPost]
  28. public async Task<IActionResult> FrontConsume62(UnionPayForm_6_2_FrontConsumeViewModel viewModel)
  29. {
  30. var request = new UnionPayForm_6_2_FrontConsumeRequest
  31. {
  32. TxnType = "01",
  33. TxnSubType = "01",
  34. BizType = "000201",
  35. ChannelType = "07",
  36. OrderId = viewModel.OrderId,
  37. TxnTime = viewModel.TxnTime,
  38. TxnAmt = viewModel.TxnAmt,
  39. CurrencyCode = viewModel.CurrencyCode,
  40. PayTimeout = viewModel.PayTimeout,
  41. FrontUrl = viewModel.FrontUrl,
  42. BackUrl = viewModel.BackUrl
  43. };
  44. var response = await _client.PageExecuteAsync(request);
  45. return Content(response.Body, "text/html;charset=utf-8");
  46. }
  47. [HttpPost]
  48. public async Task<IActionResult> FrontConsume62Return()
  49. {
  50. try
  51. {
  52. var notify = await _notifyClient.ExecuteAsync<UnionPayForm_6_2_FrontConsumeReturnResponse>(Request);
  53. ViewData["response"] = "支付成功";
  54. return View();
  55. }
  56. catch
  57. {
  58. ViewData["response"] = "出现错误";
  59. return View();
  60. }
  61. }
  62. }
  63. }