การเชื่อมต่อระบบชำระเงิน
ถ้าคุณอยากได้รับเงิน เส้นทางมาตรฐานสำหรับนักสร้างแอปคนเดียวคือ Stripe (หรือ Lemon Squeezy / Paddle ถ้าคุณอยากให้พวกเขาจัดการภาษีขายให้ — เพราะในฐานะ พวกเขาหักส่วนแบ่งมากกว่า แต่ทำให้ปัญหาปวดหัวเรื่องภาษีหายไป) กลไกเหล่านี้ทำซ้ำ ๆ กันและมีเอกสารอธิบายไว้ดี ทำให้เหมาะแก่การมอบหมายให้ AI ทำ ส่วนประกอบที่คุณต้องมี:
- โฟลว์ checkout — Stripe Checkout เป็นวิธีที่เร็วที่สุด มันมอบหน้าชำระเงินที่โฮสต์ไว้ให้คุณ ทำให้คุณไม่ต้องแตะข้อมูลบัตรดิบเลย
- ลองนึกภาพเว็บฮุคเหมือนบริษัทรับชำระเงินโทรบอกแอปของคุณทันทีที่การขายสำเร็จ แทนที่แอปของคุณจะต้องคอยถามซ้ำ ๆ ว่า "ผ่านหรือยัง" เว็บฮุค () ก็คือสิ่งนั้นเป๊ะ ๆ: เอนด์พอยต์ ( บนเซิร์ฟเวอร์ของคุณ) ที่ผู้ให้บริการชำระเงินเรียกใช้เพื่อให้แอปของคุณรู้ว่าการชำระเงินสำเร็จจริง นี่คือส่วนที่ผู้เริ่มต้นมักข้ามไปแล้วก็มาสงสัยทีหลังว่าทำไมออเดอร์ไม่เคยถูกส่งมอบ การ redirect กลับมายังเว็บไซต์ของคุณอาจถูกปิด ถูกบล็อก หรือถูกปลอมได้ ส่วนเว็บฮุคคือแหล่งความจริงระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์ อย่าเชื่อ redirect เพียงอย่างเดียว จงเชื่อเว็บฮุค
- วิธี เก็บสิทธิ์การใช้งาน (entitlements) — บันทึกว่าผู้ใช้จ่ายเงินแล้วในฐานข้อมูลของคุณ เพื่อให้การรีเฟรชหรือการเข้าจากอุปกรณ์ใหม่ยังคงเห็นสิ่งที่พวกเขาซื้อไว้
ประเด็นสำคัญคือ ลูกศรเส้นไหน ที่คุณควรเชื่อ การ redirect ของผู้ใช้กลับมายังเว็บไซต์คุณอาจสูญหายหรือถูกปลอมได้ ส่วนเว็บฮุคคือเส้นทางระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์ที่ปลดล็อกสินค้าจริง ๆ:
┌──────┐ 1. click Buy ┌───────────┐
│ USER │────────────────▶│ YOUR APP │
└──────┘ └─────┬─────┘
▲ │ 2. create checkout session
│ ▼
│ ┌─────────────┐
│ 3. pay on hosted │ STRIPE │
└───────────────────▶│ Checkout │
(card details) └──────┬──────┘
│
┌─────────────────────┴─────────────────────┐
│ 4a. redirect back 4b. WEBHOOK call │
│ (can be lost/faked) (server→server,│
▼ signed, trusted)▼
┌──────────────┐ ┌────────────────────┐
│ thank-you │ ✗ do NOT unlock here │ YOUR APP /webhook │
│ page (UI only)│ │ verify signature → │
└──────────────┘ │ mark user PAID ✓ │
└────────────────────┘
ขอให้ AI สร้างโครงสำหรับทั้งสามส่วนนี้ให้ และอธิบายการตรวจสอบลายเซ็นของเว็บฮุค (webhook signature verification) เพราะนี่คือขั้นตอนเดียวที่อ่อนไหวต่อความปลอดภัย — ถ้าไม่มีการตรวจสอบนี้ ใครก็ตามที่หา URL เว็บฮุคของคุณเจอก็สามารถปลอมเหตุการณ์ "ชำระเงินสำเร็จ" และปลดล็อกสินค้าของคุณได้ฟรี ๆ ทดสอบทุกอย่างในโหมดทดสอบของ Stripe ด้วยหมายเลขบัตรทดสอบของพวกเขา (4242 4242 4242 4242 คือหมายเลขที่โด่งดัง) ก่อนที่จะเปลี่ยนไปใช้ key จริง และใช้ Stripe เพื่อส่งต่อเหตุการณ์เว็บฮุคมายังเครื่องของคุณ เพื่อที่คุณจะได้เห็นมันทำงานจริง อย่าข้ามการซ้อมในโหมดทดสอบ เงินจริงเงินแรกที่ไหลผ่านแอปของคุณควรเป็นธุรกรรมที่คุณเคยเห็นมันทำงานสำเร็จมาแล้วนับสิบครั้ง