razorpay_signature vs webhook signature: two different secrets
Checkout, payment links and subscriptions are keyed with your API secret. Webhooks are keyed with the webhook secret. Mixing them up is the most common cause of a signature that will never match.