본문 바로가기
Q&A2026년 5월 30일2분 읽기

토스페이먼츠 v2 webhook signature 검증 — Node.js에서 일부 요청만 실패

양미래
조회 173댓글 4

토스페이먼츠 v2 webhook을 Node.js Express로 수신 중인데 5% 정도 요청에서 signature 검증이 실패합니다.

app.post('/webhooks/toss', express.json(), (req, res) => {
  const signature = req.headers['x-tosspayments-signature']
  const body = JSON.stringify(req.body)
  const expected = crypto
    .createHmac('sha256', SECRET)
    .update(body)
    .digest('base64')
  if (signature !== expected) {
    return res.status(401).send('Invalid signature')
  }
  // 처리
})

증상

  • 대부분 요청 검증 OK
  • 약 5% (특히 한글 메모 포함 요청) 검증 실패
  • 실패한 요청을 토스 콘솔에서 재시도하면 또 실패

UTF-8 인코딩 문제일까요? 어떻게 처리하시나요?

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록