Refund.cshtml.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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 RefundModel(IWeChatPayClient client, IOptions<PaylinksOptions> options) : PageModel
  10. {
  11. private readonly WeChatPayClientOptions _options = options.Value.WeChatPay;
  12. [BindProperty]
  13. public WeChatPayRefundBodyModel Input { get; set; }
  14. public void OnGet()
  15. {
  16. Input = new WeChatPayRefundBodyModel
  17. {
  18. OutRefundNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
  19. Amount = new RefundAmount { Refund = 1, Total = 1, Currency = "CNY" },
  20. NotifyUrl = "https://www.domain.com/WeChatPay/Payments/Notify/RefundResult"
  21. };
  22. }
  23. public async Task OnPostAsync()
  24. {
  25. var request = new WeChatPayRefundRequest();
  26. request.SetBodyModel(Input);
  27. var response = await client.ExecuteAsync(request, _options);
  28. ViewData["response"] = response.Body;
  29. }
  30. }