김성철
김성철2mo ago

API 결제 후 취소시 401 에러 문의

API연동된 결제 후 취소를 하려고 하는데 401 UNAUTHORIZED_KEY 인증되지 않은 시크릿 키 혹은 클라이언트 키 입니다 라고 오류가 발생합니다. 시크릿키는 결제시 사용한 시크릿키와 동일한 암호화 방식 그대로 사용하여 이상이 없는데 api url: https://api.tosspayments.com/v1/payments/[paymentKey]/cancel 결제시 리턴받은 paymentKey를 사용하여 API연결 하였습니다. 혹시 해당 api주소가 모바일 결제후 취소할 경우 다른 값을 주소로 사용해야 하는것이 있나요? 시크릿 키 자체는 결제 시 사용한 시크릿키를 그대로 사용하였으며 결제가 정상적으로 진행된것으로 보아 시크릿 키 자체는 문제가 없는 것으로 보입니다. 답변 부탁드립니다.
19 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee2mo ago
paymentkey 를 알려주세요.
김성철
김성철OP2mo ago
silkr20251021140031ZdHN7 리턴받은 키값입니다.
today.lastday
today.lastday2mo ago
에러에 traceId도 같이 받았을텐데 공유부탁드려요.
김성철
김성철OP2mo ago
MC40MjkwNDc0NjM2NDY0 TID입니다.
today.lastday
today.lastday2mo ago
traceId 요
김성철
김성철OP2mo ago
{"code":"UNAUTHORIZED_KEY","message":"인증되지 않은 시크릿 키 혹은 클라이언트 키 입니다.","data":null} 401 이렇게만 리턴 받았습니다.
today.lastday
today.lastday2mo ago
로그상으로 취소 API가 정상 호출되지 않았습니다.
Kimoon Lee
Kimoon Lee2mo ago
호출하신 정확한 시간 알수 있을까요?
김성철
김성철OP2mo ago
https://api.tosspayments.com/v1/payments/silkr20251021140031ZdHN7/cancel 여기로 {"cancelAmount": 75930, "cancelReason": "구매자 요청에 의한 취소"} 이렇게 실행 햇습니다. 이후 결과 값은 {"code":"UNAUTHORIZED_KEY","message":"인증되지 않은 시크릿 키 혹은 클라이언트 키 입니다.","data":null} 401 방금도 실행 했습니다. 시크릿키는 결제와 동일하게 암호화 후 헤더로 전달 했습니다.
Kimoon Lee
Kimoon Lee2mo ago
요청하시는 authorization 을 보면 취소 시에만 Basic 77u/bGl2ZV9za19MbER.... 이런식으로 맨앞에 이상한 바이트가 있습니다. base64로 인코딩 하시기 전에 시크릿키를 복붙 하신게 아닐까 싶은데요. 정확히 스트링만 인코딩 해주세요. 인코딩후에 값이 bGl2ZV9za19... 이렇게 시작해야 합니다.
김성철
김성철OP2mo ago
"Basic " & base64Encode(toss_secretkey) 이렇게 인코딩 해서 넘겼습니다. 결제도 동일하게 전달하고 있습니다. 가이드에 Authorization: Basic {ENCODED_SECRET_KEY} 에렇게 나와 있어서요
Kimoon Lee
Kimoon Lee2mo ago
결제쪽에 toss_secretkey 세팅한 코드를 그대로 복사해서 취소 쪽에 붙여넣고 다시 해보세요. toss_secretkey 에 세팅할때 보이지 않는 바이트가 들어가 있는 것 같습니다.
김성철
김성철OP2mo ago
동일하게 셋팅되어 있습니다 ㅜㅜ
Kimoon Lee
Kimoon Lee2mo ago
네 보기엔 동일한데 지금 저희쪽으로 오는거 보면 달라요. 그러니까 동일하더라고 결제쪽 코드에서 복사해서 취소쪽 코드에 넣어 보세요.
김성철
김성철OP2mo ago
앞에 basic 붙여서 넘기는건 맞나요?
Kimoon Lee
Kimoon Lee2mo ago
네 맞습니다. base64Encode(toss_secretkey) 이 값을 결제쪽 페이지랑 취소쪽 페이지에서 직접 찍어보세요 값이 좀 다르게 나올겁니다.
김성철
김성철OP2mo ago
감사합니다. 덕분에 수정되었습니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?