Web.cshtml.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Essensoft.Paylinks.Alipay.Client;
  2. using Essensoft.Paylinks.Alipay.Payments.Model;
  3. using Essensoft.Paylinks.Alipay.Payments.Request;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Mvc.RazorPages;
  6. using Microsoft.Extensions.Options;
  7. namespace Essensoft.Paylinks.Sample.Web.Pages.Alipay.Payments;
  8. public class WebModel(IAlipayClient client, IOptions<PaylinksOptions> options) : PageModel
  9. {
  10. private readonly AlipayClientOptions _options = options.Value.Alipay;
  11. [BindProperty]
  12. public AlipayTradePagePayBizModel Input { get; set; }
  13. public void OnGet()
  14. {
  15. Input = new AlipayTradePagePayBizModel
  16. {
  17. OutTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
  18. TotalAmount = "0.01",
  19. Subject = "电脑网站支付测试",
  20. ProductCode = "FAST_INSTANT_TRADE_PAY",
  21. NotifyUrl = "https://www.domain.com/Alipay/Payments/Notify/TradeResult"
  22. };
  23. }
  24. public async Task OnPostAsync()
  25. {
  26. var request = new AlipayTradePagePayRequest();
  27. request.SetBizModel(Input);
  28. ViewData["response"] = await client.PageExecuteAsync(request, _options);
  29. }
  30. public async Task<IActionResult> OnPostJump()
  31. {
  32. var request = new AlipayTradePagePayRequest();
  33. request.SetBizModel(Input);
  34. return new ContentResult
  35. {
  36. Content = await client.PageExecuteAsync(request, _options),
  37. ContentType = "text/html"
  38. };
  39. }
  40. }