Laravel Cashier menyediakan beberapa ciri berkuasa yang mengendalikan integrasi Stripe. Hari ini, kami akan meneroka tiga ciri teras dan kaedah awamnya: ManagesSubscriptions, ManagesCustomer dan ManagesInvois. Memahami ciri ini adalah penting untuk melaksanakan pengebilan berasaskan langganan dalam aplikasi Laravel anda.
Mengurus Sifat Langganan
Penciptaan dan Pengurusan Langganan
newSubscription($type, $prices = [])
Mencipta contoh pembina langganan baharu. Jenis mentakrifkan nama langganan (cth., 'lalai'), dan harga boleh menjadi ID tunggal atau tatasusunan.
Pengurusan Percubaan
newSubscription($type, $prices = [])
- Tiada parameter: Semak HANYA percubaan generik (peringkat model)
- Dengan $type: Menyemak percubaan khusus langganan
- Dengan kedua-duanya: Menyemak sama ada harga tertentu sedang dalam percubaan
- Mengembalikan boolean
onTrial($type = 'default', $price = null)
- Tiada parameter: Menyemak tamat tempoh percubaan generik
- Dengan $type: Menyemak tamat tempoh percubaan langganan khusus
- Dengan kedua-duanya: Mengesahkan tamat tempoh percubaan harga khusus
- Mengembalikan boolean
hasExpiredTrial($type = 'default', $price = null)
- Menyemak status percubaan peringkat model
- Kembalikan benar jika percubaan_berakhir_di wujud dan akan datang
- Tiada parameter diperlukan
onGenericTrial()
- Skop untuk menapis pelanggan pada percubaan generik
- Digunakan dalam pembina pertanyaan
- Memerlukan contoh pembina pertanyaan
scopeOnGenericTrial($query)
- Menyemak sama ada percubaan peringkat model telah tamat tempoh
- Kembalikan benar jika percubaan_berakhir_at wujud dan telah berlalu
- Tiada parameter diperlukan
hasExpiredGenericTrial()
- Skop untuk menapis pelanggan dengan percubaan generik yang telah tamat tempoh
- Digunakan dalam pembina pertanyaan
- Memerlukan contoh pembina pertanyaan
scopeHasExpiredGenericTrial($query)
- Tiada parameter: Mengembalikan tarikh tamat percubaan generik jika dalam percubaan generik
- Dengan $type: Mengembalikan tarikh tamat percubaan khusus langganan
- Mengembalikan instance Carbon atau null
Semakan Status Langganan
trialEndsAt($type = 'default')
- Hanya $type: Menyemak kewujudan langganan yang sah
- Dengan $price: Menyemak langganan harga khusus
- Mengembalikan boolean
subscribed($type = 'default', $price = null)
- Mendapat langganan mengikut jenis
- Mengembalikan model Langganan atau batal
subscription($type = 'default')
- Mendapat semua langganan
- Mengembalikan hubungan HasMany
- Tiada parameter diperlukan
subscriptions()
- Menyemak pembayaran yang tidak lengkap pada langganan
- Mengembalikan boolean
hasIncompletePayment($type = 'default')
-
$products: ID produk tunggal atau tatasusunan
-
$type: Jenis langganan untuk diperiksa
- Mengembalikan boolean
- Menyemak sama ada melanggan MANA-MANA produk yang diberikan
subscribedToProduct($products, $type = 'default')
-
$harga: ID atau tatasusunan harga tunggal
-
$type: Jenis langganan untuk diperiksa
- Mengembalikan boolean
- Menyemak jika melanggan MANA-MANA harga yang diberikan
subscribedToPrice($prices, $type = 'default')
- Menyemak langganan yang sah dengan produk tertentu
- Mengembalikan boolean
- Lebih khusus daripada subscribedToProduct
onProduct($product)
- Menyemak langganan yang sah dengan harga tertentu
- Mengembalikan boolean
- Lebih khusus daripada subscribedToPrice
onPrice($price)
- Dapatkan kadar cukai untuk langganan
- Mengembalikan tatasusunan
- Kosong secara lalai, bertujuan untuk ditindih
taxRates()
- Dapatkan kadar cukai untuk item langganan individu
- Mengembalikan tatasusunan
- Kosong secara lalai, bertujuan untuk ditindih
Mengurus Sifat Pelanggan
Pengenalan Pelanggan
newSubscription($type, $prices = [])
- Mengembalikan ID pelanggan Stripe atau batal
- Tiada parameter diperlukan
- Mengembalikan rentetan|null
onTrial($type = 'default', $price = null)
- Menyemak sama ada pelanggan mempunyai ID Stripe
- Mengembalikan boolean
- Tiada parameter diperlukan
Penciptaan dan Pengurusan Pelanggan
hasExpiredTrial($type = 'default', $price = null)
- Mencipta pelanggan Stripe baharu
- Pilihan mempengaruhi metadata pelanggan, e-mel, nama, dll.
- Melemparkan pengecualian jika pelanggan sudah wujud
- Mengembalikan objek Pelanggan Stripe
onGenericTrial()
- Mengemas kini pelanggan Stripe sedia ada
- Pilihan menentukan perkara yang dikemas kini
- Mengembalikan objek Pelanggan Stripe yang dikemas kini
- Memerlukan pelanggan sedia ada
scopeOnGenericTrial($query)
- Dapatkan pelanggan sedia ada atau buat pelanggan baharu
- Pilihan mempengaruhi penciptaan jika perlu
- Mengembalikan objek Pelanggan Stripe
- Lebih pemaaf daripada createAsStripeCustomer
hasExpiredGenericTrial()
- Mengemas kini sedia ada atau mencipta pelanggan baharu
- Pilihan mempengaruhi kemas kini dan penciptaan
- Mengembalikan objek Pelanggan Stripe
- Menggabungkan kemas kini dan mencipta fungsi
scopeHasExpiredGenericTrial($query)
- Menyegerakkan butiran setempat ke Stripe
- Mengembalikan objek Pelanggan Stripe
- Menggunakan atribut model untuk penyegerakan
trialEndsAt($type = 'default')
- Menyegerakkan jika wujud atau mencipta pelanggan baharu
- Pilihan mempengaruhi penciptaan jika perlu
- Mengembalikan objek Pelanggan Stripe
subscribed($type = 'default', $price = null)
- Dapatkan objek pelanggan Stripe
- Parameter kembangkan menentukan data berkaitan
- Mengembalikan objek Pelanggan Stripe
- Memerlukan pelanggan sedia ada
Atribut Pelanggan
subscription($type = 'default')
- Dapatkan nama untuk penyegerakan Stripe
- Mengembalikan rentetan|null
- Lalai mengembalikan $this->name
subscriptions()
- Mendapat e-mel untuk penyegerakan Stripe
- Mengembalikan rentetan|null
- Lalai mengembalikan $this->e-mel
hasIncompletePayment($type = 'default')
- Dapatkan telefon untuk penyegerakan Stripe
- Mengembalikan rentetan|null
- Lalai mengembalikan $ini->telefon
subscribedToProduct($products, $type = 'default')
- Dapatkan alamat untuk penyegerakan Stripe
- Mengembalikan tatasusunan|null
- Kosongkan secara lalai
subscribedToPrice($prices, $type = 'default')
- Mendapatkan tempat pilihan untuk Stripe
- Mengembalikan tatasusunan
- Kosongkan secara lalai
onProduct($product)
- Mendapat metadata untuk Stripe
- Mengembalikan tatasusunan
- Kosongkan secara lalai
Pengurusan Diskaun
onPrice($price)
- Mendapat diskaun pelanggan aktif
- Mengembalikan objek Diskaun atau batal
- Tiada parameter diperlukan
taxRates()
- Menggunakan kupon kepada pelanggan
- Batal pemulangan
- Memerlukan ID kupon
priceTaxRates()
- Menggunakan kod promosi kepada pelanggan
- Batal pemulangan
- Memerlukan ID kod promosi
newSubscription($type, $prices = [])
- Mencari kod promosi
- Mengembalikan objek PromotionCode atau null
- Pilihan mempengaruhi carian
onTrial($type = 'default', $price = null)
- Mencari kod promosi aktif
- Mengembalikan objek PromotionCode atau null
- Pilihan mempengaruhi carian
Pengurusan Imbangan
hasExpiredTrial($type = 'default', $price = null)
- Mendapat baki pelanggan yang diformatkan
- Mengembalikan rentetan
- Tiada parameter diperlukan
onGenericTrial()
- Mendapat baki pelanggan mentah
- Mengembalikan integer
- Tiada parameter diperlukan
scopeOnGenericTrial($query)
- Dapatkan transaksi baki pelanggan
- Koleksi Pulangan
- Had mempengaruhi kiraan yang dikembalikan
hasExpiredGenericTrial()
- Kreditkan baki pelanggan
- Mengembalikan Transaksi Baki Pelanggan
- Jumlah diperlukan
scopeHasExpiredGenericTrial($query)
- Debit baki pelanggan
- Mengembalikan Transaksi Baki Pelanggan
- Jumlah diperlukan
trialEndsAt($type = 'default')
- Menggunakan pelarasan baki
- Mengembalikan Transaksi Baki Pelanggan
- Jumlah diperlukan
Pengurusan Cukai
subscribed($type = 'default', $price = null)
- Dapatkan ID cukai pelanggan
- Koleksi Pulangan
- Pilihan mempengaruhi pengambilan semula
subscription($type = 'default')
- Mencipta ID cukai baharu
- Mengembalikan Stripe TaxId
- Kedua-dua parameter diperlukan
subscriptions()
- Memadamkan ID cukai
- Batal pemulangan
- Memerlukan ID cukai
hasIncompletePayment($type = 'default')
- Mencari ID cukai khusus
- Mengembalikan Stripe TaxId atau batal
- Memerlukan ID cukai
Semakan Status Cukai
subscribedToProduct($products, $type = 'default')
- Menyemak sama ada pelanggan tidak dikecualikan cukai
- Mengembalikan boolean
- Tiada parameter diperlukan
subscribedToPrice($prices, $type = 'default')
- Menyemak sama ada pelanggan dikecualikan cukai
- Mengembalikan boolean
- Tiada parameter diperlukan
onProduct($product)
- Menyemak sama ada caj terbalik dikenakan
- Mengembalikan boolean
- Tiada parameter diperlukan
Portal Pengebilan
onPrice($price)
- Mendapat URL portal pengebilan Stripe
- Mengembalikan rentetan
- ReturnUrl pilihan
taxRates()
- Ubah hala ke portal pengebilan Stripe
- Mengembalikan RedirectResponse
- ReturnUrl pilihan
Mengurus Sifat Invois
Item Invois
priceTaxRates()
- Menambah item invois
- Mengembalikan Item Invois Jalur
- Penerangan dan jumlah yang diperlukan
stripeId()
- Menambahkan item berdasarkan harga
- Mengembalikan Item Invois Jalur
- ID harga diperlukan
Penciptaan Invois
hasStripeId()
- Mencipta invois segera
- Mengembalikan objek Invois
- Penerangan dan jumlah yang diperlukan
createAsStripeCustomer(array $options = [])
- Mencipta invois berasaskan harga
- Mengembalikan objek Invois
- ID harga diperlukan
newSubscription($type, $prices = [])
- Menjana invois
- Mengembalikan objek Invois
- Pilihan mempengaruhi penciptaan
onTrial($type = 'default', $price = null)
- Mencipta invois Stripe
- Mengembalikan objek Invois
- Pilihan mempengaruhi penciptaan
Pengambilan Invois
hasExpiredTrial($type = 'default', $price = null)
- Mendapat invois akan datang
- Mengembalikan objek Invois atau batal
- Pilihan mempengaruhi pratonton
onGenericTrial()
- Mencari invois khusus
- Mengembalikan objek Invois atau batal
- Memerlukan ID invois
scopeOnGenericTrial($query)
- Mencari invois atau membuang pengecualian
- Mengembalikan objek Invois
- Memerlukan ID invois
- Melempar NotFoundHttpException atau AccessDeniedHttpException
hasExpiredGenericTrial()
- Dapatkan PDF invois
- Mengembalikan Respons
- ID diperlukan, nama fail pilihan
scopeHasExpiredGenericTrial($query)
- Mendapat semua invois
- Koleksi Pulangan
- Parameter mempengaruhi penapisan
trialEndsAt($type = 'default')
- Mendapat semua invois termasuk belum selesai
- Koleksi Pulangan
- Pendek kata untuk invois(benar)
subscribed($type = 'default', $price = null)
- Mendapat invois dinomborkan
- Mengembalikan CursorPaginator
- Berbilang parameter mempengaruhi penomboran
Pemerhatian Utama
-
Sensitiviti Parameter: Kaedah selalunya mempunyai gelagat berbeza berdasarkan kehadiran parameter.
-
Jenis Pulangan: Kaedah secara konsisten mengembalikan jenis tertentu (boolean, objek, koleksi).
-
Nilai Lalai: Banyak parameter mempunyai lalai yang munasabah tetapi boleh ditindih.
-
Saling Bergantung Trait: Kaedah selalunya bergantung pada kaedah sifat lain.
-
Penyatuan Jalur: Kebanyakan kaedah berinteraksi dengan API Stripe sama ada secara langsung atau tidak langsung.
Amalan Terbaik
- Sentiasa semak keperluan parameter untuk tingkah laku yang diingini.
- Kendalikan kemungkinan pengecualian, terutamanya untuk kaedah *OrFail.
- Gunakan pembayang jenis yang betul apabila memanjangkan ciri ini.
- Uji kombinasi parameter yang berbeza dengan teliti.
- Pertimbangkan caching panggilan kerap untuk mengurangkan permintaan API.
Kesimpulan
Sifat-sifat ini membentuk tulang belakang fungsi Laravel Cashier. Memahami skop penuh kaedah yang tersedia dan gelagat parameternya adalah penting untuk pelaksanaan yang betul. Sentiasa rujuk dokumentasi rasmi bersama rujukan ini untuk mendapatkan maklumat terkini.
Atas ialah kandungan terperinci Memahami Ciri Teras Juruwang Laravel: Penyelaman Dalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!