카카오페이 api 테스트 404 에러

안녕하세요. 카카오페이 api 테스트 중에 에러가 발생했습니다.

일단, 결재 창을 띄우고 QR코드로 찍은 뒤까지는 넘어갑니다.

그런데 여기서 “일시적인 오류입니다. 다시 한번 시도해주세요.” 가 뜹니다.

F12로 오류를 확인해 보면

Failed to load resource: the server responded with a status of 404() 가 뜨네요

이건 넘어갈 URL이 잘 못 되어서 그런 것일까요? approval_url쪽으로 넘어가다가 문제가 생기는 것 같습니다.

https://mockup-pg-web.kakao.com/v1/2aa3084ae85c2c9432f1c9885061c82a3702808XXXXXXXXXX/도메인주소/프로젝트명/CallPaymentKakaoPaySuccess.php?pg_token=토큰넘버

이런식으로 주소가 찍히는데 제대로 찍히는 게 맞나요?

그리고 https://mockup-pg-web.kakao.com 이 주소만 입력해도 같은 오류가 뜹니다

mockup URL 은 당사의 샘플 CID ‘TC0ONETIME’ 를 사용하시면 내려가는 URL 입니다. approval_url 까지 받으셨다 함은 ‘결제준비’ 가 성공하였고, TID 도 발급되셨을 것으로 보입니다.

재 테스트 후 TID 를 전달 부탁드립니다.

curl_exec()를 var_dump로 찍어보니

“tid”:“T2635341922645279516” 라고 나옵니다.

이게 tid 발급 번호가 맞나요?

해당 거래의 request param 을 확인한 결과 아래와 같습니다.
변수값이 제대로 세팅되지 못한 것으로 보이며, url 또한 이상한듯 합니다.
https://developers.kakao.com/success’ 를 approval_url 로 하신 후 진행을 하시면 페이지는 없지만 pg_token 은 전달되는 것을 보실 수 있으실 것입니다.
이를 기반으로 재 테스트 부탁드립니다.

“param”: {
“partner_order_id”: “1111<?//=$partner_order_id?>”,
“quantity”: 44,
“total_amount”: 30,
“tax_free_amount”: 0,
“item_name”: “3333<?//=$item_name?>”,
“partner_user_id”: “2222<?//=$partner_user_id?>”,
“approval_url”: “192.168.1.23/project1/CallPaymentKakaoPaySuccess.php”,
“cancel_url”: “192.168.1.23/project1/CallPaymentKakaoPayCancle.php”,
“fail_url”: “192.168.1.23/project1/CallPaymentKakaoPayCancle.php”,
“cid”: “TC0ONETIME”
},

string(116) “{“msg”:“approve_url(https://developers.kakao.com/success) does not match registered website domain.”,“code”:-799}”

approval_url 에 말씀하신 주소를 넣으니 오류가 발생합니다. 그리고 앞에 아이피 주소는 localhost 주소인데 도메인 없이 테스트 중이라서 그렇습니다.
도메인 주소가 꼭 있어야 하나요?

[내 애플리케이션]-[설정]-[일반]-[플랫폼]-[웹] 에 자신의 IP 를 입력해놓으면 ‘결제준비’ 가 성공하는 것을 확인하였습니다.
하지만 가능하면 도메인이 있는 형태로 테스트 요청 드립니다.

말씀하신대로 하니까 앞에
https://mockup-pg-web.kakao.com/v1/2aa3084ae85c2c9432f1c9885061c82a3702808XXXXXXXXXX
이 부분이 붙지 않습니다. 물론 404라고 나오긴 합니다

그러면 저 부분이 붙는 이유가 도메인 주소가 아니라서 붙는 건가요?
그냥 아이피 주소로는 불가능 한가요?

내용이 이해가 잘 되지 않습니다.

‘결제준비’ 를 실패하셨다는 이야기 이신가요?
캡쳐, TID, send data 등으로 부가 설명 부탁드립니다.

아이피 주소로의 진행은 저도 내부에서 테스트해봐야 될듯 합니다만 일반적으로 사용하지 않는 바 도메인으로 진행을 권장 드립니다.

아이피 주소로 도메인 등록하고, approval_url에 192.168.1.23/project1/CallPaymentKakaoPaySuccess.php 이런 방식으로 등록했을때는

본문에 말씀드린것 처럼 앞에 https://mockup-pg-web.kakao.com/v1/2aa3084ae85c2c9432f1c9885061c82a3702808XXXXXXXXXX
이부분이 나오고 그 뒤에 제가 등록한 approval_url이 붙었습니다

근데 말씀해주신대로 도메인에 https://developers.kakao.com 을 등록하고
approval_url에 https://developers.kakao.com/success 를 등록하니 같은 단계까지 진행되었고 https://developers.kakao.com?pg_token=XXXXX 이런식으로 주소를 찾는 단계까지 갔습니다. 해당페이지가 404를 띄우는 것까지 확인했습니다. 해당페이지로 넘어간다는 것이겠죠.

제가 찾아야 하는 주소가 192.168.1.23/project1/CallPaymentKakaoPaySuccess.php 인데
앞에 mock-up~~ 이부분이 붙으니까 해당 페이지로 이동하지 못하는 것 같습니다. 그럼 결국 도메인을 등록해야 하는 것일까요?

앞에 mock-up 이 붙고 approval_url 이 뒤에 붙는다는 것이 무슨 뜻인지 모르겠습니다…
제가 approval_url 에 ip 를 넣고 임의로 거래를 일으켜 본 샘플을 첨부 드립니다.

pc 거래의 경우 ‘next_redirect_pc_url’ 을 치면 사용자 정보 입력(QR 또는 생년월일/전화번호 입력) 이 나오며 mock-up 뒤에 approval url 이 붙는 것은 보이지 않습니다.
개발자분의 소스는 제가 알 수 없는 영역임으로 postman 과 같은 툴을 이용해서 수동으로 테스트를 해보시기를 권장 드립니다.

동일 현상이 발생한다면 ‘결제준비’ ‘결제승인’ 단계 중 어느 단계인지, 가능하면 캡쳐나 TID 도 부탁드립니다.

image

도메인 등록시
도메인 등록시

아이피 등록시
아이피 등록시

녹색으로 된 주소는 오른쪽에 나오는 부분을 제가 복사 붙여넣기 했습니다. 빨간 부분이 제가 찾는 주소인데, 앞에 mock-up-~ 이부분이 붙습니다. 도메인 주소때는 안 붙습니다.

캡쳐해주신 것은 개발자님의 소스 흐름에 따라 페이지가 호출된 형태 입니다.

제가 확인해 드릴 수 있는 내용은 TID 를 전달해주시면 response 로 내려간 해당 거래의 redirect_url 을 확인해드리겠습니다.

tid":"T2635601424569303970

로 나옵니다

캡쳐의 것은 15 시간 전의 거래인데, 전달해주신 TID 는 금일 09:59:36 의 것 입니다.

전달해주신 1번 캡쳐의 것은 approval_url 과 pg_token 이 나온 형태이며, 이는 ‘결제준비’ 후 사용자의 ‘결제인증’ 까지 완료된 후 생성되는 것입니다.

전달해주신 2번 캡쳐의 것은 ‘결제준비’ 후 ‘next_redirect_pc_url’ 를 호출하는 과정에서 발생한 에러로 보입니다.
제가 전달해드리는 request, response 를 보시면 request 에는 ip 가 있지만, reponse 로 내려간 ‘next_redirect_pc_url’ 에는 ip 가 없음을 확인하실 수 있습니다.

방금 다시 developers.kakao.com 으로 도메인 등록하고 실행했는데 확인 부탁드립니다.
“tid”:“T2635608266452206508”,
“tms_result”:false,
“next_redirect_app_url”:“https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/aInfo”,
“next_redirect_mobile_url”:“https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/mInfo”,
“next_redirect_pc_url”:“https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/info”,
“android_app_scheme”:“kakaotalk://kakaopay/pg?url=https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/order”,
“ios_app_scheme”:“kakaotalk://kakaopay/pg?url=https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/order”,
“created_at”:“2019-06-12T10:26:09”}"

큰 차이는 없어보입니다

approval_url 이 ip 형태, 도메인 형태 일 때 모두 redirect_url 들은 같은 형식으로 내려갑니다.

개발자분의 소스 흐름에 따라 호출된 페이지는 제가 확인할 수 없는 영역입니다.
response 값을 기준으로 확인 부탁드립니다.

도메인 등록시
next_redirect_pc_url :
https://mockup-pg-web.kakao.com/v1/46a2d497cd27d822790035aeec0b9958c41c51dcfad14bac09d9f3119e0119d8/ainfo
을 직접 주소창에 입력하면 url이 https://developers.kakao.com/success 로 바뀝니다

그런데 아이피 등록시에는 next_redirect_pc_url 의 마지막 ainfo 가 없어지면서 192.168.1.23/project1/CallPaymentKakaoPaySuccess.php 이게 붙는데 그 이유에 대해서는 알 수가 없는 것인가요?

먼저 ainfo 는 app_url 인 경우에 붙습니다. pc_url 의 경우 info 가 붙습니다.
redirect_url 은 용도에 따라 몇가지 종류가 존재합니다. 개발 가이드를 재확인 부탁드립니다.

‘결제준비’ 후 redirect_url 이 호출되면 사용자 인증을 거쳐 결제 수단을 선택/결제하여 ‘결제인증’ 이 완료되고 pg_token 이 생성됩니다.
질문들이 단편적이고 개발자분의 소스로 인한 페이지 호출 등으로 인해 제가 확인할 수 있는 영역이 제한됩니다.
제가 답변드릴 수 있는 영역은 request 에 따른 response 값 확인 입니다.

저의 실수가 있었던 것 같습니다.
approval_url에 https:// 를 붙였더니 해당 url로 넘어가는 것 같은데 제 아이피에서 접속을 거부했다고 나옵니다.
제 서버에서 접근을 허용하게 해주면 되는 건가요?
그러면 카카오페이의 아이피를 알아야 가능하지 않나요?

당사의 OPEN_API 는 수많은 가맹점이 연결되고 있어 일부를 제외하고는 방화벽 작업이 필요없는 상태를 유지하고 있습니다.
에러 메세지와 TID 를 전달해주시면 확인해드리겠습니다.

에러코드를 응답받으신 경우 아래에서도 확인이 가능하십니다.
https://developers.kakao.com/docs/restapi/quick-reference#응답-코드