NewGaoKaoApi/New_College.Common/Helper/WeChatPayV3Helper.cs

45 lines
1.5 KiB
C#

using Essensoft.AspNetCore.Payment.WeChatPay;
using Essensoft.AspNetCore.Payment.WeChatPay.V3;
using Essensoft.AspNetCore.Payment.WeChatPay.V3.Domain;
using Essensoft.AspNetCore.Payment.WeChatPay.V3.Request;
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 WeChatPayV3
{
/// <summary>
/// 扫码支付-Native下单API
/// </summary>
/// <param name="_client"></param>
/// <param name="_optionsAccessor"></param>
/// <param name="viewModel"></param>
/// <returns></returns>
public static async Task<dynamic> QrCodePay(IWeChatPayClient _client,
IOptions<WeChatPayOptions> _optionsAccessor, WeChatPayTransactionsNativeQuery viewModel)
{
var model = new WeChatPayTransactionsNativeBodyModel
{
AppId = _optionsAccessor.Value.AppId,
MchId = _optionsAccessor.Value.MchId,
Amount = new Essensoft.AspNetCore.Payment.WeChatPay.V3.Domain.Amount { Total = viewModel.Total, Currency = "CNY" },
Description = viewModel.Description,
NotifyUrl = viewModel.NotifyUrl,
OutTradeNo = viewModel.OutTradeNo,
};
var request = new WeChatPayTransactionsNativeRequest();
request.SetBodyModel(model);
return await _client.ExecuteAsync(request, _optionsAccessor.Value);
}
}
}