{"id":25000402,"url":"https://github.com/tomasideveloping/netangularstripe","last_synced_at":"2026-02-27T10:12:45.053Z","repository":{"id":225107856,"uuid":"763447207","full_name":"TomasiDeveloping/NetAngularStripe","owner":"TomasiDeveloping","description":"Demo app showcasing Stripe subscription management with .NET backend and Angular frontend.","archived":false,"fork":false,"pushed_at":"2026-02-17T10:04:31.000Z","size":2494,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-17T15:31:13.050Z","etag":null,"topics":["angular","demo-app","net","stripe","subscription-management"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TomasiDeveloping.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-26T10:08:04.000Z","updated_at":"2026-02-17T10:04:32.000Z","dependencies_parsed_at":"2024-03-17T09:31:21.562Z","dependency_job_id":"389e5e17-c566-4c77-9791-fe9f0fbc3204","html_url":"https://github.com/TomasiDeveloping/NetAngularStripe","commit_stats":null,"previous_names":["tomasideveloping/netangularstripe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TomasiDeveloping/NetAngularStripe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasiDeveloping%2FNetAngularStripe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasiDeveloping%2FNetAngularStripe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasiDeveloping%2FNetAngularStripe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasiDeveloping%2FNetAngularStripe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomasiDeveloping","download_url":"https://codeload.github.com/TomasiDeveloping/NetAngularStripe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasiDeveloping%2FNetAngularStripe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29890777,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","demo-app","net","stripe","subscription-management"],"created_at":"2025-02-04T19:34:32.697Z","updated_at":"2026-02-27T10:12:45.037Z","avatar_url":"https://github.com/TomasiDeveloping.png","language":"C#","readme":"\u003cp align=\"left\"\u003e\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/angularjs/angularjs-original.svg\" width=\"45\" height=\"45\"/\u003e\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/csharp/csharp-original.svg\" width=\"45\" height=\"45\"/\u003e\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/dotnetcore/dotnetcore-original.svg\" width=\"45\" height=\"45\"/\u003e\n\u003cimg src=\"https://www.svgrepo.com/show/331592/stripe-v2.svg\" width=\"45\" height=\"45\"/\u003e\n\n\n\n# Stripe Subscription Demo App\n\nThis is a small demo application demonstrating how to offer subscriptions via Stripe and allow customers to subscribe to them.\n\n## Features\n\n- Display available subscription plans\n- Select and pay for a subscription using Stripe\n\n## Technology Stack\n\n- **Backend**: .NET 8\n- **Frontend**: Angular 17\n\n## Installation\n\n### Backend\n\n1. Clone the repository: `git clone https://github.com/TomasiDeveloping/NetAngularStripe.git`\n2. Navigate to the backend directory: `cd NetAngularStripe`\n3. Install dependencies: `dotnet restore`\n4. Configure your Stripe API keys in the `appsettings.json` file\n5. Start the server: `dotnet run`\n\n### Frontend\n\n1. Navigate to the frontend directory: `cd Ui`\n2. Install dependencies: `npm install`\n3. Start the application: `ng serve`\n\n## Configuration\n\nTo use this app with your own Stripe integration, you need to customize the Stripe API keys and other configurations. Follow the instructions in the respective configuration files (`appsettings.json` for the backend.\n\n## Contribution\n\nThis demo application is open to contributions. If you find an issue or would like to propose an improvement, please open an issue or submit a pull request.\n\n## Subscription Process Guide\n\n1. **Starting the Application**:\n   - Ensure both the backend and frontend are up and running as per the previous instructions.\n\n2. **Displaying Available Subscriptions**:\n   - Upon application startup, a company and three subscriptions are automatically created.\n   - If the company lacks a StripeCustomerId, the three subscriptions are displayed in the frontend.\n\n3. **Selecting a Subscription**:\n   - Choose the desired subscription by clicking on the respective button.\n\n4. **Initiating Payment**:\n   - Upon selecting the subscription, the PriceId is sent to the backend.\n   - The backend creates a session ID for payment via Stripe and stores it along with the license ID and customer ID in the database.\n   - Success and cancel URLs are also sent to the backend, containing the corresponding session ID as a parameter.\n\n5. **Redirecting to Payment Page**:\n   - The frontend receives the session ID and Stripe public key from the backend.\n   - Using this information, the payment page is opened via the Stripe.js package, redirecting the user to enter payment details.\n\n6. **Payment Confirmation**:\n   - Upon successful payment, Stripe redirects the user back to the backend according to the success URL.\n   - The backend retrieves the corresponding session ID from the database and updates the entry with the received StripeCustomerId.\n   - The company receives the license ID of the paid subscription and the StripeCustomerId.\n\n7. **Payment Cancellation**:\n   - If the payment is canceled, Stripe redirects the user back to the backend according to the cancel URL.\n   - The backend retrieves the corresponding session ID from the database and updates the entry to mark the payment without creating a license.\n\n8. **Managing the Subscription**:\n   - Upon successful payment and receipt of the StripeCustomerId, a button to manage the subscription is displayed to the user in the frontend.\n   - Clicking this button sends the StripeCustomerId to the backend from the frontend.\n   - The backend generates a URL for the Stripe customer portal, which is sent to the frontend.\n   - The frontend redirects the user to the provided URL, allowing them to manage their subscription.\n\n9. **Webhook for Subscription Changes**:\n   - Subscription changes are captured via a webhook to appropriately update the database.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomasideveloping%2Fnetangularstripe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomasideveloping%2Fnetangularstripe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomasideveloping%2Fnetangularstripe/lists"}