پکیج Cashier نسخه 11
به اطلاع شما می رسانیم که نسخه 11 پکیج Cashier منتشر گردیده است. این نسخه شامل پیاده سازی "اشتراک چند حالته" می باشد که مشابه ویژگی جدید "نرخ مالیات" در پکیچ Stripe است.
اشتراک چند حالته
"اشتراک چند حالته" این امکان را به شما می دهد که چندین برنامه پرداخت را برای یک اشتراک ایجاد نمایید. برای نمونه، تصور کنید که در حال ساخت یک اپلیکیشن "پشتیبان" (helpdesk) برای مشتریان هستید. این برنامه دارای یک پلن اشتراک به قیمت 10 دلار در ماه می باشد. ولی در کنار آن امکان ارائه خدمت چت آنلاین با هزینه اضافه 15 دلار در ماه را هم دارد:
$user = User::find(1);
$user->subscription('default')->addPlan('chat-plan');
حالا مشتری دو برنامه را روی اشتراک پیشفرض خود دارد. مثال بالا یک برنامه جدید را اضافه می کند و مشتری برای دوره پرداخت بعدی، آنرا در صورت حساب خود مشاهده می کند. اگر میخواهید که مشتری بلافاصله صورت حساب خود را مشاهده کند از متد زیر استفاده کنید:
$user->subscription('default')->addPlanAndInvoice('chat-plan');
همچنین برای حذف برنامه از اشتراک مشتری می توانید از متد removePlan
استفاده نمایید:
$user->subscription('default')->removePlan('chat-plan');
اگر میخواهید مقادیر را تنها برای اشتراک مشتریان خاص تغییر دهید، میتوانید از متد های مربوط به مقادیر استفاده نموده و نام برنامه پرداخت را به عنوان آرگومان به آنها ارسال کنید:
$user = User::find(1);
$user->subscription('default')
->incrementQuantity(5, 'chat-plan');
$user->subscription('default')
->decrementQuantity(3, 'chat-plan');
$user->subscription('default')
->updateQuantity(10, 'chat-plan');
نرخ مالیات
برای تعیین نرخ مالیات اشتراک یک کاربر، باید متد taxRates
را بر روی کلاس مدل خود، پیاده سازی نموده و یک آرایه شامل ID های نرخ مالیات مورد نظر را بازگردانید. نرخ های مالیات را باید در داشبورد Stripe خود تعریف نمایید.
public function taxRates()
{
return ['tax-rate-id'];
}
متد taxRates
به شما امکان اعمال یک نرخ مالیات به صورت "متغیر برای هر مدل" را می دهد. این حالت برای مواقعی است که، مثلا کاربر های شما در چندین کشور مختلف با نرخ مالیات متغیر قرار گرفته اند. اگر از اشتراک های چند حالته استفاده می کنید، برای استفاده از نرخ مالیات های متفاوت برای هر برنامه، میتوانید متد planTaxRates
را بر روی کلاس مدل خود پیاده سازی نمایید:
public function planTaxRates()
{
return [
'plan-id' => ['tax-rate-id'],
];
}
برای کسب اطلاعات بیشتر و نمونه های استفاده از این ویژگی های جدید می توانید مطلب راهنمایی بروز رسانی Cashier و همچنین راهنمای Cashier را مطالعه نمایید.
امیدواریم از این نسخه لذت ببرید و همچنین برنامه های جذابی بسازید.