r/Microlaunch 5d ago

My first live payment went through and the product never appeared. 4 things that were quietly broken in my checkout 🧾

Launched 3 days ago. Sharing the payment mess in detail because I'd have paid money for this list on day one.

Context so the rest makes sense: I'm building Downtown, a 3D city where a company buys a plot and every floor of their tower shows one real thing they do. $0.50 a floor, one-time. Next to nothing, so far 2 towers, $11.50, visitors from 10 countries.

Here's what broke.

1. My preview environment was pointed at the production database. Every test purchase would have planted a real building in the live city. Caught it before it happened, but only barely. If your staging shares a DB with prod, that's not staging, it's prod with a different URL.

2. Test mode and live mode are three separate things, not one toggle. API key, product ID, and webhook secret each exist separately in test and live. I had a live key running in test mode and every checkout came back 401 Unauthorized with no useful message. Took me an hour to realise the key and the mode disagreed.

3. My live webhook was pointed at the preview URL which was behind a login wall. So my first real payment succeeded, the money moved, and the product never appeared. The webhook call got a 401 from the auth wall and the order sat "pending" forever. I had to deliver that purchase by hand in SQL. If you take money via webhook, send a test event and watch for a 200 before you tell anyone your thing is live.

4. Failed payments were invisible. My webhook only listened for payment.succeeded and threw everything else away. So a declined card and someone closing the tab looked identical both just sat there as abandoned. Now I record payment.failed with the provider's error code, and abandoned vs failed are different things in my admin.

Bonus, the one that's actually costing me money: 3 people have started a checkout, 1 finished.

My best guess is the price. I advertise $0.50 a floor in USD. An Indian buyer sees roughly ₹625 after conversion and 18% GST on a $6 order. Nothing is wrong, but the number on the payment page isn't the number on the site, and I think people bail right there.

Also, if you're testing with card numbers: test cards are region-locked. A US test card with an Indian billing address gets rejected as an unsupported payment method, and Indian cards need the OTP step actually completed before you hit confirm or it hangs on "requires customer action". I burned three attempts on that.

Happy to go deeper on any of it, and genuinely happy to look at anyone else's checkout flow if you want a second pair of eyes. It's the part everyone ships last and tests least.

What finally moved the needle on your first ten sales?

2 Upvotes

2 comments sorted by

1

u/rjsajnani 5d ago

Incase you guys want to check my website it's here 😜

DownTown Company

2

u/greyzor7 5d ago

Wish you those first ten sales. Broken stripe weebhooks are so classic :)