Phase 8a: Wire up Checkout page to Customer* RPCs

- Checkout.razor.cs: Rewrite ProcessPayment() to use
  CustomerPurchasePackageAsync instead of disabled dead code
  (old TransactionsContract + UserOrderContract flow removed)
- Callback URL now points to /profile/payment-callback
  (reuses existing verify page with CustomerVerifyPackagePurchase)
- Remove unused DI: UserOrderContract, TransactionContract
- Remove unused usings: Transactions, UserOrder, WellKnownTypes
- Profile/Index.razor.cs: Rename basePackage → selectedPackage,
  tempCallbackUrl → callbackUrl (cosmetic)
- Build: 0 errors
This commit is contained in:
masoodafar-web
2026-02-26 03:33:58 +03:30
parent 71f391ac80
commit 0bbc11e82c
2 changed files with 25 additions and 38 deletions
@@ -413,23 +413,22 @@ public partial class Index
try
{
// Get available packages and pick the first (base) one
// Get available packages and pick the first one
var packages = await PackageContract.GetCustomerPackagesAsync(new GetCustomerPackagesRequest());
var basePackage = packages?.Models?.FirstOrDefault();
if (basePackage == null)
var selectedPackage = packages?.Models?.FirstOrDefault();
if (selectedPackage == null)
{
Snackbar.Add("پکیجی برای خرید یافت نشد", Severity.Error);
return;
}
// Call CMS to initiate purchase (UserId from JWT, PackageId explicit)
// First, get orderId — then embed in callback URL
var tempCallbackUrl = $"{Navigation.BaseUri}profile/payment-callback";
var callbackUrl = $"{Navigation.BaseUri}profile/payment-callback";
var response = await PackageContract.CustomerPurchasePackageAsync(new CustomerPurchasePackageRequest
{
PackageId = basePackage.Id,
CallbackUrl = tempCallbackUrl,
PackageId = selectedPackage.Id,
CallbackUrl = callbackUrl,
PurchaseMethod = PurchaseMethodEnum.PurchaseMethodGateway
});