토스 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
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
보내셨던 paymentkey 를 공유해주세요.
morwo20240614191936MNDp9 입니다
승인 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 로 받거나 하셔야 할것 같은데
언어 어떤거 쓰시는 건가요?
js 랑 express 사용했습니다.
저렇게 사용하는거 맞습니다!
fetch를 await으로 받으면, json Promise함수를 담고있는 다시 반환해주기때문에
await 변수명.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 })
});
아마 이렇게 받는건 안될겁니다.
그게 안되더라도 위에 있는 TOSS_RESPONSE는 출력이 되어야 할것 같아서요
TOSS_RESPONSE가 찍혔는지 안찍혔는지 안알려주신거 같아서,
실행이 되었는지 단정짓긴 어려울것 같습니다.
@이진혁 님 HOME undefined 가 찍히기 전에 TOSS_RESPONSE 는 어떻게 출력이 되었나요?
그런데 지금 보면 라이브로 결제 요청하셨는데요
morwonsr1p 상점이 아직 계약이 완료되지 않은 상태이긴 합니다. 정상적으로 결제가 안되실거에요.
계약 완료할려면 필요한게 있나요?
계약 관련한 문의는 1544-7772로 해주시면 됩니다.
토스페이먼츠 결제연동팀
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.