u
This commit is contained in:
@@ -6,6 +6,7 @@ using MudBlazor.Services;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using FrontOffice.BFF.Package.Protobuf.Protos.Package;
|
using FrontOffice.BFF.Package.Protobuf.Protos.Package;
|
||||||
|
using FrontOffice.BFF.Transaction.Protobuf.Protos.Transaction;
|
||||||
using FrontOffice.BFF.User.Protobuf.Protos.User;
|
using FrontOffice.BFF.User.Protobuf.Protos.User;
|
||||||
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
||||||
using FrontOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
|
using FrontOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
using FrontOffice.BFF.Package.Protobuf.Protos.Package;
|
using FrontOffice.BFF.Package.Protobuf.Protos.Package;
|
||||||
|
using FrontOffice.BFF.Transaction.Protobuf.Protos.Transaction;
|
||||||
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
||||||
|
using FrontOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
|
||||||
using FrontOffice.Main.Utilities;
|
using FrontOffice.Main.Utilities;
|
||||||
|
using Google.Protobuf.WellKnownTypes;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using MudBlazor;
|
using MudBlazor;
|
||||||
using Severity = MudBlazor.Severity;
|
using Severity = MudBlazor.Severity;
|
||||||
@@ -11,6 +14,8 @@ public partial class Checkout
|
|||||||
{
|
{
|
||||||
[Inject] private PackageContract.PackageContractClient PackageClient { get; set; } = default!;
|
[Inject] private PackageContract.PackageContractClient PackageClient { get; set; } = default!;
|
||||||
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
|
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
|
||||||
|
[Inject] private UserOrderContract.UserOrderContractClient UserOrderContract { get; set; } = default!;
|
||||||
|
[Inject] private TransactionContract.TransactionContractClient TransactionContract { get; set; } = default!;
|
||||||
|
|
||||||
[Parameter] public long? PackageId { get; set; }
|
[Parameter] public long? PackageId { get; set; }
|
||||||
|
|
||||||
@@ -154,14 +159,35 @@ public partial class Checkout
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// TODO: Implement payment processing with backend
|
// Step 1: Create payment request
|
||||||
// This is a placeholder for payment integration
|
var paymentRequest = new PaymentRequestRequest
|
||||||
await Task.Delay(2000); // Simulate payment processing
|
{
|
||||||
|
Amount = _finalPrice,
|
||||||
|
CallbackUrl = $"{Navigation.BaseUri}checkout/callback",
|
||||||
|
Description = $"خرید پکیج {_selectedPackage.Title}",
|
||||||
|
Currency = CurrencyEnum.Irt,
|
||||||
|
Type = TransactionTypeEnum.Real
|
||||||
|
};
|
||||||
|
|
||||||
Snackbar.Add("پرداخت با موفقیت انجام شد!", Severity.Success);
|
var paymentResponse = await TransactionContract.PaymentRequestAsync(paymentRequest);
|
||||||
|
|
||||||
// Navigate to success page or order details
|
if (string.IsNullOrEmpty(paymentResponse.PaymentGWUrl))
|
||||||
Navigation.NavigateTo("/order/success");
|
{
|
||||||
|
throw new Exception("آدرس درگاه پرداخت دریافت نشد.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2: Create user order
|
||||||
|
var orderRequest = new CreateNewUserOrderRequest
|
||||||
|
{
|
||||||
|
Price = _finalPrice,
|
||||||
|
PackageId = _selectedPackage.Id,
|
||||||
|
PaymentStatus = false // Will be updated after payment verification
|
||||||
|
};
|
||||||
|
|
||||||
|
var orderResponse = await UserOrderContract.CreateNewUserOrderAsync(orderRequest);
|
||||||
|
|
||||||
|
// Step 3: Redirect to payment gateway
|
||||||
|
Navigation.NavigateTo(paymentResponse.PaymentGWUrl);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,14 +150,12 @@ public partial class PackageDetail : IDisposable
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// TODO: Implement purchase logic
|
// Navigate to checkout page with package ID
|
||||||
await Task.Delay(2000); // Simulate API call
|
Navigation.NavigateTo($"{RouteConstants.Checkout.Index}/{_package.Id}");
|
||||||
|
|
||||||
Snackbar.Add("پکیج با موفقیت خریداری شد!", Severity.Success);
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Snackbar.Add($"خطا در خرید پکیج: {ex.Message}", Severity.Error);
|
Snackbar.Add($"خطا در انتقال به صفحه پرداخت: {ex.Message}", Severity.Error);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user