using Essensoft.AspNetCore.Payment.WeChatPay; using Essensoft.AspNetCore.Payment.WeChatPay.Request; using Essensoft.AspNetCore.Payment.WeChatPay.Response; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; namespace New_College.Common.Helper { public class WeChatPay { /// /// 订单查询 /// /// /// /// /// public async Task OrderQuery(IWeChatPayClient _client, IOptions _optionsAccessor, WeChatPayOrderQuery viewModel) { var request = new WeChatPayOrderQueryRequest { TransactionId = viewModel.TransactionId, OutTradeNo = viewModel.OutTradeNo }; return await _client.ExecuteAsync(request, _optionsAccessor.Value); } /// /// 返回微信支付链接 /// /// /// public static async Task GetMwebUrl(IWeChatPayClient _client, IOptions _optionsAccessor, WeChatPayPayRequest viewModel) { var request = new WeChatPayUnifiedOrderRequest { Body = viewModel.Body, OutTradeNo = viewModel.OutTradeNo, TotalFee = viewModel.TotalFee, SpBillCreateIp = viewModel.SpBillCreateIp, NotifyUrl = viewModel.NotifyUrl, TradeType = viewModel.TradeType }; return await _client.ExecuteAsync(request, _optionsAccessor.Value); } /// /// 退款 /// /// /// /// /// public static async Task Refund(IWeChatPayClient _client, IOptions _optionsAccessor, WeChatPayRefundQuery query) { var request = new WeChatPayRefundRequest { OutRefundNo = query.OutRefundNo, TransactionId = query.TransactionId, OutTradeNo = query.OutTradeNo, TotalFee = query.TotalFee, RefundFee = query.RefundFee, RefundDesc = query.RefundDesc, NotifyUrl = query.NotifyUrl }; var response = await _client.ExecuteAsync(request, _optionsAccessor.Value); return response; } } }