DEVHAPPY
DEVHAPPY developer product · v1.0.0

Stripe Checkout without the fragile payment logic.

A clean ASP.NET Core starter kit for one-time payments, server-side order management, SQL Server persistence and verified Stripe webhooks.

Built with .NET 10 · ASP.NET Core MVC · EF Core · SQL Server · Stripe.net · xUnit

Stripe test mode — no real payment will be processed.
Sample checkout product selection interface
01 · SERVER-SIDE ORDER

Order created from trusted product data.

Card payment illustration representing Stripe Checkout
02 · STRIPE CHECKOUT

Card payment handled by Stripe.

Payment transaction analytics interface
03 · VERIFIED WEBHOOK

Payment confirmed server-side before Order = Paid.

Built with .NET 10 ASP.NET Core MVC EF Core SQL Server Stripe.net xUnit
Built for real projects

More than a Stripe tutorial.

The starter separates payment infrastructure from your business logic so you can understand it, customize it and build on top of it without letting the browser decide what gets charged.

Product and checkout workflow

Server-side orders

The browser submits only the product identifier. Price and currency are loaded from trusted server-side data.

Payment transaction tracking

Payment tracking

Each Stripe Checkout attempt is linked to a local PaymentTransaction with its own lifecycle and external reference.

Server-side payment data integration and validation

Signed webhooks

Stripe signatures are checked before payment events reach the business confirmation workflow.

Idempotent processing

ProcessedWebhookEvent and a unique provider/event key protect the workflow from duplicate Stripe deliveries.

Amount validation

Amount, currency, session reference and payment status are checked before any local order is marked paid.

Tested payment logic

xUnit tests cover amount conversion, order creation, successful webhook handling and invalid payment scenarios.

Payment architecture

A payment flow you can actually follow.

DEVHAPPY built this starter around a simple principle: your payment provider should confirm a payment, but your own application should keep control of orders, transaction state and business rules.

  • The success page never marks an order as paid.
  • The signed Stripe webhook is the source of truth.
  • Local data stays auditable and independent from the browser.
Payment and data integration architecture
01

Product

Trusted price and currency.

02

Order

Created locally as Pending.

03

Transaction

Tracks the payment attempt.

04

Checkout

Stripe handles card entry.

05

Webhook

Signature and payload verified.

06

Paid

Order and transaction confirmed.

Under the hood

The important part happens after checkout.

Returning to a success URL is not reliable proof of payment. The starter waits for Stripe, validates the event against local data, then updates the order atomically.

01

Customer starts checkout

The server creates the local order and payment transaction first.

02

Stripe handles the card payment

Checkout receives the amount generated from server-side order data.

03

Stripe sends the webhook

checkout.session.completed reaches the signed webhook endpoint.

04

Your application validates and confirms

Signature, metadata, amount, currency and session reference are checked before Order = Paid.

Starter kit v1.0.0

Everything you need to start clean.

A focused source-code starter for developers who want a clear payment foundation before adding subscriptions, coupons, Connect or custom business workflows.

Full source code

ASP.NET Core MVC project designed to be read, changed and extended.

Database layer

EF Core entities, Fluent configurations, migrations and SQL Server persistence.

Stripe Checkout

One-time card payment flow with server-generated amount and metadata.

Webhook pipeline

Signed event verification, local payment validation and idempotent processing.

Automated tests

xUnit tests around the business-critical order, amount and webhook logic.

Developer documentation

Installation, Stripe setup, webhook testing and customization guides.

Live Stripe test flow

See the architecture work end to end.

Open the sample product, create a pending order, continue to Stripe Checkout and let the signed webhook confirm the payment. No real charge is made.

Open live demo
FAQ

Stripe Starter Kit questions, answered clearly.

Quick answers about the architecture, demo and current scope.

What does this Stripe Checkout Starter Kit include?

A complete ASP.NET Core MVC source project with Product, Order and PaymentTransaction models, Stripe Checkout, SQL Server persistence, signed webhook processing, duplicate-event protection, currency conversion logic and automated tests.

How is a successful payment confirmed?

The browser return URL does not confirm payment. The signed Stripe webhook validates the event, local order, transaction, amount, currency and Checkout Session before changing the local state to Paid and Succeeded.

Does the live demo use real payments?

No. The public demo is designed to run with Stripe test credentials. It demonstrates the checkout and webhook workflow without charging a real card.

What is included in version 1.0.0?

The current version focuses on one-time card payments. Subscriptions, Stripe Connect, refund UI, coupons and asynchronous payment methods are intentionally outside this first package.

Who is this starter kit for?

It is intended for ASP.NET Core developers, agencies and SaaS builders who want a readable Stripe foundation they can adapt to their own products and workflows.

Clarity before complexity

A payment integration is easier to evolve when the architecture is clear first.

DEVHAPPY designs and builds connected digital systems, SaaS products, API integrations and useful automation around structured business workflows.