Rumah > pembangunan bahagian belakang > tutorial php > Memahami Ciri Teras Juruwang Laravel: Penyelaman Dalam

Memahami Ciri Teras Juruwang Laravel: Penyelaman Dalam

DDD
Lepaskan: 2024-11-30 00:24:15
asal
630 orang telah melayarinya

Understanding Laravel Cashier

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 = [])
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Mencipta contoh pembina langganan baharu. Jenis mentakrifkan nama langganan (cth., 'lalai'), dan harga boleh menjadi ID tunggal atau tatasusunan.

Pengurusan Percubaan

newSubscription($type, $prices = [])
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • 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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • 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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak status percubaan peringkat model
  • Kembalikan benar jika percubaan_berakhir_di wujud dan akan datang
  • Tiada parameter diperlukan
onGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Skop untuk menapis pelanggan pada percubaan generik
  • Digunakan dalam pembina pertanyaan
  • Memerlukan contoh pembina pertanyaan
scopeOnGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak sama ada percubaan peringkat model telah tamat tempoh
  • Kembalikan benar jika percubaan_berakhir_at wujud dan telah berlalu
  • Tiada parameter diperlukan
hasExpiredGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Skop untuk menapis pelanggan dengan percubaan generik yang telah tamat tempoh
  • Digunakan dalam pembina pertanyaan
  • Memerlukan contoh pembina pertanyaan
scopeHasExpiredGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • 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')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Hanya $type: Menyemak kewujudan langganan yang sah
  • Dengan $price: Menyemak langganan harga khusus
  • Mengembalikan boolean
subscribed($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat langganan mengikut jenis
  • Mengembalikan model Langganan atau batal
subscription($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat semua langganan
  • Mengembalikan hubungan HasMany
  • Tiada parameter diperlukan
subscriptions()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak pembayaran yang tidak lengkap pada langganan
  • Mengembalikan boolean
hasIncompletePayment($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • $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')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • $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')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak langganan yang sah dengan produk tertentu
  • Mengembalikan boolean
  • Lebih khusus daripada subscribedToProduct
onProduct($product)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak langganan yang sah dengan harga tertentu
  • Mengembalikan boolean
  • Lebih khusus daripada subscribedToPrice
onPrice($price)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan kadar cukai untuk langganan
  • Mengembalikan tatasusunan
  • Kosong secara lalai, bertujuan untuk ditindih
taxRates()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan kadar cukai untuk item langganan individu
  • Mengembalikan tatasusunan
  • Kosong secara lalai, bertujuan untuk ditindih

Mengurus Sifat Pelanggan

Pengenalan Pelanggan

newSubscription($type, $prices = [])
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mengembalikan ID pelanggan Stripe atau batal
  • Tiada parameter diperlukan
  • Mengembalikan rentetan|null
onTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak sama ada pelanggan mempunyai ID Stripe
  • Mengembalikan boolean
  • Tiada parameter diperlukan

Penciptaan dan Pengurusan Pelanggan

hasExpiredTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencipta pelanggan Stripe baharu
  • Pilihan mempengaruhi metadata pelanggan, e-mel, nama, dll.
  • Melemparkan pengecualian jika pelanggan sudah wujud
  • Mengembalikan objek Pelanggan Stripe
onGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • 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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan pelanggan sedia ada atau buat pelanggan baharu
  • Pilihan mempengaruhi penciptaan jika perlu
  • Mengembalikan objek Pelanggan Stripe
  • Lebih pemaaf daripada createAsStripeCustomer
hasExpiredGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • 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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyegerakkan butiran setempat ke Stripe
  • Mengembalikan objek Pelanggan Stripe
  • Menggunakan atribut model untuk penyegerakan
trialEndsAt($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyegerakkan jika wujud atau mencipta pelanggan baharu
  • Pilihan mempengaruhi penciptaan jika perlu
  • Mengembalikan objek Pelanggan Stripe
subscribed($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan objek pelanggan Stripe
  • Parameter kembangkan menentukan data berkaitan
  • Mengembalikan objek Pelanggan Stripe
  • Memerlukan pelanggan sedia ada

Atribut Pelanggan

subscription($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan nama untuk penyegerakan Stripe
  • Mengembalikan rentetan|null
  • Lalai mengembalikan $this->name
subscriptions()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat e-mel untuk penyegerakan Stripe
  • Mengembalikan rentetan|null
  • Lalai mengembalikan $this->e-mel
hasIncompletePayment($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan telefon untuk penyegerakan Stripe
  • Mengembalikan rentetan|null
  • Lalai mengembalikan $ini->telefon
subscribedToProduct($products, $type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan alamat untuk penyegerakan Stripe
  • Mengembalikan tatasusunan|null
  • Kosongkan secara lalai
subscribedToPrice($prices, $type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapatkan tempat pilihan untuk Stripe
  • Mengembalikan tatasusunan
  • Kosongkan secara lalai
onProduct($product)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat metadata untuk Stripe
  • Mengembalikan tatasusunan
  • Kosongkan secara lalai

Pengurusan Diskaun

onPrice($price)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat diskaun pelanggan aktif
  • Mengembalikan objek Diskaun atau batal
  • Tiada parameter diperlukan
taxRates()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menggunakan kupon kepada pelanggan
  • Batal pemulangan
  • Memerlukan ID kupon
priceTaxRates()
Salin selepas log masuk
Salin selepas log masuk
  • Menggunakan kod promosi kepada pelanggan
  • Batal pemulangan
  • Memerlukan ID kod promosi
newSubscription($type, $prices = [])
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencari kod promosi
  • Mengembalikan objek PromotionCode atau null
  • Pilihan mempengaruhi carian
onTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencari kod promosi aktif
  • Mengembalikan objek PromotionCode atau null
  • Pilihan mempengaruhi carian

Pengurusan Imbangan

hasExpiredTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat baki pelanggan yang diformatkan
  • Mengembalikan rentetan
  • Tiada parameter diperlukan
onGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat baki pelanggan mentah
  • Mengembalikan integer
  • Tiada parameter diperlukan
scopeOnGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan transaksi baki pelanggan
  • Koleksi Pulangan
  • Had mempengaruhi kiraan yang dikembalikan
hasExpiredGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Kreditkan baki pelanggan
  • Mengembalikan Transaksi Baki Pelanggan
  • Jumlah diperlukan
scopeHasExpiredGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Debit baki pelanggan
  • Mengembalikan Transaksi Baki Pelanggan
  • Jumlah diperlukan
trialEndsAt($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menggunakan pelarasan baki
  • Mengembalikan Transaksi Baki Pelanggan
  • Jumlah diperlukan

Pengurusan Cukai

subscribed($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan ID cukai pelanggan
  • Koleksi Pulangan
  • Pilihan mempengaruhi pengambilan semula
subscription($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencipta ID cukai baharu
  • Mengembalikan Stripe TaxId
  • Kedua-dua parameter diperlukan
subscriptions()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Memadamkan ID cukai
  • Batal pemulangan
  • Memerlukan ID cukai
hasIncompletePayment($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencari ID cukai khusus
  • Mengembalikan Stripe TaxId atau batal
  • Memerlukan ID cukai

Semakan Status Cukai

subscribedToProduct($products, $type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak sama ada pelanggan tidak dikecualikan cukai
  • Mengembalikan boolean
  • Tiada parameter diperlukan
subscribedToPrice($prices, $type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak sama ada pelanggan dikecualikan cukai
  • Mengembalikan boolean
  • Tiada parameter diperlukan
onProduct($product)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menyemak sama ada caj terbalik dikenakan
  • Mengembalikan boolean
  • Tiada parameter diperlukan

Portal Pengebilan

onPrice($price)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat URL portal pengebilan Stripe
  • Mengembalikan rentetan
  • ReturnUrl pilihan
taxRates()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Ubah hala ke portal pengebilan Stripe
  • Mengembalikan RedirectResponse
  • ReturnUrl pilihan

Mengurus Sifat Invois

Item Invois

priceTaxRates()
Salin selepas log masuk
Salin selepas log masuk
  • Menambah item invois
  • Mengembalikan Item Invois Jalur
  • Penerangan dan jumlah yang diperlukan
stripeId()
Salin selepas log masuk
  • Menambahkan item berdasarkan harga
  • Mengembalikan Item Invois Jalur
  • ID harga diperlukan

Penciptaan Invois

hasStripeId()
Salin selepas log masuk
  • Mencipta invois segera
  • Mengembalikan objek Invois
  • Penerangan dan jumlah yang diperlukan
createAsStripeCustomer(array $options = [])
Salin selepas log masuk
  • Mencipta invois berasaskan harga
  • Mengembalikan objek Invois
  • ID harga diperlukan
newSubscription($type, $prices = [])
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Menjana invois
  • Mengembalikan objek Invois
  • Pilihan mempengaruhi penciptaan
onTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencipta invois Stripe
  • Mengembalikan objek Invois
  • Pilihan mempengaruhi penciptaan

Pengambilan Invois

hasExpiredTrial($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat invois akan datang
  • Mengembalikan objek Invois atau batal
  • Pilihan mempengaruhi pratonton
onGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencari invois khusus
  • Mengembalikan objek Invois atau batal
  • Memerlukan ID invois
scopeOnGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mencari invois atau membuang pengecualian
  • Mengembalikan objek Invois
  • Memerlukan ID invois
  • Melempar NotFoundHttpException atau AccessDeniedHttpException
hasExpiredGenericTrial()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Dapatkan PDF invois
  • Mengembalikan Respons
  • ID diperlukan, nama fail pilihan
scopeHasExpiredGenericTrial($query)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat semua invois
  • Koleksi Pulangan
  • Parameter mempengaruhi penapisan
trialEndsAt($type = 'default')
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat semua invois termasuk belum selesai
  • Koleksi Pulangan
  • Pendek kata untuk invois(benar)
subscribed($type = 'default', $price = null)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Mendapat invois dinomborkan
  • Mengembalikan CursorPaginator
  • Berbilang parameter mempengaruhi penomboran

Pemerhatian Utama

  1. Sensitiviti Parameter: Kaedah selalunya mempunyai gelagat berbeza berdasarkan kehadiran parameter.
  2. Jenis Pulangan: Kaedah secara konsisten mengembalikan jenis tertentu (boolean, objek, koleksi).
  3. Nilai Lalai: Banyak parameter mempunyai lalai yang munasabah tetapi boleh ditindih.
  4. Saling Bergantung Trait: Kaedah selalunya bergantung pada kaedah sifat lain.
  5. Penyatuan Jalur: Kebanyakan kaedah berinteraksi dengan API Stripe sama ada secara langsung atau tidak langsung.

Amalan Terbaik

  1. Sentiasa semak keperluan parameter untuk tingkah laku yang diingini.
  2. Kendalikan kemungkinan pengecualian, terutamanya untuk kaedah *OrFail.
  3. Gunakan pembayang jenis yang betul apabila memanjangkan ciri ini.
  4. Uji kombinasi parameter yang berbeza dengan teliti.
  5. 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan