결제 에러시에도 successUrl 호출이 되는 경우가 있나요?
현재 php8.0 / javascript 에서 tosspayments 를 호출하여 이용중에 있습니다.
특이한 현상이 발견되어 질문 드립니다..
자바스크립트에서 아래와 같이 호출합니다. 문제는 실패시에는 failUrl 이 호출되어야 하는데..
아주 가끔 successUrl 이 호출되는 상황이 발생합니다.
혹시 해당 현상이 발생되는 경우가 있는지와 아래의 코드로 인해 해당 현상이 발생 가능한지에 대해 답변 부탁드립니다.
tossPayments.requestPayment(method, { // 결제 수단 파라미터
// 결제 정보 파라미터
amount: amount,
orderId: orderId,
orderName: orderName,
customerName: customerName,
customerId: customerId,
successUrl: successUrl,
failUrl: failUrl,
})
.catch(function (error) {
if (error.code === 'USER_CANCEL') {
// 결제 고객이 결제창을 닫았을 때 에러 처리
} else if(error.code === 'PAY_PROCESS_ABORTED') {
// 결제 진행 중 승인에 실패
alert("결제 진행 중 승인에 실패하여 결제가 취소되었습니다.");
} else if (error.code === 'INVALID_CARD_COMPANY') {
// 유효하지 않은 카드 코드에 대한 에러 처리
alert("결제 승인이 거절되었습니다.");
} else if(error.code === 'DUPLICATED_ORDER_ID') {
// 이미 승인 및 취소가 진행된 주문번호일 경우
alert("이미 승인 및 취소가 진행된 주문입니다.");
} else if(error.code === 'FORBIDDEN_REQUEST') {
alert("허용되지 않은 요청입니다.");
} else if(error.code === 'INVALID_BANK') {
alert("유효하지 않은 은행입니다.");
} else if (error.code === 'INVALID_CARD_COMPANY') {
alert("유효하지 않은 카드사입니다.");
} else if(error.code === 'INVALID_EASY_PAY') {
alert("간편결제 정보가 올바르지 않습니다.");
} else if(error.code === 'PAY_PROCESS_CANCELED') {
alert("결제가 사용자에 의해 취소되었습니다.");
}else{
alert("결제 승인 거절. 한도부족/통장잔액부족/유효기간만료 등을 확인하시고 그외의 문제는 카드사 문의가 필요합니다.");
}
})
6 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
주문번호 : 5b297255-4f04-e866-2ce1-20b4a29aab19
인증이 성공하면 successUrl이 호출됩니다.
이후 successurl에서 승인 요청을 해야 결제가 완료됩니다.
지금 에러는 successURL 에서 승인 API 를 호출하신 결과로 오류를 받으신거에요.
아.. 넵 알겠습니다.
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tosspayments.com/v1/payments/confirm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $post_field,
CURLOPT_HTTPHEADER => [
"Authorization: Basic ".$auth_key,
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
successUrl 에서 승인요청하는 부분입니다.
이때 $err 부분에 에러가 들어온 것이 정상 파싱이 않되어 그대로 진행되었다고 봐도 무방할까요?
해당 curl 리턴에 대한 값을 찾아보려면 어디에서 볼 수 있을까요?
아.. 찾았습니다. 감사합니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.