| | |
| | | AlipayUtils alipayUtils |
| | | ) : |
| | | IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>, |
| | | IRequestHandler<CloseEnterpriseWalletCommand, Guid> |
| | | IRequestHandler<CloseEnterpriseWalletCommand, Guid>, |
| | | IRequestHandler<AlipayTransferCommand, Guid> |
| | | { |
| | | private readonly IRepository<EnterpriseWallet> rep = rep; |
| | | private readonly IRepository<Enterprise> repEnterprise = repEnterprise; |
| | |
| | | var response = alipayUtils.UserAgreementPageSign(model, $"/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify"); |
| | | if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); |
| | | var result = new OpenEnterpriseWalletCommandResult(); |
| | | result.SignUrl = response.Body; |
| | | result.SignUrl = response.Body; |
| | | return result; |
| | | } |
| | | |
| | |
| | | return entity.Id; |
| | | } |
| | | |
| | | public async Task<Guid> Handle(AlipayTransferCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var entity = await rep.AsQueryable() |
| | | .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == EnumEnterpriseWalletAccess.Alipay) |
| | | .FirstOrDefaultAsync(); |
| | | if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业钱包"); |
| | | var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel |
| | | { |
| | | OutBizNo = $"Test{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}", |
| | | TransAmount = "0.01", |
| | | ProductCode = "TRANS_ACCOUNT_NO_PWD", |
| | | PayeeInfo = new Participant |
| | | { |
| | | IdentityType = "BANKCARD_ACCOUNT", |
| | | Identity = "6214180000016351382", |
| | | Name = "孙鹏飞", |
| | | BankcardExtInfo = new BankcardExtInfo |
| | | { |
| | | AccountType = "2", |
| | | InstName = "宁波银行" |
| | | } |
| | | }, |
| | | PayerInfo = new Participant |
| | | { |
| | | IdentityType = "ALIPAY_OPEN_ID", |
| | | Identity = entity.PrincipalOpenId, |
| | | Name = "孙鹏飞" |
| | | }, |
| | | BizScene = "CAE_TRANSFER", |
| | | OrderTitle = "测试代扣", |
| | | Remark = "测试代扣备注" |
| | | }); |
| | | if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); |
| | | return entity.Id; |
| | | } |
| | | |
| | | private async Task SetCode(EnterpriseWallet entity) |
| | | { |
| | | entity.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; |