PreCreate.cshtml.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  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 PreCreateModel(IAlipayClient client, IOptions<PaylinksOptions> options) : PageModel
  9. {
  10. private readonly AlipayClientOptions _options = options.Value.Alipay;
  11. [BindProperty]
  12. public AlipayTradePreCreateBodyModel Input { get; set; }
  13. public void OnGet()
  14. {
  15. Input = new AlipayTradePreCreateBodyModel
  16. {
  17. OutTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
  18. TotalAmount = "0.01",
  19. Subject = "扫码支付测试",
  20. NotifyUrl = "https://www.domain.com/Alipay/Payments/Notify/TradeResult"
  21. };
  22. }
  23. public async Task OnPostAsync()
  24. {
  25. var request = new AlipayTradePreCreateRequest();
  26. request.SetBodyModel(Input);
  27. var response = await client.ExecuteAsync(request, _options);
  28. ViewData["qr_code"] = response.QrCode;
  29. ViewData["response"] = response.Body;
  30. }
  31. }