Comments (2)
@JustDenP
Hey, I encountered the same issue as well. Could you please let me know how you resolved it?
from nestjs.
@Sky-FE Hi, the issue is related to undefined rawBody in request, make sure you set rawBody for these webhooks properly.
I use middleware for the specific endpoints:
raw-body.middleware.ts
import { RawBodyRequest } from '@nestjs/common';
import { json, Request, Response } from 'express';
export interface RawBodyMiddlewareOptions {
limit: string;
rawBodyUrls: string[];
}
export function rawBodyMiddleware(options: RawBodyMiddlewareOptions): unknown {
const rawBodyUrls = new Set(options.rawBodyUrls);
return json({
...options,
verify: (request: RawBodyRequest<Request>, _: Response, buffer: Buffer) => {
if (rawBodyUrls.has(request.url) && Buffer.isBuffer(buffer)) {
request.rawBody = Buffer.from(buffer);
}
return true;
},
});
}
Then in your main.ts file you can use it before body parser if you have it
app.use(
rawBodyMiddleware({
limit: '5mb',
rawBodyUrls: ['/stripe/webhook', '/payment/test'],
}),
);
app.use(bodyParser.json({ limit: '5mb' }));
app.use(bodyParser.urlencoded({ limit: '5mb', extended: true }));
You can create any post endpoint to test it and make sure it is working and rawBody is there.
After that, if you will face another error "No signatures found matching the expected signature for payload", make sure to set up accountTest if you are using local stripe cli. I have it like this
webhookConfig: {
decorators: [SkipThrottle()],
requestBodyProperty: 'rawBody',
stripeSecrets: {
account: configService.get('stripe.account', { infer: true }),
accountTest: configService.get('stripe.account', { infer: true }),
},
},
If you still have issues, you can write here, I also spent the whole day so set it right haha
from nestjs.
Related Issues (20)
- ts-jest - When function is called with a mock, toHaveBeenCalledWith() always succeed even when it should not
- rabbitmq: allow per subscriber/handler deserializer customization HOT 1
- RabbitMQ AmqpConnection access from child module
- Wildcard routing stopped working. RabbitMQ
- rabbitmq: support specifying exchange per routing key in RabbitSubscribe
- Single Channel Configuration Across Multiple @RabbitSubscribe Decorators Not Working as Expected
- No delivery mode option on AmqpConnection.request method HOT 2
- RabbitMQ: RabbitSubscribe using a handler name without corresponding handler config asserts randomized queues HOT 3
- rabbitmq: consumerTags are not cleaned up on connection/channel disconnect
- rabbitmq: canceled consumers are resumed if connection/channel reconnects HOT 1
- rabbitmq: direct sending to queue without the need for exchanges HOT 1
- rabbitmq: binding a queue to exchange without a routingKey
- ts-jest: Cannot create mock of a class which has private dependencies in constructor HOT 1
- rabbitmq: handlers didn't works in app-non-pub HOT 1
- golevelup/nestjs-stripe: project can not compile
- Stripe Test Webhook
- How should I use this within RabbitSubscribe method?
- ts-vitest: using with `vi.spyOn` isn't working
- golevelup/nestjs-graphql-request: update dependencies [email protected]
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs.