Ivan.L
Ivan.L3y ago

테스트 결제는 되는데 서비스 client_eky 붙이면 400에러로 BAD REQUEST나오는건 어떻게 해야하나요?

테스트 결제는 되는데 서비스 clienteky 붙이면 400에러로 BAD REQUEST나오는건 어떻게 해야하나요? 결제는 넘어가고 인증 부분에서 진행되지 않습니다. ```js // 인증 부분 const options = { method: "POST", url: "https://api.tosspayments.com/v1/payments/confirm", headers: { Authorization: "Basic 배부받은키_값", "Content-Type": "application/json", }, data: { paymentKey: getUrlObj.paymentKey, amount: getUrlObj.amount, orderId: getUrlObj.orderId, }, }; axios .request(options) .then(function (response) { console.log(response.data); alert("결제에 성공하였습니다."); setValues((draft) => { draft.result = true; }); }) .catch(function (error) { console.error(error); alert("결제에 실패하였습니다. 잠시 후 다시시도해주세요."); navigate(-1); }); ```
15 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee3y ago
보내주신 코드가 frontend에서 동작하시는 코드이신가요? axios 를 쓰시는 것으로 보아 backend 이시겠군요..
Ivan.L
Ivan.LOP3y ago
네 맞습니다 프론트엔드입니다
Kimoon Lee
Kimoon Lee3y ago
프론트엔드에서 결제승인 API 를 호출하시면 안됩니다. 결제승인 API 의 경우 secretkey 를 사용하는데, 이값이 frontend 에 노출되면 보안상 이슈가 발생합니다. 백엔드에서 API 를 호출해 주시기 바랍니다.
Ivan.L
Ivan.LOP3y ago
아 구조상 파이어베이스 서버에 프론트엔드가 올라가고 process.env로 보안 처리가 됩니다 요청 자체는 서버에서 날라갑니다 그래서 CORS이슈도 없는상태입니다 결제는 잘넘어가구요, redirect된 인증부분에서 문제가 발생합니다
Kimoon Lee
Kimoon Lee3y ago
"Basic 배부받은키_값", 이부분에서 secretkey를 사용하고 계신가요?
Ivan.L
Ivan.LOP3y ago
그 부분을 모르곘습니다 토스페이먼츠에서 시크릿클라이언트키는 확인이되는데
Kimoon Lee
Kimoon Lee3y ago
그리고 secretkey 에 ":" 를 추가 하신후 base64로 인코딩을 해서 사용하시는지도 확인해 주시기 바랍니다.
Ivan.L
Ivan.LOP3y ago
설명서를보면 클론을 붙혀서 하라는데 무슨말인지 잘 모르겠습니다..
Kimoon Lee
Kimoon Lee3y ago
예를 들어 secretkey 가 live_sk_aaaaaa 라면
Ivan.L
Ivan.LOP3y ago
네네
Kimoon Lee
Kimoon Lee3y ago
live_sk_aaaaaa: 이 스트링을 base64로 인코딩해서 authorization 헤더에 Basic [인코딩한값] 이렇게 보내주시면 됩니다.
Ivan.L
Ivan.LOP3y ago
와우 감사합니다!! 해결됐습니다 고생하십쇼!
Kimoon Lee
Kimoon Lee3y ago
네 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?