using Azure;
|
using FlexJobApi.Core;
|
using Furion;
|
using Furion.DatabaseAccessor;
|
using Furion.FriendlyException;
|
using MediatR;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.EntityFrameworkCore;
|
using Org.BouncyCastle.Ocsp;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace FlexJobApi.UserServer.Application
|
{
|
/// <summary>
|
/// 支付宝通知回传
|
/// </summary>
|
public class GetAlipayNotifyCommandHandler(
|
IRepository<EnterpriseWallet> rep,
|
IMediator mediator,
|
IHttpContextAccessor httpContextAccessor
|
) :
|
IRequestHandler<GetAlipayNotifyCommand, bool>,
|
IRequestHandler<AlipayUserAgreementPageSignNotifyCommand, bool>,
|
IRequestHandler<AlipayFundTransOrderChangedNotifyCommand, bool>
|
{
|
private readonly IRepository<EnterpriseWallet> rep = rep;
|
private readonly IMediator mediator = mediator;
|
private readonly IHttpContextAccessor httpContextAccessor = httpContextAccessor;
|
|
/// <summary>
|
/// 支付宝通知回传
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public Task<bool> Handle(GetAlipayNotifyCommand request, CancellationToken cancellationToken)
|
{
|
Console.WriteLine("表单数据:" + httpContextAccessor.HttpContext.Request.Form.ToJson());
|
return Task.FromResult(true);
|
}
|
|
/// <summary>
|
/// 支付宝用户授权协议签约通知
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task<bool> Handle(AlipayUserAgreementPageSignNotifyCommand request, CancellationToken cancellationToken)
|
{
|
var entity = await rep.AsQueryable()
|
.Where(it => it.Code == request.external_agreement_no)
|
.FirstOrDefaultAsync();
|
if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业钱包");
|
await mediator.Send(new GetEnterpriseWalletQuery
|
{
|
EnterpriseId = entity.EnterpriseId,
|
Access = EnumEnterpriseWalletAccess.Alipay
|
});
|
return true;
|
}
|
|
/// <summary>
|
/// 资金单据状态变更通知
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public Task<bool> Handle(AlipayFundTransOrderChangedNotifyCommand request, CancellationToken cancellationToken)
|
{
|
Console.WriteLine("表单数据:" + httpContextAccessor.HttpContext.Request.Form.ToJson());
|
return Task.FromResult(true);
|
}
|
}
|
}
|