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