using Aliyun.Acs.Core.Logging;
|
using Aliyun.OSS;
|
using Aop.Api;
|
using Aop.Api.Domain;
|
using Aop.Api.Request;
|
using Aop.Api.Response;
|
using Aop.Api.Util;
|
using Furion;
|
using Furion.FriendlyException;
|
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Options;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace FlexJobApi.Core
|
{
|
/// <summary>
|
/// 阿里支付工具
|
/// </summary>
|
public class AlipayUtils
|
{
|
private readonly IAopClient alipayClient;
|
private readonly ILogger<AlipayUtils> logger;
|
private readonly IOptions<AlipayOptions> options;
|
|
public AlipayUtils(
|
ILogger<AlipayUtils> logger,
|
IOptions<AlipayOptions> options)
|
{
|
var appCertPath = Path.Combine(App.WebHostEnvironment.ContentRootPath, options.Value.AppCertPath);
|
var alipayPublicCertPath = Path.Combine(App.WebHostEnvironment.ContentRootPath, options.Value.AlipayPublicCertPath);
|
var rootCertPath = Path.Combine(App.WebHostEnvironment.ContentRootPath, options.Value.RootCertPath);
|
alipayClient = new DefaultAopClient(new AlipayConfig
|
{
|
ServerUrl = options.Value.ServerUrl,
|
AppId = options.Value.AppId,
|
PrivateKey = options.Value.PrivateKey,
|
Format = options.Value.Format,
|
Charset = options.Value.Charset,
|
SignType = options.Value.SignType,
|
AppCertPath = appCertPath,
|
AlipayPublicCertPath = alipayPublicCertPath,
|
RootCertPath = rootCertPath,
|
AlipayPublicKey = options.Value.AlipayPublicKey,
|
EncryptKey = options.Value.EncryptKey,
|
});
|
this.logger = logger;
|
this.options = options;
|
}
|
|
/// <summary>
|
/// 支付宝个人协议页面签约接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="notifyUrl"></param>
|
public AlipayUserAgreementPageSignResponse UserAgreementPageSign(AlipayUserAgreementPageSignModel model, string notifyUrl = null)
|
{
|
logger.LogInformation($"正在执行支付宝个人协议页面签约接口:{model.ToJson()}");
|
AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest();
|
request.SetBizModel(model);
|
if (notifyUrl.IsNotNull())
|
{
|
notifyUrl = $"{options.Value.NotifyUrl}{notifyUrl}";
|
request.SetNotifyUrl(notifyUrl);
|
}
|
AlipayUserAgreementPageSignResponse response = alipayClient.pageExecute(request, null, "GET");
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 支付宝个人代扣协议查询接口
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayUserAgreementQueryResponse UserAgreementQuery(AlipayUserAgreementQueryModel model)
|
{
|
logger.LogInformation($"正在执行支付宝个人代扣协议查询接口:{model.ToJson()}");
|
AlipayUserAgreementQueryRequest request = new AlipayUserAgreementQueryRequest();
|
request.SetBizModel(model);
|
AlipayUserAgreementQueryResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 支付宝个人代扣协议解约接口
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayUserAgreementUnsignResponse UserAgreementUnsign(AlipayUserAgreementUnsignModel model)
|
{
|
logger.LogInformation($"正在执行支付宝个人代扣协议解约接口:{model.ToJson()}");
|
AlipayUserAgreementUnsignRequest request = new AlipayUserAgreementUnsignRequest();
|
request.SetBizModel(model);
|
AlipayUserAgreementUnsignResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金记账本开通
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayFundAccountbookCreateResponse FundAccountbookCreate(AlipayFundAccountbookCreateModel model)
|
{
|
logger.LogInformation($"正在执行资金记账本开通接口:{model.ToJson()}");
|
AlipayFundAccountbookCreateRequest request = new AlipayFundAccountbookCreateRequest();
|
request.SetBizModel(model);
|
AlipayFundAccountbookCreateResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金记账本的信息查询
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayFundAccountbookQueryResponse FundAccountbookQuery(AlipayFundAccountbookQueryModel model)
|
{
|
logger.LogInformation($"正在执行资金记账本的信息查询接口:{model.ToJson()}");
|
AlipayFundAccountbookQueryRequest request = new AlipayFundAccountbookQueryRequest();
|
request.SetBizModel(model);
|
AlipayFundAccountbookQueryResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金转账页面支付接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="notifyUrl"></param>
|
public AlipayFundTransPagePayResponse FundTransPagePay(AlipayFundTransPagePayModel model, string notifyUrl = null)
|
{
|
logger.LogInformation($"正在执行资金转账页面支付接口:{model.ToJson()}");
|
AlipayFundTransPagePayRequest request = new AlipayFundTransPagePayRequest();
|
request.SetBizModel(model);
|
if (notifyUrl.IsNotNull())
|
{
|
notifyUrl = $"{options.Value.NotifyUrl}{notifyUrl}";
|
request.SetNotifyUrl(notifyUrl);
|
}
|
AlipayFundTransPagePayResponse response = alipayClient.pageExecute(request, null, "GET");
|
logger.LogInformation($"结果:{response.Body}");
|
return response;
|
}
|
|
/// <summary>
|
/// 单笔转账接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="notifyUrl"></param>
|
public AlipayFundTransUniTransferResponse FundTransUniTransfer(AlipayFundTransUniTransferModel model, string notifyUrl = null)
|
{
|
logger.LogInformation($"正在执行单笔转账接口:{model.ToJson()}");
|
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
|
request.SetBizModel(model);
|
if (notifyUrl.IsNotNull())
|
{
|
notifyUrl = $"{options.Value.NotifyUrl}{notifyUrl}";
|
request.SetNotifyUrl(notifyUrl);
|
}
|
AlipayFundTransUniTransferResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 转账业务单据查询接口
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayFundTransCommonQueryResponse FundTransCommonQuery(AlipayFundTransCommonQueryModel model)
|
{
|
logger.LogInformation($"正在执行转账业务单据查询接口:{model.ToJson()}");
|
AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest();
|
request.SetBizModel(model);
|
AlipayFundTransCommonQueryResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 账单与电子凭证下载
|
/// </summary>
|
/// <param name="model"></param>
|
public AlipayDataBillBizfundagentQueryResponse FundTransCommonQuery(AlipayDataBillBizfundagentQueryModel model)
|
{
|
logger.LogInformation($"正在执行账单与电子凭证下载:{model.ToJson()}");
|
AlipayDataBillBizfundagentQueryRequest request = new AlipayDataBillBizfundagentQueryRequest();
|
request.SetBizModel(model);
|
AlipayDataBillBizfundagentQueryResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金二级商户KYB代进件文件上传接口
|
/// </summary>
|
/// <returns></returns>
|
public AlipayFundExpandindirectImageUploadResponse FundExpandindirectImageUpload(AlipayFundExpandindirectImageUploadRequest request)
|
{
|
logger.LogInformation("正在执行资金二级商户KYB代进件文件上传接口");
|
AlipayFundExpandindirectImageUploadResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金二级商户KYB代进件
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="notifyUrl"></param>
|
/// <returns></returns>
|
public AlipayFundExpandindirectCreateResponse FundExpandindirectCreate(AlipayFundExpandindirectCreateModel model, string notifyUrl = null)
|
{
|
logger.LogInformation($"正在执行资金二级商户KYB代进件:{model.ToJson()}");
|
AlipayFundExpandindirectCreateRequest request = new AlipayFundExpandindirectCreateRequest();
|
request.SetBizModel(model);
|
if (notifyUrl.IsNotNull())
|
{
|
notifyUrl = $"{options.Value.NotifyUrl}{notifyUrl}";
|
request.SetNotifyUrl(notifyUrl);
|
}
|
AlipayFundExpandindirectCreateResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金二级商户KYB代进件单查询接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public AlipayFundExpandindirectOrderQueryResponse FundExpandindirectOrderQuery(AlipayFundExpandindirectOrderQueryModel model)
|
{
|
logger.LogInformation($"正在执行资金二级商户KYB代进件单查询接口:{model.ToJson()}");
|
AlipayFundExpandindirectOrderQueryRequest request = new AlipayFundExpandindirectOrderQueryRequest();
|
request.SetBizModel(model);
|
AlipayFundExpandindirectOrderQueryResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
|
/// <summary>
|
/// 资金二级商户KYB代进件单取消接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public AlipayFundExpandindirectOrderCancelResponse FundExpandindirectOrderCancel(AlipayFundExpandindirectOrderCancelModel model)
|
{
|
logger.LogInformation($"正在执行资金二级商户KYB代进件单取消接口:{model.ToJson()}");
|
AlipayFundExpandindirectOrderCancelRequest request = new AlipayFundExpandindirectOrderCancelRequest();
|
request.SetBizModel(model);
|
AlipayFundExpandindirectOrderCancelResponse response = alipayClient.CertificateExecute(request);
|
logger.LogInformation($"结果:{response.ToJson()}");
|
return response;
|
}
|
}
|
}
|