How to solve the check djstripe.W005 is not populated in the db
You may have installed
dj-stripe, and set up all the configuration in your Django setting module. But there is a warning check that irritates you.
?: (djstripe.W005) The secret of Webhook Endpoint: DJSTRIPE_WEBHOOK_SECRET is not populated in the db. Events sent to it will not work properly.
HINT: This can happen if it was deleted and resynced as Stripe sends the webhook secret ONLY on the creation call. Please use the django shell and update the secret ...
If you check out the source code of the check, check_webhook_endpoint_has_secret, you notice that the secret property of the model object
WebhookEndpoint is being checked.
How to fix this
If you happen to have just one webhook instance, this will help you.
- First, make sure you have a
WebhookEndpointobject in your admin site
Go to the Django command shell
python manage.py shell
In the shell, run the following:
from django.conf import settings
from djstripe.models import WebhookEndpoint
# Get the WebhookEndpoint object
e = WebhookEndpoint.objects.last() # Or e = WebhookEndpoint.objects.all()
# Set the current secret and save
e.secret = setting.DJSTRIPE_WEBHOOK_SECRET
Note: If you wonder where to get the the Stripe Webhook secret, you need to visit the Stripe Dashboard, search for your webhook and click on Reveal the signing secret.