~/VibeHandbook
PDF ฟรี

บท 16 · 04

การเชื่อมต่อระบบชำระเงิน

ถ้าคุณอยากได้รับเงิน เส้นทางมาตรฐานสำหรับนักสร้างแอปคนเดียวคือ 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 เพื่อส่งต่อเหตุการณ์เว็บฮุคมายังเครื่องของคุณ เพื่อที่คุณจะได้เห็นมันทำงานจริง อย่าข้ามการซ้อมในโหมดทดสอบ เงินจริงเงินแรกที่ไหลผ่านแอปของคุณควรเป็นธุรกรรมที่คุณเคยเห็นมันทำงานสำเร็จมาแล้วนับสิบครั้ง

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี