Browse Source

Close #41: Support the new payment creation design

pull/49/head v0.2.2
gdlcf88 6 years ago
parent
commit
55441ef2cd
  1. 2
      integration/EasyAbp.EShop/common.props
  2. 2
      modules/EasyAbp.EShop.Baskets/common.props
  3. 2
      modules/EasyAbp.EShop.Orders/common.props
  4. 2
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderDto.cs
  5. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj
  6. 6
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentChecker.cs
  7. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCompletedEventHandler.cs
  8. 5
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCreatedEventHandler.cs
  9. 13
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentInvalidException.cs
  10. 2
      modules/EasyAbp.EShop.Payments/common.props
  11. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Authorization/PaymentsPermissionDefinitionProvider.cs
  12. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Authorization/PaymentsPermissions.cs
  13. 33
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/CreatePaymentDto.cs
  14. 3
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/IPaymentAppService.cs
  15. 13
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/OrderPaymentAlreadyExistsException.cs
  16. 12
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp/EShop/Payments/Payments/MultiStorePaymentNotSupportedException.cs
  17. 62
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp/EShop/Payments/Payments/PaymentAppService.cs
  18. 7
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/PaymentsConsts.cs
  19. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj
  20. 7
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/IPaymentSynchronizer.cs
  21. 32
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/PaymentSynchronizer.cs
  22. 2
      modules/EasyAbp.EShop.Products/common.props
  23. 2
      modules/EasyAbp.EShop.Stores/common.props
  24. 4
      samples/EShopSample/aspnet-core/src/EShopSample.Application.Contracts/EShopSample.Application.Contracts.csproj
  25. 4
      samples/EShopSample/aspnet-core/src/EShopSample.Application/EShopSample.Application.csproj
  26. 4
      samples/EShopSample/aspnet-core/src/EShopSample.Domain.Shared/EShopSample.Domain.Shared.csproj
  27. 4
      samples/EShopSample/aspnet-core/src/EShopSample.Domain/EShopSample.Domain.csproj
  28. 4
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore/EShopSample.EntityFrameworkCore.csproj
  29. 4
      samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj
  30. 4
      samples/EShopSample/aspnet-core/src/EShopSample.HttpApi/EShopSample.HttpApi.csproj
  31. 4
      samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj

2
integration/EasyAbp.EShop/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Baskets/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Orders/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderDto.cs

@ -26,6 +26,8 @@ namespace EasyAbp.EShop.Orders.Orders.Dtos
public string StaffRemark { get; set; }
public Guid? PaymentId { get; set; }
public DateTime? PaidTime { get; set; }
public DateTime? CompletionTime { get; set; }

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj

@ -8,9 +8,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.3.2" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="2.8.0" />
<ProjectReference Include="..\..\..\EasyAbp.EShop.Payments\src\EasyAbp.EShop.Payments.Domain.Shared\EasyAbp.EShop.Payments.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\EasyAbp.EShop.Products\src\EasyAbp.EShop.Products.Domain.Shared\EasyAbp.EShop.Products.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\EasyAbp.EShop.Stores\src\EasyAbp.EShop.Stores.Domain.Shared\EasyAbp.EShop.Stores.Domain.Shared.csproj" />
<ProjectReference Include="..\EasyAbp.EShop.Orders.Domain.Shared\EasyAbp.EShop.Orders.Domain.Shared.csproj" />

6
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentChecker.cs

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using EasyAbp.PaymentService.Payments;
using Volo.Abp.Data;
@ -17,8 +18,9 @@ namespace EasyAbp.EShop.Orders.Orders
protected virtual Task<bool> IsStoreIdCorrectAsync(Order order, PaymentEto payment)
{
return Task.FromResult(Guid.TryParse(payment.GetProperty<string>("StoreId"), out var paymentStoreId) &&
order.StoreId == paymentStoreId);
return Task.FromResult(
Guid.TryParse(payment.ExtraProperties.GetOrDefault("StoreId")?.ToString(), out var paymentStoreId) &&
order.StoreId == paymentStoreId);
}
protected virtual Task<bool> IsPaymentPriceCorrectAsync(Order order, PaymentItemEto paymentItem)

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCompletedEventHandler.cs

@ -1,5 +1,6 @@
using System.Linq;
using System.Threading.Tasks;
using EasyAbp.EShop.Payments;
using EasyAbp.PaymentService.Payments;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed;
@ -38,7 +39,7 @@ namespace EasyAbp.EShop.Orders.Orders
using var currentTenant = _currentTenant.Change(eventData.Entity.TenantId);
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder"))
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == PaymentsConsts.PaymentItemType))
{
var order = await _orderRepository.FindAsync(item.ItemKey);

5
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCreatedEventHandler.cs

@ -1,5 +1,6 @@
using System.Linq;
using System.Threading.Tasks;
using EasyAbp.EShop.Payments;
using EasyAbp.PaymentService.Payments;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed;
@ -29,14 +30,14 @@ namespace EasyAbp.EShop.Orders.Orders
{
using var currentTenant = _currentTenant.Change(eventData.Entity.TenantId);
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder"))
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == PaymentsConsts.PaymentItemType))
{
var order = await _orderRepository.FindAsync(item.ItemKey);
if (order == null || order.PaymentId.HasValue ||
!await _orderPaymentChecker.IsValidPaymentAsync(order, eventData.Entity, item))
{
continue;
throw new OrderPaymentInvalidException(eventData.Entity.Id, item.ItemKey);
}
order.SetPaymentId(eventData.Entity.Id);

13
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentInvalidException.cs

@ -0,0 +1,13 @@
using System;
using Volo.Abp;
namespace EasyAbp.EShop.Orders.Orders
{
public class OrderPaymentInvalidException : BusinessException
{
public OrderPaymentInvalidException(Guid paymentId, Guid orderId)
: base(message: $"The payment {paymentId} has invalid configurations for the order {orderId}.")
{
}
}
}

2
modules/EasyAbp.EShop.Payments/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Authorization/PaymentsPermissionDefinitionProvider.cs

@ -13,10 +13,12 @@ namespace EasyAbp.EShop.Payments.Authorization
var paymentPermission = moduleGroup.AddPermission(PaymentsPermissions.Payments.Default, L("Permission:Payments"));
paymentPermission.AddChild(PaymentsPermissions.Payments.Manage, L("Permission:Manage"));
paymentPermission.AddChild(PaymentsPermissions.Payments.CrossStore, L("Permission:CrossStore"));
paymentPermission.AddChild(PaymentsPermissions.Payments.Create, L("Permission:Create"));
var refundPermission = moduleGroup.AddPermission(PaymentsPermissions.Refunds.Default, L("Permission:Refunds"));
refundPermission.AddChild(PaymentsPermissions.Refunds.Manage, L("Permission:Manage"));
refundPermission.AddChild(PaymentsPermissions.Refunds.CrossStore, L("Permission:CrossStore"));
refundPermission.AddChild(PaymentsPermissions.Refunds.Create, L("Permission:Create"));
}
private static LocalizableString L(string name)

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Authorization/PaymentsPermissions.cs

@ -16,6 +16,7 @@ namespace EasyAbp.EShop.Payments.Authorization
public const string Default = GroupName + ".Payments";
public const string Manage = Default + ".Manage";
public const string CrossStore = Default + ".CrossStore";
public const string Create = Default + ".Create";
}
@ -24,6 +25,7 @@ namespace EasyAbp.EShop.Payments.Authorization
public const string Default = GroupName + ".Refunds";
public const string Manage = Default + ".Manage";
public const string CrossStore = Default + ".CrossStore";
public const string Create = Default + ".Create";
}
}

33
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/CreatePaymentDto.cs

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace EasyAbp.EShop.Payments.Payments.Dtos
{
public class CreatePaymentDto : IValidatableObject
{
public string PaymentMethod { get; set; }
public List<Guid> OrderIds { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (OrderIds.Count == 0)
{
yield return new ValidationResult(
"OrderIds is empty.",
new[] {"OrderIds"}
);
}
if (OrderIds.Distinct().Count() != OrderIds.Count)
{
yield return new ValidationResult(
"OrderIds should be distinct.",
new[] {"OrderIds"}
);
}
}
}
}

3
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/IPaymentAppService.cs

@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using EasyAbp.EShop.Payments.Payments.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
@ -13,6 +14,6 @@ namespace EasyAbp.EShop.Payments.Payments
object,
object>
{
Task CreateAsync(CreatePaymentDto input);
}
}

13
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/OrderPaymentAlreadyExistsException.cs

@ -0,0 +1,13 @@
using System;
using Volo.Abp;
namespace EasyAbp.EShop.Payments.Payments
{
public class OrderPaymentAlreadyExistsException : BusinessException
{
public OrderPaymentAlreadyExistsException(Guid orderId)
: base(message: $"The order {orderId}'s payment is already exists.")
{
}
}
}

12
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp/EShop/Payments/Payments/MultiStorePaymentNotSupportedException.cs

@ -0,0 +1,12 @@
using Volo.Abp;
namespace EasyAbp.EShop.Payments.Payments
{
public class MultiStorePaymentNotSupportedException : BusinessException
{
public MultiStorePaymentNotSupportedException() : base(message: $"Should create payments for each store.")
{
}
}
}

62
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp/EShop/Payments/Payments/PaymentAppService.cs

@ -1,13 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using EasyAbp.EShop.Orders.Orders;
using EasyAbp.EShop.Orders.Orders.Dtos;
using EasyAbp.EShop.Payments.Authorization;
using EasyAbp.EShop.Payments.Payments;
using EasyAbp.EShop.Payments.Payments.Dtos;
using EasyAbp.PaymentService.Payments;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Users;
namespace EasyAbp.EShop.Payments.Payments
@ -19,10 +24,17 @@ namespace EasyAbp.EShop.Payments.Payments
protected override string GetPolicyName { get; set; } = PaymentsPermissions.Payments.Default;
protected override string GetListPolicyName { get; set; } = PaymentsPermissions.Payments.Default;
private readonly IDistributedEventBus _distributedEventBus;
private readonly IOrderAppService _orderAppService;
private readonly IPaymentRepository _repository;
public PaymentAppService(IPaymentRepository repository) : base(repository)
public PaymentAppService(
IDistributedEventBus distributedEventBus,
IOrderAppService orderAppService,
IPaymentRepository repository) : base(repository)
{
_distributedEventBus = distributedEventBus;
_orderAppService = orderAppService;
_repository = repository;
}
@ -76,6 +88,54 @@ namespace EasyAbp.EShop.Payments.Payments
{
throw new NotSupportedException();
}
[Authorize(PaymentsPermissions.Payments.Create)]
public async Task CreateAsync(CreatePaymentDto input)
{
var orders = new List<OrderDto>();
foreach (var orderId in input.OrderIds)
{
var order = await _orderAppService.GetAsync(orderId);
orders.Add(order);
if (order.PaymentId.HasValue || order.PaidTime.HasValue)
{
throw new OrderPaymentAlreadyExistsException(orderId);
}
}
if (orders.Select(order => order.Currency).Distinct().Count() != 1)
{
throw new MultiCurrencyNotSupportedException();
}
if (orders.Select(order => order.StoreId).Distinct().Count() != 1)
{
throw new MultiStorePaymentNotSupportedException();
}
// Todo: should avoid duplicate creations.
var extraProperties = new Dictionary<string, object> {{"StoreId", orders.First().StoreId}};
await _distributedEventBus.PublishAsync(new CreatePaymentEto
{
TenantId = CurrentTenant.Id,
UserId = CurrentUser.GetId(),
PaymentMethod = input.PaymentMethod,
Currency = orders.First().Currency,
ExtraProperties = extraProperties,
PaymentItems = orders.Select(order => new CreatePaymentItemEto
{
ItemType = PaymentsConsts.PaymentItemType,
ItemKey = order.Id,
Currency = order.Currency,
OriginalPaymentAmount = order.TotalPrice
}).ToList()
});
}
[RemoteService(false)]
public override Task<PaymentDto> UpdateAsync(Guid id, object input)

7
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/PaymentsConsts.cs

@ -0,0 +1,7 @@
namespace EasyAbp.EShop.Payments
{
public static class PaymentsConsts
{
public const string PaymentItemType = "EasyAbpEShopOrder";
}
}

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.3.2" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="2.8.0" />
<ProjectReference Include="..\..\..\EasyAbp.EShop.Stores\src\EasyAbp.EShop.Stores.Domain.Shared\EasyAbp.EShop.Stores.Domain.Shared.csproj" />

7
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/IPaymentSynchronizer.cs

@ -0,0 +1,7 @@
namespace EasyAbp.EShop.Payments.Payments
{
public interface IPaymentSynchronizer
{
}
}

32
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/PaymentSynchronizer.cs

@ -12,6 +12,8 @@ namespace EasyAbp.EShop.Payments.Payments
{
public class PaymentSynchronizer :
IDistributedEventHandler<EntityUpdatedEto<PaymentEto>>,
IDistributedEventHandler<EntityDeletedEto<PaymentEto>>,
IPaymentSynchronizer,
ITransientDependency
{
private readonly IObjectMapper _objectMapper;
@ -26,27 +28,39 @@ namespace EasyAbp.EShop.Payments.Payments
}
[UnitOfWork(true)]
public async Task HandleEventAsync(EntityUpdatedEto<PaymentEto> eventData)
public virtual async Task HandleEventAsync(EntityUpdatedEto<PaymentEto> eventData)
{
var payment = await _paymentRepository.FindAsync(eventData.Entity.Id);
if (payment == null)
{
payment = _objectMapper.Map<PaymentEto, Payment>(eventData.Entity);
if (Guid.TryParse(eventData.Entity.GetProperty<string>("StoreId"), out var storeId))
{
payment.SetStoreId(storeId);
}
await _paymentRepository.InsertAsync(payment, true);
}
else
{
_objectMapper.Map(eventData.Entity, payment);
await _paymentRepository.UpdateAsync(payment, true);
}
if (Guid.TryParse(eventData.Entity.GetProperty<string>("StoreId"), out var storeId))
{
payment.SetStoreId(storeId);
}
await _paymentRepository.UpdateAsync(payment, true);
}
public virtual async Task HandleEventAsync(EntityDeletedEto<PaymentEto> eventData)
{
var payment = await _paymentRepository.FindAsync(eventData.Entity.Id);
if (payment == null)
{
return;
}
await _paymentRepository.DeleteAsync(payment, true);
}
}
}

2
modules/EasyAbp.EShop.Products/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Stores/common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.2.1</Version>
<Version>0.2.2</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

4
samples/EShopSample/aspnet-core/src/EShopSample.Application.Contracts/EShopSample.Application.Contracts.csproj

@ -13,8 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Application.Contracts" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application.Contracts" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Application.Contracts" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application.Contracts" Version="0.3.2" />
<PackageReference Include="Volo.Abp.ObjectExtending" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.Application/EShopSample.Application.csproj

@ -14,8 +14,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Application" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Application" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application" Version="0.3.2" />
<PackageReference Include="Volo.Abp.Account.Application" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="2.8.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.Domain.Shared/EShopSample.Domain.Shared.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain.Shared" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain.Shared" Version="0.3.2" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="2.8.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="2.8.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.Domain/EShopSample.Domain.csproj

@ -13,8 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Domain" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain" Version="0.3.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="2.8.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore/EShopSample.EntityFrameworkCore.csproj

@ -10,8 +10,8 @@
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\integration\EasyAbp.EShop\src\EasyAbp.EShop.EntityFrameworkCore\EasyAbp.EShop.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\EShopSample.Domain\EShopSample.Domain.csproj" />
<PackageReference Include="EasyAbp.PaymentService.EntityFrameworkCore" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.EntityFrameworkCore" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.EntityFrameworkCore" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.EntityFrameworkCore" Version="0.3.2" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="2.8.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="2.8.0" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj

@ -13,8 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.HttpApi.Client" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi.Client" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.HttpApi.Client" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi.Client" Version="0.3.2" />
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="2.8.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.HttpApi/EShopSample.HttpApi.csproj

@ -13,8 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.HttpApi" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.HttpApi" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi" Version="0.3.2" />
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="2.8.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="2.8.0" />

4
samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj

@ -45,8 +45,8 @@
<ProjectReference Include="..\EShopSample.Application\EShopSample.Application.csproj" />
<ProjectReference Include="..\EShopSample.HttpApi\EShopSample.HttpApi.csproj" />
<ProjectReference Include="..\EShopSample.EntityFrameworkCore.DbMigrations\EShopSample.EntityFrameworkCore.DbMigrations.csproj" />
<PackageReference Include="EasyAbp.PaymentService.Web" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Web" Version="0.2.1" />
<PackageReference Include="EasyAbp.PaymentService.Web" Version="0.3.2" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Web" Version="0.3.2" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="2.8.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="2.8.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="2.8.0" />

Loading…
Cancel
Save