mirror of
https://github.com/anikeen-com/id.git
synced 2026-11-04 22:59:41 +00:00
Add subscription status helpers
status() returns draft, trial, active, paused, cancelling, expired or cancelled (SubscriptionStatus constants), derived from the fields the same way Anikeen ID derives its status, so it also works with older responses. isActive() is true while the subscription runs and is paid. Both Subscription and AppSubscription have them. Document the states. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2faccac0f4
commit
ce820cd198
7 files changed
+348
-117
No files matched your search
+25
-2
@@ -338,8 +338,31 @@ return redirect()->away($subscription->confirmationUrl(route('pass.return')));
|
||||
// later: https://shop.test/pass/return?status=completed&subscription=01J…
|
||||
```
|
||||
|
||||
A subscription has `active` (running and paid), `cancelled` and `autorenew` (false once paused).
|
||||
After the return, check `$user->subscriptions()->find($id)->active`.
|
||||
After the return, read the subscription and check its state:
|
||||
|
||||
```php
|
||||
$subscription = $user->subscriptions()->find($id);
|
||||
|
||||
if ($subscription->isActive()) {
|
||||
// grant access
|
||||
}
|
||||
```
|
||||
|
||||
`status()` returns one of the `Anikeen\Id\Enums\SubscriptionStatus` constants (the API sends the
|
||||
same value as `status`):
|
||||
|
||||
| `status()` | Meaning | `isActive()` |
|
||||
|---|---|---|
|
||||
| `draft` | Created, not confirmed by the user yet | no |
|
||||
| `trial` | Running, in its trial period | yes |
|
||||
| `active` | Running and billed | yes |
|
||||
| `paused` | Runs until the paid period ends, then expires (`resume()` to continue) | yes |
|
||||
| `cancelling` | Runs until a scheduled cancellation takes effect | yes |
|
||||
| `expired` | Paused and ran out; `resume()` starts a new period | no |
|
||||
| `cancelled` | Cancelled for good | no |
|
||||
|
||||
There are shortcuts for each: `isDraft()`, `isPaused()`, `isCancelling()`, `isExpired()`,
|
||||
`isCancelled()`. App subscriptions (`appSubscriptions()`) have the same methods.
|
||||
|
||||
### Webhooks
|
||||
|
||||
|
||||
Reference in new issue
Block a user