diff --git a/package.json b/package.json index 5c8babc..47ab146 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "harmony-back", - "version": "0.13.18", + "version": "0.13.19", "private": true, "description": "A Strapi application", "scripts": { diff --git a/src/api/order/controllers/order.ts b/src/api/order/controllers/order.ts index 7c2917f..f976308 100644 --- a/src/api/order/controllers/order.ts +++ b/src/api/order/controllers/order.ts @@ -18,7 +18,24 @@ export default factories.createCoreController( process.env.STRIPE_WEBHOOK_SECRET!, ); } 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}`); }