0.13.19 : tell apart the two causes of a Stripe signature failure
Build release Docker image / Build Docker Images (push) Successful in 8m27s
Build release Docker image / Build Docker Images (push) Successful in 8m27s
Un corps brut absent et un secret de signature erroné produisent des messages Stripe proches, alors que les correctifs sont opposés. Le log d'échec indique désormais si le corps brut est présent et sa taille, si l'en-tête stripe-signature est là, et si STRIPE_WEBHOOK_SECRET est défini (sa longueur, jamais sa valeur). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harmony-back",
|
"name": "harmony-back",
|
||||||
"version": "0.13.18",
|
"version": "0.13.19",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "A Strapi application",
|
"description": "A Strapi application",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -18,7 +18,24 @@ export default factories.createCoreController(
|
|||||||
process.env.STRIPE_WEBHOOK_SECRET!,
|
process.env.STRIPE_WEBHOOK_SECRET!,
|
||||||
);
|
);
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
strapi.log.error(`❌ Erreur de signature Webhook: ${err.message}`);
|
// Deux causes très différentes se ressemblent ici. Corps brut absent
|
||||||
|
// (middleware `strapi::body` sans `includeUnparsed`) : Stripe se
|
||||||
|
// plaint du payload. Corps brut présent mais signature invalide :
|
||||||
|
// c'est le secret qui ne correspond pas à l'endpoint appelant —
|
||||||
|
// chaque endpoint Stripe a le sien.
|
||||||
|
strapi.log.error(
|
||||||
|
`❌ Erreur de signature Webhook: ${err.message} ` +
|
||||||
|
`[corps brut: ${
|
||||||
|
typeof unparsedBody === "string" || Buffer.isBuffer(unparsedBody)
|
||||||
|
? `présent, ${unparsedBody.length} octets`
|
||||||
|
: `ABSENT (${typeof unparsedBody})`
|
||||||
|
}, en-tête stripe-signature: ${sig ? "présent" : "ABSENT"}, ` +
|
||||||
|
`STRIPE_WEBHOOK_SECRET: ${
|
||||||
|
process.env.STRIPE_WEBHOOK_SECRET
|
||||||
|
? `défini (${process.env.STRIPE_WEBHOOK_SECRET.length} car.)`
|
||||||
|
: "NON DÉFINI"
|
||||||
|
}]`,
|
||||||
|
);
|
||||||
return ctx.badRequest(`Webhook Error: ${err.message}`);
|
return ctx.badRequest(`Webhook Error: ${err.message}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user