~/VibeHandbook
PDF Gratis

Bab 16 · 04

Menyambungkan Pembayaran

Kalau kamu ingin dibayar, jalur standar untuk pembangun solo adalah Stripe (atau Lemon Squeezy / Paddle kalau kamu ingin mereka mengurus pajak penjualan untukmu — sebagai , mereka mengambil potongan lebih besar tapi membuat pusing pajak lenyap). Mekanikanya berulang dan terdokumentasi dengan baik, yang membuatnya ideal untuk didelegasikan. Bagian-bagian yang kamu butuhkan:

  • Alur checkout — Stripe Checkout paling cepat; ia memberimu halaman pembayaran hosted sehingga kamu tidak pernah menyentuh detail kartu mentah.
  • Bayangkan sebuah seperti perusahaan pembayaran menelepon aplikasimu tepat saat sebuah penjualan berhasil (clear), alih-alih aplikasimu harus terus bertanya "sudah berhasil belum?". Sebuah webhook persis itu: sebuah (sebuah di server-mu) yang dipanggil penyedia pembayaran sehingga aplikasimu tahu ketika sebuah pembayaran benar-benar berhasil. Ini bagian yang sering dilewati pemula dan kemudian mereka heran kenapa pesanan tidak pernah terpenuhi. Redirect balik ke situsmu bisa ditutup, diblokir, atau dipalsukan; webhook adalah sumber kebenaran server-ke-server. Jangan pernah percaya redirect saja; percayalah pada webhook.
  • Cara untuk menyimpan hak akses (entitlement) — tandai pengguna sebagai sudah bayar di database-mu, supaya sebuah refresh atau perangkat baru tetap melihat apa yang mereka beli.

Wawasan kuncinya adalah panah mana yang kamu percaya. Redirect pengguna balik ke situsmu bisa hilang atau dipalsukan; webhook adalah jalur server-ke-server yang benar-benar membuka produknya:

 ┌──────┐  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  ✓   │
                                             └────────────────────┘

Minta AI untuk membuat scaffold ketiganya dan menjelaskan verifikasi signature webhook, karena itu satu-satunya langkah yang sensitif keamanan — tanpa itu, siapa pun yang menemukan URL webhook-mu bisa memalsukan sebuah event "payment succeeded" dan membuka produkmu secara gratis. Uji semuanya di test mode Stripe dengan nomor kartu test mereka (4242 4242 4242 4242 yang terkenal) sebelum beralih ke key live, dan pakai Stripe untuk meneruskan event webhook ke komputer lokalmu supaya kamu bisa melihatnya terpicu. Jangan lewatkan gladi resik test-mode ini. Uang sungguhan pertama yang mengalir lewat aplikasimu seharusnya adalah transaksi yang sudah kamu lihat berhasil berpuluh-puluh kali.

Mau versi offline?

Unduh seluruh buku sebagai PDF atau EPUB — gratis.