feat: Update payment processing and callback mechanisms
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m22s

- Refactor ActivateClubMembershipCommandHandler to use UserPackagePurchases instead of UserOrders for package activation.
- Modify PlaceOrderCommandHandler to redirect payment callbacks to the front office.
- Update ChargeDiscountWalletCommandHandler and ChargeMagicWalletCommandHandler to direct payment callbacks to the front office.
- Remove PaymentCallbackController and integrate payment verification directly into DiscountOrderService and UserWalletService.
- Add CustomerVerifyDiscountOrderPayment RPC to DiscountOrderService for verifying discount order payments.
- Implement VerifyMagicCharge and VerifyDiscountCharge methods in UserWalletService for wallet charge verifications.
- Update appsettings.json to use local URLs for development.
- Remove appsettings.Development.json as it is no longer needed.
- Comment out history tracking methods in ClubMembershipCycle and Package classes.
- Update PackageService to automatically activate club membership after successful payment verification.
- Adjust UserService to generate JWT tokens with user details.
This commit is contained in:
masoodafar-web
2026-02-28 03:27:46 +03:30
parent 01073084ab
commit 1e7c17f090
17 changed files with 363 additions and 334 deletions
@@ -7,7 +7,8 @@ namespace CMSMicroservice.Domain.Entities.Club;
/// دوره خرید پکیج — هر بار خرید پکیج ۵۶M یک Cycle جدید ایجاد می‌شود.
/// برای حل مشکل overwrite شدن ClubMembership.ActivatedAt در محاسبه کمیسیون.
/// </summary>
public class ClubMembershipCycle : BaseAuditableEntity, IHasHistory<History.ClubMembershipCycleHistory>
public class ClubMembershipCycle : BaseAuditableEntity
// , IHasHistory<History.ClubMembershipCycleHistory>
{
/// <summary>
/// شناسه کاربر
@@ -83,20 +84,20 @@ public class ClubMembershipCycle : BaseAuditableEntity, IHasHistory<History.Club
/// مقادیر New* از وضعیت فعلی پر می‌شوند.
/// مقادیر Old* توسط HistoryTrackingSaveChangesInterceptor از OriginalValues پر می‌شوند.
/// </summary>
public History.ClubMembershipCycleHistory CreateHistorySnapshot(string action, string? performedBy)
{
return new History.ClubMembershipCycleHistory
{
ClubMembershipCycleId = Id,
UserId = UserId,
CycleNumber = CycleNumber,
NewIsCurrentCycle = IsCurrentCycle,
NewMagicStartedAt = MagicStartedAt,
NewMagicCompletedAt = MagicCompletedAt,
Action = Enum.TryParse<ClubMembershipCycleAction>(action, out var a)
? a
: ClubMembershipCycleAction.ManualFix,
PerformedBy = performedBy
};
}
// public History.ClubMembershipCycleHistory CreateHistorySnapshot(string action, string? performedBy)
// {
// return new History.ClubMembershipCycleHistory
// {
// ClubMembershipCycleId = Id,
// UserId = UserId,
// CycleNumber = CycleNumber,
// NewIsCurrentCycle = IsCurrentCycle,
// NewMagicStartedAt = MagicStartedAt,
// NewMagicCompletedAt = MagicCompletedAt,
// Action = Enum.TryParse<ClubMembershipCycleAction>(action, out var a)
// ? a
// : ClubMembershipCycleAction.ManualFix,
// PerformedBy = performedBy
// };
// }
}
+17 -16
View File
@@ -6,7 +6,8 @@ namespace CMSMicroservice.Domain.Entities;
/// <summary>
/// پکیج — هر پکیج قیمت، ویژگی‌ها و تنظیمات مستقل دارد
/// </summary>
public class Package : BaseAuditableEntity, IHasHistory<History.PackageHistory>
public class Package : BaseAuditableEntity
// , IHasHistory<History.PackageHistory>
{
// === فیلدهای فعلی (حفظ) ===
@@ -83,19 +84,19 @@ public class Package : BaseAuditableEntity, IHasHistory<History.PackageHistory>
/// <summary>
/// ساخت snapshot تاریخچه — Q27 auto-tracking
/// </summary>
public History.PackageHistory CreateHistorySnapshot(string action, string? performedBy)
{
return new History.PackageHistory
{
PackageId = Id,
NewPrice = Price,
NewActivationFee = ActivationFee,
NewMagicMultiplier = MagicWalletMultiplier,
NewMagicMaxDeposit = MagicWalletMaxDeposit,
NewMaxBalancesPerLeg = MaxBalancesPerLeg,
NewIsActive = IsActive,
Action = Enum.TryParse<PackageAction>(action, out var a) ? a : PackageAction.Updated,
PerformedBy = performedBy
};
}
// public History.PackageHistory CreateHistorySnapshot(string action, string? performedBy)
// {
// return new History.PackageHistory
// {
// PackageId = Id,
// NewPrice = Price,
// NewActivationFee = ActivationFee,
// NewMagicMultiplier = MagicWalletMultiplier,
// NewMagicMaxDeposit = MagicWalletMaxDeposit,
// NewMaxBalancesPerLeg = MaxBalancesPerLeg,
// NewIsActive = IsActive,
// Action = Enum.TryParse<PackageAction>(action, out var a) ? a : PackageAction.Updated,
// PerformedBy = performedBy
// };
// }
}