payout.changed, seller.changed 웹훅 헤더에만 포함되는 웹훅 서명입니다. 토스페이먼츠가 보낸 웹훅인지 검증할 수 있는 값입니다. 검증하는 방법은 아래와 같습니다.
{WEBHOOK_PAYLOAD}:{tosspayments-webhook-transmission-time} 값을 보안 키로 HMAC SHA-256 해싱하세요.
웹훅 헤더에서 v1: 뒤에오는 2개의 값을 모두 base64로 디코딩하세요.
1번에서 해시값과 2번에서 디코딩한 값 중 하나가 일치하면 토스페이먼츠에서 보낸 올바른 웹훅이 맞습니다. 일치하지 않으면 토스페이먼츠에서 보낸 웹훅이 아니고 웹훅 데이터를 신뢰할 수 없습니다. 위에 있는 헤더를 예시로 들면, 아래 둘 중 하나의 값이 true이어야 합니다.
HMACSHA256({WEBHOOK_PAYLOAD}:2024-09-05T12:19:21+09:00) == base64.decode(TvgZ2rrdPJvzhDBOej8UMybv0SHufgwdiv6+OzANJd4=)
HMACSHA256({WEBHOOK_PAYLOAD}:2024-09-05T12:19:21+09:00) == base64.decode(/CSvw0DpqBaCVxUAEbzG2Q/7O9V6epYWyKzwavm4MU4=)
payout.changed, seller.changed 웹훅 헤더에만 포함되는 웹훅 서명입니다. 토스페이먼츠가 보낸 웹훅인지 검증할 수 있는 값입니다. 검증하는 방법은 아래와 같습니다.
{WEBHOOK_PAYLOAD}:{tosspayments-webhook-transmission-time} 값을 보안 키로 HMAC SHA-256 해싱하세요.
웹훅 헤더에서 v1: 뒤에오는 2개의 값을 모두 base64로 디코딩하세요.
1번에서 해시값과 2번에서 디코딩한 값 중 하나가 일치하면 토스페이먼츠에서 보낸 올바른 웹훅이 맞습니다. 일치하지 않으면 토스페이먼츠에서 보낸 웹훅이 아니고 웹훅 데이터를 신뢰할 수 없습니다. 위에 있는 헤더를 예시로 들면, 아래 둘 중 하나의 값이 true이어야 합니다.
HMACSHA256({WEBHOOK_PAYLOAD}:2024-09-05T12:19:21+09:00) == base64.decode(TvgZ2rrdPJvzhDBOej8UMybv0SHufgwdiv6+OzANJd4=)
HMACSHA256({WEBHOOK_PAYLOAD}:2024-09-05T12:19:21+09:00) == base64.decode(/CSvw0DpqBaCVxUAEbzG2Q/7O9V6epYWyKzwavm4MU4=)