안녕하세요
const paymentSuccessController = async (req, res) => {
try {
const userId = req.userId;
const { orderId, amount, paymentKey } = req.query; // usePoint added
const { usePoint, letterId } = req.body;
const response = await axios.post(
"https://api.tosspayments.com/v1/payments/confirm",
{
orderId,
amount,
paymentKey,
},
{
headers: {
Authorization:
"Basic " + Buffer.from(secretKey + ":").toString("base64"),
"Content-Type": "application/json",
},
responseType: "json",
}
);
이런식으로 토스페이먼츠로 필수값을 보내는데 혹시 뭐가 잘못됬는지
code: 'NOT_FOUND_PAYMENT_SESSION',
message: '결제 시간이 만료되어 결제 진행 데이터가 존재하지 않습니다.'
이런 오류가 발생했네요 db에는 정상적으로 데이터가 저장되었습니다 이후 failUrl로 이동하네요...
7 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
주문번호(orderId): 113a31ec-dd13-4277-92af-d95fa4976821
문의 내용:

orderId, amount, paymentKey 가 전부 빈값으로 넘어온 호출이 보이네요
결제승인 API 가 우선 빈값으로 호출되고,
그 다음 정상 호출이 들어오는 것 같은데
어떤 상황에서 빈값으로 승인 API 를 호출하는지 확인 해보시면 될것 같아요
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
아 감사합니다!
혹시 orderId amount paymentKey 를 서버에서 유효성 검사를 한후에 컴펌링크로 값을 보내야하는건가요?
네 결제 요청시 전달한 orderId, amount 랑 맞는지 valid 체크 후 paymentKey 로 승인 요청 하시면 됩니다
넵
네 맞습니다!
네 알겠습니다
음 너무 길다고 하는데
네
금액들어오면 db에 저장되어있는 값과 비교 분석하고 amount가 맞으면
아 그렇군요 그럼 포인트를 만약 사용했다고 가정을하면 포인트를 사용했다고 정보도 포함해서 보내야하나요 아니면 포인트를 뺸 amount를 보내야하나요?
귀사의 포인트입니다
오 알겠습니다 감사합니다 새해복많이 받으세요~
넵
아 그럼 api를 나눠서 진행해야하는건가요?
알겠습니다
오
네 알겠습니다 감사합니다!