Hi, yes, its the there where I get the 404:
The relevant logs are:
[21:11:31 INF] Executed page /SubscriptionTest in 6443.2351ms [21:11:31 INF] Executed endpoint '/SubscriptionTest' [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 INF] Request finished HTTP/2 POST https://localhost:44353/SubscriptionTest - 307 0 null 6533.3188ms [21:11:31 INF] Request starting HTTP/2 POST https://localhost:44353/Payment/GatewaySelection?paymentRequestId=2694b528-c9ce-05fa-518a-3a1483606310 - application/x-www-form-urlencoded 272 [21:11:31 INF] CORS policy execution successful. [21:11:31 DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. [21:11:31 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. [21:11:31 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. [21:11:31 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by Volo.Abp.Account.Web.Pages.Account.OpenIddictImpersonateInferEndpointType. [21:11:31 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. [21:11:31 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. [21:11:31 DBG] Get dynamic claims cache for user: 2d9ba82e-7276-3613-77c1-3a14824bbf73 [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 DBG] Added 0 entity changes to the current audit log [21:11:31 INF] Request finished HTTP/2 POST https://localhost:44353/Payment/GatewaySelection?paymentRequestId=2694b528-c9ce-05fa-518a-3a1483606310 - 404 0 null 8.9468ms [21:11:31 INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: POST https://localhost:44353/Payment/GatewaySelection, Response status code: 404 [21:11:32 DBG] Executing HealthCheck collector HostedService.
I have created a repo for the test project on github (ABPTest) and added you as a collaborator.
Hi,
We used ABP Suite to boilerplate the solution (Including the SaaS module) and implemented all our functions. I then added the Payment module using abp suite (all packages - nuget and npm on 8.1.5).
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.Application" Version="8.1.5" />
<PackageReference Include="Volo.Chat.Application" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Admin.Application" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Application" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Host.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Admin.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.Application" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Chat.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Admin.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Host.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Admin.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.Application.Contracts" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Autofac" Version="8.1.5" />
=
<PackageReference Include="Volo.Abp.Emailing" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Caching" Version="8.1.5" />
<PackageReference Include="Volo.Abp.MailKit" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.OpenIddict" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BlobStoring.Database.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplating.Scriban" Version="8.1.5" />
<PackageReference Include="Volo.Chat.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Iyzico.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.PayPal.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Payu.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Stripe.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Payment.TwoCheckout.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Commercial.SuiteTemplates" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.Domain" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BlobStoring.Database.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Chat.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.Domain.Shared" Version="8.1.5" />
<PackageReference Include="Volo.Abp.GlobalFeatures" Version="8.1.5" />
<PackageReference Include="Volo.Chat.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Payment.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.BlobStoring.Database.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Saas.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.EntityFrameworkCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Imaging.AspNetCore" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Admin.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Chat.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Admin.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Payment.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Host.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.HttpApi" Version="8.1.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.SettingManagement.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Chat.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Payment.Admin.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Payment.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Saas.Host.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AuditLogging.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Identity.Pro.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Admin.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.OpenIddict.Pro.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.LanguageManagement.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Gdpr.HttpApi.Client" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Autofac" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.1.5" />
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.Web.OpenIddict" Version="8.1.5" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.Web.Impersonation" Version="8.1.5" />
<PackageReference Include="Volo.Chat.SignalR" Version="8.1.5" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX" Version="3.1.4" />
...
[DependsOn(typeof(AbpPaymentApplicationModule))]
[DependsOn(typeof(AbpPaymentAdminApplicationModule))]
public class GembaCIApplicationModule : AbpModule
...
and
...
public override void ConfigureServices(ServiceConfigurationContext context)
{
...
Configure<AbpSaasPaymentOptions>(options =>
{
options.IsPaymentSupported = true;
});
Configure<StripeOptions>(context.Services.GetConfiguration().GetSection("Payment:Stripe"));
...
}
...
[DependsOn(typeof(AbpPaymentApplicationContractsModule))]
[DependsOn(typeof(AbpPaymentAdminApplicationContractsModule))]
public class GembaCIApplicationContractsModule : AbpModule
{
...
...
[DependsOn(typeof(AbpPaymentDomainModule))]
[DependsOn(typeof(AbpPaymentPayuDomainModule))]
[DependsOn(typeof(AbpPaymentTwoCheckoutDomainModule))]
[DependsOn(typeof(AbpPaymentIyzicoDomainModule))]
[DependsOn(typeof(AbpPaymentPayPalDomainModule))]
[DependsOn(typeof(AbpPaymentStripeDomainModule))]
public class GembaCIDomainModule : AbpModule
{
...
...
[DependsOn(typeof(AbpPaymentDomainSharedModule))]
public class GembaCIDomainSharedModule : AbpModule
{
...
...
protected override void OnModelCreating(ModelBuilder builder)
{
...
builder.ConfigurePayment();
...
}
...
...
[DependsOn(typeof(AbpPaymentEntityFrameworkCoreModule))]
public class GembaCIEntityFrameworkCoreModule : AbpModule
{
...
...
[DependsOn(typeof(AbpPaymentHttpApiModule))]
[DependsOn(typeof(AbpPaymentAdminHttpApiModule))]
public class GembaCIHttpApiModule : AbpModule
{
...
...
[DependsOn(typeof(AbpPaymentHttpApiClientModule))]
[DependsOn(typeof(AbpPaymentAdminHttpApiClientModule))]
public class GembaCIHttpApiClientModule : AbpModule
{
...
...
"Payment": {
"Stripe": {
"PublishableKey": "pk_",
"SecretKey": "sk_",
"PaymentMethodTypes": [ "card" ],
"Currency": "USD"
}
}
...
...
[DependsOn(typeof(AbpPaymentApplicationModule))]
[DependsOn(typeof(AbpPaymentHttpApiModule))]
public class GembaCIHttpApiHostModule : AbpModule
{
...
Test Subscription Page Code Behind:
private IPaymentRequestAppService PaymentRequestAppService { get; }
public SubscriptionModel(IPaymentRequestAppService paymentRequestAppService)
{
PaymentRequestAppService = paymentRequestAppService;
}
public virtual async Task<IActionResult> OnPostAsync()
{
var paymentRequest = await PaymentRequestAppService.CreateAsync(
new PaymentRequestCreateDto()
{
Products =
{
new PaymentRequestProductCreateDto
{
PaymentType = PaymentType.Subscription,
Name = "RCA+,
Code = "NCA_PLUS",
Count = 1,
PlanId = "eaa4f5e2-781b-43e4-a16a-d2f19acd9b20",
}
}
});
return LocalRedirectPreserveMethod("/Payment/GatewaySelection?paymentRequestId=" + paymentRequest.Id);
}
We are trying to implement the Payment (and SaaS) module.
Admin UI in Angular works 100%, but posting to /Payment/GatewaySelection?paymentRequestId= + paymentRequest.Id returns a 404 error.
The payment module was installed using ABP Suite.
I have checked that AbpPaymentApplicationModule is added to MyApplicationModule as a dependency and have added my stripe config to appsettings.json :
"Payment": { "Stripe": { "PublishableKey": "pk_", "SecretKey": "sk_", "PaymentMethodTypes": [ "card" ], "Currency": "USD" } }