CodePay.cshtml.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Essensoft.Paylinks.WeChatPay.Client;
  2. using Essensoft.Paylinks.WeChatPay.Payments.Domain;
  3. using Essensoft.Paylinks.WeChatPay.Payments.Model;
  4. using Essensoft.Paylinks.WeChatPay.Payments.Request;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Mvc.RazorPages;
  7. using Microsoft.Extensions.Options;
  8. namespace Essensoft.Paylinks.Sample.Web.Pages.WeChatPay.Payments;
  9. public class CodePayModel(IWeChatPayClient client, IOptions<PaylinksOptions> options) : PageModel
  10. {
  11. private readonly WeChatPayClientOptions _options = options.Value.WeChatPay;
  12. [BindProperty]
  13. public WeChatPayCodePayBodyModel Input { get; set; }
  14. public void OnGet()
  15. {
  16. Input = new WeChatPayCodePayBodyModel
  17. {
  18. AppId = _options.AppId,
  19. MchId = _options.MchId,
  20. Description = "付款码支付测试",
  21. OutTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
  22. Payer = new Payer { AuthCode = string.Empty },
  23. Amount = new Amount { Total = 1 },
  24. SceneInfo = new CodeReqSceneInfo { StoreInfo = new CodeReqStoreInfo { Id = string.Empty } }
  25. };
  26. }
  27. public async Task OnPostAsync()
  28. {
  29. var request = new WeChatPayCodePayRequest();
  30. request.SetBodyModel(Input);
  31. var response = await client.ExecuteAsync(request, _options);
  32. ViewData["response"] = response.Body;
  33. }
  34. }