<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><title>Stripe in C# — Trust is earned, not given</title><link>https://www.bobhuang.com/series/stripe-in-csharp/</link><description>Stripe from the first charge to production: the PaymentIntent lifecycle and 3DS, saved payment methods, hosted Checkout, refunds and disputes, and every webhook case in one endpoint.</description><language>en</language><lastBuildDate>24 Feb 2026 12:00:00 GMT</lastBuildDate><atom:link href="https://www.bobhuang.com/series/stripe-in-csharp/feed.xml" rel="self" type="application/rss+xml"/><item><title>Stripe in C#, part 6: webhooks — every case, one endpoint (signatures, catalog, idempotency, retries)</title><link>https://www.bobhuang.com/blog/796/stripe-dotnet-part6-webhooks-all-cases/</link><guid>https://www.bobhuang.com/blog/796/stripe-dotnet-part6-webhooks-all-cases/</guid><pubDate>24 Feb 2026 12:00:00 GMT</pubDate><description>This is the article the series was built around. Webhooks are how Stripe tells you the things that happen when your code is not in the room: the 3DS challenge…</description></item><item><title>Stripe in C#, part 5: refunds, disputes, and invoices — the money comes back</title><link>https://www.bobhuang.com/blog/795/stripe-dotnet-part5-refunds-disputes-invoices/</link><guid>https://www.bobhuang.com/blog/795/stripe-dotnet-part5-refunds-disputes-invoices/</guid><pubDate>19 Mar 2024 12:00:00 GMT</pubDate><description>Taking money is half the API. The other half is what happens after: refunds, chargebacks, and recurring invoices. These operations are asynchronous by nature…</description></item><item><title>Stripe in C#, part 4: Checkout Sessions — the whole payment page, hosted</title><link>https://www.bobhuang.com/blog/794/stripe-dotnet-part4-checkout-sessions/</link><guid>https://www.bobhuang.com/blog/794/stripe-dotnet-part4-checkout-sessions/</guid><pubDate>11 Oct 2022 12:00:00 GMT</pubDate><description>Sometimes the right integration is no integration: Stripe Checkout is a hosted payment page — card fields, wallet buttons, 3DS handling, localization, and PCI…</description></item><item><title>Stripe in C#, part 3: customers, saved payment methods, and charging while they sleep</title><link>https://www.bobhuang.com/blog/793/stripe-dotnet-part3-customers-saved-cards/</link><guid>https://www.bobhuang.com/blog/793/stripe-dotnet-part3-customers-saved-cards/</guid><pubDate>07 Dec 2021 12:00:00 GMT</pubDate><description>One-off charges were 2020's story. Real commerce means customers who come back: save a card once, then charge it later without the customer present…</description></item><item><title>Stripe in C#, part 2: the PaymentIntent lifecycle — server, client, and 3DS without fear</title><link>https://www.bobhuang.com/blog/792/stripe-dotnet-part2-paymentintent/</link><guid>https://www.bobhuang.com/blog/792/stripe-dotnet-part2-paymentintent/</guid><pubDate>10 Nov 2020 12:00:00 GMT</pubDate><description>The PaymentIntent is a small state machine, and 90% of Stripe integration bugs are misreadings of it. Part 2 walks the full lifecycle with server-side C# and…</description></item><item><title>Stripe in C#, part 1: keys, Stripe.net, and your first charge</title><link>https://www.bobhuang.com/blog/791/stripe-dotnet-part1-first-charge/</link><guid>https://www.bobhuang.com/blog/791/stripe-dotnet-part1-first-charge/</guid><pubDate>20 Aug 2019 12:00:00 GMT</pubDate><description>This series assumes you have never touched Stripe. By the end of part 1 you will have a test-mode charge running from a C# console app, and — more importantly…</description></item></channel></rss>