


Bagaimana cara mengintegrasikan gerbang pembayaran seperti Stripe di Laravel?
Pertama, daftar dan dapatkan kunci API di laman web rasmi Stripe, pasangkan pakej sambungan Stripe/Stripe-PHP dan konfigurasikan kunci ke fail .env; 2. Buat PaymentController dan tentukan laluan checkout, membayar, kejayaan dan ralat; 3. Gunakan templat bilah untuk membina borang pembayaran, muatkan elemen input kad kredit melalui stripe.js dan menghasilkan token; 4. Gunakan kelas rahsia dan kelas caj dalam kaedah pembayaran proses untuk membuat pembayaran, kejayaan proses atau tindak balas kegagalan; 5. Pilihan tetapi disyorkan untuk mengkonfigurasi webhook untuk mengendalikan peristiwa tak segerak seperti kejayaan pembayaran dan bayaran balik, dan menetapkan titik akhir yang sepadan dalam latar belakang jalur; Akhirnya, integrasi pembayaran jalur yang selamat dalam aplikasi Laravel berakhir dengan ayat lengkap.
Mengintegrasikan gerbang pembayaran seperti Stripe dalam aplikasi Laravel adalah langsung terima kasih kepada Laravel Cashier dan API yang didokumentasikan dengan baik. Walaupun Laravel Cashier menyediakan sistem pengebilan langganan penuh, anda juga boleh mengintegrasikan jalur secara langsung untuk pembayaran satu kali atau logik tersuai tanpa memerlukan juruwang. Berikut adalah panduan praktikal untuk mengintegrasikan jalur secara manual di Laravel untuk pembayaran mudah.

✅ 1. Sediakan jalur dan pasang kebergantungan
Pertama, daftar di //m.sbmmt.com/link/ab8e9ef52f45f5ccd819e0d96f017447 dan dapatkan kekunci API anda (kunci yang boleh diterbitkan dan kunci rahsia). Anda akan menggunakannya untuk mengesahkan permintaan.
Pasang SDK PHP SDK rasmi melalui komposer:

Komposer memerlukan jalur/jalur-php
Tambahkan kunci jalur anda ke fail .env
anda:
Stripe_key = pk_test_your_publishable_key Stripe_secret = sk_test_your_secret_key
Kemudian, rujuk mereka dalam konfigurasi atau pengawal anda.

✅ 2. Buat laluan dan pengawal
Menjana pengawal untuk mengendalikan logik pembayaran:
PHP Artisan Make: Controller PaymentController
Tentukan Laluan dalam routes/web.php
:
Route :: Get ('/checkout', [PaymentController :: Class, 'showCheckout']); Laluan :: pos ('/bayar', [PaymentController :: Class, 'ProcessPayment']); Route :: Get ('/Success', Function () { kembali "pembayaran berjaya!"; }); Route :: Get ('/error', function () { kembali "Pembayaran gagal!"; });
✅ 3. Bina borang checkout
Di PaymentController
anda, buat kaedah untuk menunjukkan halaman checkout:
// app/http/controllers/paymentcontroller.php Gunakan Illuminate \ http \ request; Gunakan jalur \ jalur; Kelas PaymentController memanjangkan pengawal { Fungsi Awam Showcheckout () { paparan kembali ('checkout'); } }
Buat pandangan bilah ( resources/views/checkout.blade.php
) dengan bentuk dan stripe.js:
<! Doctype html> <html> <head> <tirly> checkout </title> <script src = "https://js.stripe.com/v3/"> </script> </head> <body> <h2> membayar $ 10.00 </h2> <form id = "form-form"> @csrf <div id = "kad-elemen"> <!-stripe.js menyuntik elemen kad-> </div> <butang id = "hantar"> bayar </butang> </form> <script> const stripe = stripe ('{{env ("stripe_key")}}'); elemen const = stripe.elements (); const cardElement = elements.create ('card'); CardElement.Mount ('#card-element'); const form = document.getElementById ('Pembayaran-Borang'); form.AddEventListener ('submit', async (e) => { E.PreventDefault (); const {token, error} = menunggu stripe.CreateToken (CardElement); jika (ralat) { amaran (error.message); } else { // Hantar token ke backend Laravel anda respons const = menunggu ambil ('/bayar', { Kaedah: 'pos', tajuk: { 'Jenis kandungan': 'aplikasi/json', 'X-csrf-token': document.queryselector ('meta [name = "csrf-token"]'). GetAttribute ('content') }, badan: json.stringify ({token: token.id}) }); const result = menunggu tindak balas.json (); jika (result.success) { window.location.href = '/success'; } else { window.location.href = '/error'; } } }); </script> </body> </html>
? Jangan sekali -kali mendedahkan kunci rahsia anda dalam kod frontend. Token dihantar dengan selamat ke backend anda, di mana anda menggunakan kunci rahsia.
✅ 4. Pembayaran proses di pelayan
Kemas kini kaedah processPayment
di pengawal anda:
Gunakan Stripe \ Charge; Gunakan Illuminate \ http \ jsonResponse; Proses Proses Fungsi Awam (permintaan $ permintaan): JsonResponse { \ Stripe \ stripe :: setAPikey (env ('stripe_secret')); Cuba { Caj :: Buat ([[ 'Amaun' => 1000, // $ 10.00 pada sen 'Mata Wang' => 'USD', 'sumber' => $ permintaan-> token, 'Penerangan' => 'Contoh Caj' ]); tindak balas kembali ()-> json (['success' => true]); } tangkapan (\ excepe $ e) { REBATION RESPONSE ()-> JSON (['SUCCESS' => FALSE, 'ERROR' => $ E-> GETMESSAGE ()]); } }
Ini mewujudkan caj menggunakan token yang dihasilkan oleh stripe.js.
✅ 5. Mengendalikan webhooks (pilihan tetapi disyorkan)
Untuk pengeluaran, selalu gunakan webhooks untuk mengesahkan peristiwa asynchronous seperti payment_intent.succeeded
, bayaran balik, atau pembayaran yang gagal.
Sediakan titik akhir web di
routes/web.php
:Laluan :: pos ('/webhook', [PaymentController :: Class, 'HandleWebhook']);
Dalam papan pemuka jalur anda, daftar URL Webhook (misalnya,
https://yourdomain.com/webhook
).Sahkan tandatangan muatan dan mengendalikan peristiwa dengan sewajarnya.
- Gunakan mod ujian dengan kad ujian (misalnya,
4242 4242 4242 4242
) semasa pembangunan. - Simpan metadata caj (contohnya, ID pengguna, ID pesanan) untuk penjejakan.
- Untuk langganan, pertimbangkan untuk menggunakan Laravel Cashier , yang memudahkan pengebilan berulang dengan jalur.
Petua bonus
Pada asasnya, itu sahaja. Anda mempunyai integrasi jalur kerja di Laravel. Tidak terlalu kompleks, tetapi mudah merosakkan jika anda melangkau langkah keselamatan seperti perlindungan CSRF atau pengendalian ralat.
Atas ialah kandungan terperinci Bagaimana cara mengintegrasikan gerbang pembayaran seperti Stripe di Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cache konfigurasi Laravel meningkatkan prestasi dengan menggabungkan semua fail konfigurasi ke dalam fail cache tunggal. Mengaktifkan cache konfigurasi dalam persekitaran pengeluaran dapat mengurangkan operasi I/O dan penguraian fail pada setiap permintaan, dengan itu mempercepat pemuatan konfigurasi; 1. Ia harus diaktifkan apabila permohonan itu digunakan, konfigurasi stabil dan tiada perubahan yang kerap diperlukan; 2. Selepas membolehkan, ubah suai konfigurasi, anda perlu menjalankan semula phpartisanconfig: cache untuk berkuat kuasa; 3. Elakkan menggunakan logik dinamik atau penutupan yang bergantung kepada keadaan runtime dalam fail konfigurasi; 4. Apabila masalah penyelesaian masalah, anda harus terlebih dahulu membersihkan cache, periksa pembolehubah .Env dan cache semula.

Buat jadual rujukan untuk merekodkan hubungan cadangan, termasuk rujukan, rujukan, kod cadangan dan masa penggunaan; 2. Tentukan hubungan dan hubungan hasmany dalam model pengguna untuk menguruskan data cadangan; 3. Menjana kod cadangan yang unik semasa mendaftar (boleh dilaksanakan melalui peristiwa model); 4. Menangkap kod cadangan dengan menanyakan parameter semasa pendaftaran, mewujudkan hubungan cadangan selepas pengesahan dan mencegah penyimpanan diri; 5. mencetuskan mekanisme ganjaran apabila pengguna yang disyorkan melengkapkan tingkah laku yang ditentukan (urutan langganan); 6. Menjana pautan cadangan yang boleh dikongsi, dan gunakan URL tandatangan Laravel untuk meningkatkan keselamatan; 7. Statistik cadangan paparan di papan pemuka, seperti jumlah cadangan dan nombor yang ditukar; Adalah perlu untuk memastikan kekangan pangkalan data, sesi atau kuki berterusan,

Checkphp> = 8.1, komposer, dan webserver; 2.cloneorcreateprojectandruncomposerinstall; 3.copy.env.exampleto.envandrunphpartimbeykey : menjana; 4.SetDataBaseSecredentientsin.envandrunphpartisanmigrate-Seed; 5.StartServerWithPhpartisanserve; 6.OptionallyRunnpmins

Buat Fail Seeder: Gunakan PhPartisanMake: SeederSerseeder untuk menghasilkan kelas Seeder, dan masukkan data melalui kilang model atau pertanyaan pangkalan data dalam kaedah RUN; 2. Panggil penyokong lain dalam DatabaseSeeder: Daftar Usereeder, Postseeder, dan lain-lain. Sehingga melalui $ this-> call () untuk memastikan kebergantungan adalah betul; 3. Jalankan Seeder: Jalankan PhPartisandb: Benih untuk menjalankan semua Seeders berdaftar, atau gunakan PhPartisanMigrate: segar-Seed untuk menetapkan semula dan mengisi semula data; 4

Buat projek Laravel baru dan mulakan perkhidmatan; 2. Menjana model, penghijrahan dan pengawal dan jalankan penghijrahan; 3. Tentukan laluan RESTful dalam Laluan/API.PHP; 4. Melaksanakan kaedah tambahan, penghapusan, pengubahsuaian dan pertanyaan dalam postcontroller dan mengembalikan respons JSON; 5. Gunakan postman atau curl untuk menguji fungsi API; 6. Pilihan menambah pengesahan API melalui Sanctum; Akhirnya dapatkan struktur yang jelas, Laravelrestapi yang lengkap dan boleh diperpanjang, sesuai untuk aplikasi praktikal.

ChooseafeatureFlagstrategySuchasconfig-berasaskan, didorong oleh pangkalan data, orthird-partytoolslikeFlagsmith.2.setupadatabase-drivensystembycreatingamigrationforafeature_flagstableWithname, didayakan, andrulesfreate.3

Corak repositori adalah corak reka bentuk yang digunakan untuk memusnahkan logik perniagaan dari logik akses data. 1. Ia mentakrifkan kaedah akses data melalui antara muka (kontrak); 2. Operasi khusus dilaksanakan oleh kelas repositori; 3. Pengawal menggunakan antara muka melalui suntikan ketergantungan, dan tidak terus menghubungi sumber data; 4. Kelebihan termasuk kod kemas, kesesuaian yang kuat, penyelenggaraan mudah dan kerjasama pasukan; 5. Berkenaan dengan projek sederhana dan besar, projek kecil boleh menggunakan model secara langsung.

Eloquentorm adalah sistem pemetaan relasi objek terbina dalam Laravel. Ia mengendalikan pangkalan data melalui sintaks PHP dan bukannya SQL asli, menjadikan kod lebih ringkas dan mudah dikekalkan; 1. Setiap jadual data sepadan dengan kelas model, dan setiap rekod wujud sebagai contoh model; 2. Mengamalkan mod rekod aktif, dan contoh model boleh disimpan atau dikemas kini dengan sendirinya; 3. Penyerahan batch sokongan, dan atribut yang boleh diisi $ perlu ditakrifkan dalam model untuk memastikan keselamatan; 4. Memberi sokongan hubungan yang kuat, seperti satu-satu, satu-ke-banyak, banyak-banyak, dan lain-lain, dan anda boleh mengakses data yang berkaitan melalui panggilan kaedah; 5. Pembina pertanyaan bersepadu, di mana, Orderby dan kaedah lain boleh dipanggil dirantai untuk membina pertanyaan; 6. Aksesor sokongan dan pengubahsuaian, yang boleh memformat nombor apabila memperoleh atau menetapkan atribut.
