| | |
| | | using Furion; |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Furion.Logging; |
| | | using InitQ.Abstractions; |
| | | using InitQ.Attributes; |
| | | using Mapster; |
| | |
| | | { |
| | | private IEzCoreNetRedisService _ezCoreNetRedisService; |
| | | private IWecharPayServicecs _wecharPayServicecs; |
| | | private IMapper _mapper; |
| | | //public PayServiceMessageQ(IEzCoreNetRedisService ezCoreNetRedisService,IWecharPayServicecs wecharPayServicecs,IMapper mapper) { |
| | | |
| | | // _ezCoreNetRedisService = ezCoreNetRedisService; |
| | | // _wecharPayServicecs = wecharPayServicecs; |
| | | // _mapper = mapper; |
| | | |
| | | //} |
| | | private IMapper _mapper; |
| | | |
| | | /// <summary> |
| | | /// 微信转账队列处理 |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | [Subscribe(InitQMessages.WxTransfer)] |
| | | public async void WxTransfer(string msg) |
| | | { |
| | | _ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>(); |
| | | _wecharPayServicecs = App.GetService<IWecharPayServicecs>(); |
| | | _mapper = App.GetService<IMapper>(); |
| | | |
| | | |
| | | var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>(); |
| | | var TransferOrder = await WeChatTransferOrderwork.AsQueryable().Includes(x => x.TransferDetailList).Where(x=>x.Id==msg.toInt()).FirstAsync(); |
| | | if(TransferOrder == null) |
| | | { |
| | | Log.Error($"WxTransfer微信支付处理 失败,原因是没有找到TransferOrder ,传递Id为{msg}"); |
| | | |
| | | return; |
| | | } |
| | | if(!string.IsNullOrEmpty(TransferOrder.BatchStatus)) |
| | | { |
| | | |
| | | return; |
| | | } |
| | | |
| | | // 发起支付 |
| | | var requit = _mapper.Map<CreateTransferBatchRequest>(TransferOrder); |
| | | requit.AppId = App.Configuration["WechatAPP:AppId"]; |
| | | requit.BatchName = "小镇临时工工资转账"; |
| | | requit.BatchRemark = "川印临时工工资,操过200的多笔支付"; |
| | | |
| | | var ret = await _wecharPayServicecs.Transfer(requit); |
| | | if (ret.IsSuccessful()) |
| | | { |
| | | var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id); |
| | | retdata.BatchId = ret.BatchId; |
| | | retdata.BatchStatus = ret.BatchStatus; |
| | | retdata.UpDataBy = "微信付款请求之后"; |
| | | retdata.UpDataTime = DateTime.Now; |
| | | await WeChatTransferOrderwork.UpdateAsync(retdata); |
| | | } |
| | | else |
| | | { |
| | | var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id); |
| | | retdata.ErrorCode = ret.ErrorCode; |
| | | retdata.ErrorMsg = ret.ErrorMessage; |
| | | retdata.BatchStatus = ret.BatchStatus; |
| | | retdata.UpDataBy = "微信付款请求之后"; |
| | | retdata.UpDataTime = DateTime.Now; |
| | | await WeChatTransferOrderwork.UpdateAsync(retdata); |
| | | Log.Error($"WxTransfer微信支付处理 失败,传递Id为{msg} 错误原因:{retdata.ErrorMsg}"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | [Subscribe(InitQMessages.WxTransferAg)] |
| | | public async void WxTransferAg(string msg) |
| | | { |
| | | _ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>(); |
| | | _wecharPayServicecs = App.GetService<IWecharPayServicecs>(); |
| | | _mapper = App.GetService<IMapper>(); |
| | | |
| | | |
| | | var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>(); |
| | | var TransferOrder = await WeChatTransferOrderwork.AsQueryable().Includes(x => x.TransferDetailList).Where(x => x.Id == msg.toInt()).FirstAsync(); |
| | | if (TransferOrder == null) |
| | | { |
| | | Log.Error($" 再次调用WxTransfer微信支付处理 失败,原因是没有找到TransferOrder ,传递Id为{msg}"); |
| | | |
| | | return; |
| | | } |
| | | if (!string.IsNullOrEmpty(TransferOrder.BatchStatus)) |
| | | { |
| | | |
| | | return; |
| | | } |
| | | |
| | | // 发起支付 |
| | | var requit = _mapper.Map<CreateTransferBatchRequest>(TransferOrder); |
| | | requit.AppId = App.Configuration["WechatAPP:AppId"]; |
| | | requit.BatchName = "小镇临时工工资转账"; |
| | | requit.BatchRemark = "川印临时工工资,操过200的多笔支付"; |
| | | |
| | | var ret = await _wecharPayServicecs.Transfer(requit); |
| | | if (ret.IsSuccessful()) |
| | | { |
| | | var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id); |
| | | retdata.BatchId = ret.BatchId; |
| | | retdata.BatchStatus = ret.BatchStatus; |
| | | retdata.UpDataBy = "再次微信付款请求"; |
| | | retdata.UpDataTime = DateTime.Now; |
| | | await WeChatTransferOrderwork.UpdateAsync(retdata); |
| | | } |
| | | else |
| | | { |
| | | var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id); |
| | | retdata.ErrorCode = ret.ErrorCode; |
| | | retdata.ErrorMsg = ret.ErrorMessage; |
| | | retdata.BatchStatus = ret.BatchStatus; |
| | | retdata.UpDataBy = "再微信付款请求"; |
| | | retdata.UpDataTime = DateTime.Now; |
| | | await WeChatTransferOrderwork.UpdateAsync(retdata); |
| | | Log.Error($"WxTransfer微信支付处理 失败,传递Id为{msg} 错误原因:{retdata.ErrorMsg}"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |