이진혁
이진혁9mo ago

토스 v1/payments/confirm 에러

const { TOSS_NAME, amount, orderId, paymentKey, paymentType } = req.body; const TOSS_SECRET_KEY = process.env.TOSS_SECRET_KEY; console.log(TOSS_NAME, amount, orderId, paymentKey, paymentType, TOSS_SECRET_KEY) const BASIC_TOKEN = Buffer.from(${TOSS_SECRET_KEY}:, "utf-8").toString('base64'); // Base64 인코딩된 토큰 생성 const TOSS_RESPONSE = await fetch("https://api.tosspayments.com/v1/payments/confirm", { // TOSS Payments API 호출 method: "POST", headers: { Authorization: Basic ${BASIC_TOKEN}, "Content-Type": "application/json", }, body: JSON.stringify({ amount, orderId, paymentKey, customerKey: orderId }), }); const TOSS_DATA = await TOSS_RESPONSE.json(); console.log(TOSS_RESPONSE : ${JSON.stringify(TOSS_DATA)}); ----------- const {SUCCESS, TOSS_RESPONSE} = await fetch('/toss_check', { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ TOSS_NAME, amount, orderId, paymentKey, paymentType }) }); console.log("HOME", TOSS_RESPONSE) 출력 : HOME undefined 뭐가 문제인가요?
15 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee9mo ago
보내셨던 paymentkey 를 공유해주세요.
이진혁
이진혁OP9mo ago
morwo20240614191936MNDp9 입니다
Kimoon Lee
Kimoon Lee9mo ago
승인 API 제체가 안온것 같은데요. 그런데 이렇게 하시면 응답을 받아서 처리를 못하실텐데요. const TOSS_RESPONSE = await fetch("https://api.tosspayments.com/v1/payments/confirm", { // TOSS Payments API 호출 method: "POST", headers: { Authorization: Basic ${BASIC_TOKEN}, "Content-Type": "application/json", }, body: JSON.stringify({ amount, orderId, paymentKey, customerKey: orderId }), }); const TOSS_DATA = await TOSS_RESPONSE.json(); await 로 요청하셨으니까 promise 로 받거나 하셔야 할것 같은데 언어 어떤거 쓰시는 건가요?
이진혁
이진혁OP9mo ago
js 랑 express 사용했습니다.
Ayaan이안
Ayaan이안9mo ago
저렇게 사용하는거 맞습니다! fetch를 await으로 받으면, json Promise함수를 담고있는 다시 반환해주기때문에 await 변수명.json()으로하면 응답을 받을 수 있어요
Kimoon Lee
Kimoon Lee9mo ago
아 설명 감사합니다. 그런데 그러면 console.log(TOSS_RESPONSE : ${JSON.stringify(TOSS_DATA)});이부분이 아예 실행이 안된거겠네요
Ayaan이안
Ayaan이안9mo ago
const {SUCCESS, TOSS_RESPONSE} = await fetch('/toss_check', { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ TOSS_NAME, amount, orderId, paymentKey, paymentType }) }); 아마 이렇게 받는건 안될겁니다.
Kimoon Lee
Kimoon Lee9mo ago
그게 안되더라도 위에 있는 TOSS_RESPONSE는 출력이 되어야 할것 같아서요
Ayaan이안
Ayaan이안9mo ago
TOSS_RESPONSE가 찍혔는지 안찍혔는지 안알려주신거 같아서, 실행이 되었는지 단정짓긴 어려울것 같습니다.
Kimoon Lee
Kimoon Lee9mo ago
@이진혁 님 HOME undefined 가 찍히기 전에 TOSS_RESPONSE 는 어떻게 출력이 되었나요? 그런데 지금 보면 라이브로 결제 요청하셨는데요 morwonsr1p 상점이 아직 계약이 완료되지 않은 상태이긴 합니다. 정상적으로 결제가 안되실거에요.
이진혁
이진혁OP9mo ago
계약 완료할려면 필요한게 있나요?
Ayaan이안
Ayaan이안9mo ago
계약 관련한 문의는 1544-7772로 해주시면 됩니다.
토스페이먼츠 BOT
토스페이먼츠 결제연동팀
빠르고 정확한 결제연동 경험을 위해, 디스코드에서는 기술 문의만 받고 있습니다. 계약 및 운영 관련 문의는 1544-7772나 홈페이지 상담을 이용해주세요. 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?