تکنولوژی نوین اینترنتی
Laravel Cashier یک بسته لاراول است که برای مدیریت پرداختهای آنلاین و اشتراکهای ماهانه یا سالانه طراحی شده است. این بسته بهطور خاص برای استفاده از درگاههای پرداخت Stripe و Paddle ساخته شده است و ابزارهای قدرتمندی را برای مدیریت اشتراکها، پرداختهای یکباره، فاکتورها، و توکنهای پرداخت فراهم میکند.
در این مقاله، نحوه استفاده از Laravel Cashier برای پیادهسازی پرداختهای آنلاین و مدیریت اشتراکها را بررسی خواهیم کرد.
نصب Cashier با Composer:
ابتدا باید بسته Laravel Cashier
را نصب کنید. برای این کار، از دستور Composer زیر استفاده کنید:
انتشار فایل تنظیمات Cashier: پس از نصب، شما میتوانید فایلهای تنظیمات Cashier را منتشر کنید:
تنظیمات پایگاه داده: Cashier برای ذخیره اطلاعات پرداخت و اشتراکها به جداول خاصی نیاز دارد. شما باید مایگریشنی را اجرا کنید تا این جداول در پایگاه داده ایجاد شوند:
برای استفاده از Stripe (که در اکثر موارد برای پردازش پرداختهای آنلاین انتخاب میشود)، باید تنظیمات مربوط به آن را انجام دهید.
دریافت کلیدهای API از Stripe: برای استفاده از Stripe، شما باید یک حساب Stripe ایجاد کرده و از داشبورد آن، کلیدهای عمومی و خصوصی خود را دریافت کنید. برای دریافت کلیدها، به Dashboard Stripe رفته و در بخش Developers > API keys آنها را پیدا کنید.
تنظیمات Stripe در .env
:
سپس باید کلیدهای API خود را در فایل .env
اضافه کنید:
بهروزرسانی فایل config/cashier.php
:
فایل تنظیمات Cashier بهطور خودکار از .env
شما برای تنظیم کلیدها استفاده میکند. اگر نیاز به تنظیمات خاص دیگری دارید، میتوانید این فایل را ویرایش کنید.
برای اینکه Cashier بتواند پرداختها و اشتراکها را مدیریت کند، باید مدل User شما از Billable استفاده کند. این ویژگی به شما این امکان را میدهد که اطلاعات مربوط به اشتراکها و پرداختها را برای هر کاربر ذخیره کنید.
استفاده از Billable در مدل User:
در مدل User
خود (که معمولاً در مسیر app/Models/User.php
قرار دارد)، باید از Billable استفاده کنید:
برای پردازش پرداختها و مدیریت اشتراکها، شما باید از متدهای مختلف Cashier در کنترلرها و روتها استفاده کنید.
ایجاد اشتراک (Subscription):
شما میتوانید یک اشتراک را برای یک کاربر ثبت کنید. به عنوان مثال، در کنترلر SubscriptionController
، متدی برای شروع یک اشتراک ایجاد کنید:
در اینجا:
createOrUpdateStripeCustomer
روش پرداخت را به کاربر اضافه میکند.
newSubscription
اشتراکی جدید را ایجاد میکند و اشتراک را به پلن مورد نظر (مانند price_id
) متصل میکند.
پرداخت برای محصول یکباره (One-time Payment):
علاوه بر اشتراکهای ماهانه یا سالانه، شما میتوانید پرداختهای یکباره را نیز مدیریت کنید. برای این کار، از متد charge
استفاده کنید:
ایجاد فاکتور:
برای مشاهده فاکتورها و پرداختها، میتوانید از متد invoices
استفاده کنید:
این متد فاکتورها را برای کاربر بازمیگرداند.
لیست کردن اشتراکهای کاربر:
برای نمایش اشتراکهای فعال یک کاربر، میتوانید از متد subscriptions
استفاده کنید:
لغو اشتراک:
برای لغو اشتراک، از متد cancelSubscription
استفاده کنید:
تجدید اشتراک:
برای تجدید اشتراک یک کاربر، میتوانید از متد resume
استفاده کنید:
ارتقاء یا کاهش سطح اشتراک:
برای ارتقاء یا کاهش سطح اشتراک، میتوانید از متد swap
استفاده کنید:
وبهوکها به شما این امکان را میدهند که به تغییرات در وضعیت اشتراکها، پرداختها، و تراکنشها در Stripe یا Paddle واکنش نشان دهید.
تنظیم وبهوک در Stripe:
برای دریافت وبهوکها از Stripe، باید یک روت در برنامه لاراول خود ایجاد کنید تا Stripe تغییرات مربوط به پرداختها را به آن ارسال کند.
در فایل routes/web.php
یک روت جدید برای دریافت وبهوکها اضافه کنید:
کنترلر برای پردازش وبهوکها:
سپس باید در کنترلر WebhookController
متدی برای پردازش وبهوکها اضافه کنید:
با استفاده از Laravel Cashier، شما میتوانید به راحتی سیستم پرداخت آنلاین و مدیریت اشتراکها را در برنامه خود پیادهسازی کنید. این بسته ابزارهای قدرتمندی برای مدیریت اشتراکها، فاکتورها، پرداختهای یکباره و وبهوکها فراهم میکند و میتواند به شما کمک کند که فرآیندهای پرداخت را بهصورت ساده و مؤثر در پروژههای لاراول خود پیادهسازی کنید.