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;
}
}
}