Work with Stripe test clocks in laravel.
Via Composer
composer require amish/stripe-test-clock
php artisan vendor:publish --tag "stripe-test-clock.config"
php artisan migrate
Create a test clock:
php artisan test-clock:create "Test 1 week trial"
To assign a clock to a customer for testing use the StripeTestClock::stripeOptions()
method.
This will add the 'test_clock' key to your array if there is an active clock.
It will not add the key if 'enabled' is set to false in your config, or if you don't have a clock active.
use Amish\StripeTestClock\Facades\StripeTestClock;
// using the StripeClient
$stripe->customers->create(StripeTestClock::stripeOptions([
'email' => '[email protected]',
//...
]));
// Or using cashier
$user->createAsStripeCustomer(StripeTestClock::options());
From there you can work with the clock from the stripe dashboard or using the cli.
php artisan test-clock:advance -w 1 # advance the current clock by 1 week
php artisan test-clock:advance -m 1 -d 4 # advance the current clock by 1 month & 5 days
php artisan test-clock:advance "2023-07-19" # advance the clock to a specific date.
If a test clock is deleted in stripe or expires you can prune using the artisan test-clock:prune
command to delete the models.
When testing locally I recommend using the stripe cli to forward webhook events to your app.
stripe listen -f http://localhost/stripe/webhook
Please see the changelog for more information on what has changed recently.
composer test
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
MIT. Please see the license file for more information.