Laravel Касса и полоса: как оформить ie подписку на ресурсы - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь настроить службу на основе подписки, где компания, имеющая платежный счет, может создать отдельную подписку для каждого отдельного места, зарегистрированного в их компании. Идея заключается в том, что владелец компании, который использует модель пользователя, имеет оплачиваемую черту и может создать подписку для каждого объекта. Компания может создать столько мест, сколько они пожелают, но должны платить отдельно за каждое место, которое они регистрируют для своей компании. Типы подписок, которые может иметь место, - ежемесячная, годовая или пробная.

Я хочу прикрепить подписку к ресурсу, чтобы я знал, для какой подписки это место. Компания и место проведения имеют разные модели и связаны друг с другом.

Структура выглядит следующим образом

Company Owner (user model, has billable trait)

     |

Company (model)

     | Venue 1 (model) - Monthly subscription 

     | Venue 2 (model) - Yearly subscription

     | Venue 3 (model) - Yearly subscription

     | etc ... 

Я думал добавить столбец venue_id к * 1009. * стол, который идет с Кассиром. Я не знаю, возможно ли присоединить несколько подписок на места к одному и тому же оплачиваемому пользователю, потому что я не знаю, поддерживает ли Касса это. Если нет, то было бы лучше прикрепить оплачиваемую черту к модели места и вместо этого просто выставить счет?

1 Ответ

1 голос
/ 21 января 2020

Laravel Касса по-прежнему не поддерживает несколько подписок на одну сущность, а также подписки с несколькими планами. В будущих версиях Кассы было сделано несколько обращений и просьб сделать это, поскольку Stripe это позволяет.

https://github.com/laravel/cashier/issues/397

https://github.com/laravel/cashier/pull/398

https://github.com/laravel/cashier/pull/420

Попробуйте использовать официальный PHP SDK Stripe для вызовов API.

Вы можете попробовать использовать пакет Catalyst для Stripe, с или без прямой интеграции для Laravel, но вам нужно построить модели БД, чтобы иметь обзор и привязать его к оплачиваемой сущности.

Или вы можете использовать их платный пакет - Stripe - Billing - Laravel

https://cartalyst.com/manual/stripe/2.0

https://cartalyst.com/manual/stripe-laravel/10.x

https://cartalyst.com/manual/stripe-billing-laravel/10.x

Если вы хотите создавать модели БД самостоятельно, вам следует создать как минимум таблицы для подписок, планов и счетов-фактур.

В таблице подписок должен быть столбец для идентификатора оплачиваемого объекта, в данном случае, Company, и venue_id, который относится к Месту, которое принадлежит компании.

Кроме этого, чтобы лучше понять, как построить остальные таблицы, взгляните на структуру таблиц кассира, имеющую отношение к полосе, и найдите объект подписки , объект счета , и др c. в исчерпывающей документации Stripe для API:

https://stripe.com/docs/api https://stripe.com/docs

https://stripe.com/docs/api

...