inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편

포트원 다른 PG사 결제창 테스트 문제

해결된 질문

1509

박건영

작성한 질문수 3

1

안녕하세요. 잘 수강 했습니다. 좋은 강의 감사합니다.

실 서비스 결제를 하는데 많은 도움이 되고 있습니다.

 

다름이 아니라 강의를 참고해 (구)토스페이먼츠는 잘 구현이 되었습니다.

주문 결제 주문목록 등 다 구현이 되었는데요.

 

제가 실제 연동 PG사를 웰컴페이먼츠로 안내 받아. 

테스트에 연동에서 토스페이먼츠나 웰컴페이먼츠를 대표 PG사로 사용 시 결제창이 뜨지 않거나,

 

스크린샷 2024-01-31 오전 11.52.05.png

위와 같은 오류가 발생해 문의 드립니다.

문서를 봐도 다른 게 없는 것 같은데, 왜 안되는지 이유를 잘 모르겠습니다.

 

 

(404, 'Not Found')
Traceback (most recent call last):
  File "/Users/adver/program/advercoder_ai/mall/models.py", line 184, in update
    self.meta = self.api.find(merchant_uid=self.merchant_uid)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/adver/program/advercoder_ai/env/lib/python3.11/site-packages/iamport/client.py", line 91, in find
    return self.find_by_merchant_uid(merchant_uid)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/adver/program/advercoder_ai/env/lib/python3.11/site-packages/iamport/client.py", line 82, in find_by_merchant_uid
    return self._get(url)
           ^^^^^^^^^^^^^^
  File "/Users/adver/program/advercoder_ai/env/lib/python3.11/site-packages/iamport/client.py", line 61, in _get
    return self.get_response(response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/adver/program/advercoder_ai/env/lib/python3.11/site-packages/iamport/client.py", line 33, in get_response
    raise Iamport.HttpError(response.status_code, response.reason)
iamport.client.Iamport.HttpError: (404, 'Not Found')
Not Found: /mall/orders/73/check/93/

 

이런 상황이다 보니, 어떻게 이것을 풀어가야 할지 고민이 되서 여쭤봅니다.

 

(구)토스페이먼츠와 다른 무언가를 해야 하는 설정이 있을까요?

문서를 봐도 잘 모르겠어서 여쭤 봅니다.

조언해 주시면 감사하겠습니다. 감사합니다!

python django

답변 1

0

이진석

안녕하세요.

결제를 시도하는 payment_pay.html 템플릿 내에서 IMP.request_pay 함수에서 두번째 인자로 콜백함수를 지정하는 데요. 이 콜백함수에서는 인자로 포트원 서버 응답객체 response를 전달받습니다.

IMP.request_pay 함수에서 콜백함수는 결제가 성공 혹은 실패되었을 때 호출됩니다. 아마도 어떠한 설정 상의 이슈로 결제가 시도되지 않고 실패 상태로 콜백함수가 호출되어, 콜백함수 내 locaiton.href = "결제 확인 주소" 코드가 수행되어 페이지 전환이 된 듯 보입니다.

location.href 페이지 이동 코드는 주석 처리하시고, 콜백 함수 내에 console.log(response) 코드로 로그를 찍으셔서 그 응답내역을 확인해보시겠어요? 아마도 오류 내역이 확인되실 듯 합니다. 그리고 console.log(props); 로 설정 내용도 같이 출력해보시구요.

결제 페이지에서 브라우저 "페이지 소스보기" 하셔서 포트원 결제 시도에 사용된 IMP.init 및 IMP.request_pay 등의 코드를 복사하시구요. 해당 오류내역과 props 내역도 같이 포트원 측에 문의하시면, 웰컴페이먼츠 등을 사용하기 위한 JS API 인자 지정 방법과 설정에 대해서 피드백을 받으실 수 있으실 듯 합니다.

회신 받으시면 제게도 공유해주시고, 장고 설정으로 보완할 부분이 있으면 같이 고민해보시죠.

화이팅입니다. :-)

2

박건영

빠른 답변에 너무나도 감사 합니다.

 

{
    "success": false,
    "error_code": "NOT_READY",
    "error_msg": "등록된 사용자 또는 PG 설정 정보가 없거나, 조회 할 수 없습니다"
}

 

응답이 이렇게 오는 것을 보니, payment_props에서 pg를 지정해 줘야 했습니다.

 

    payment_props = {
        "pg": "welcome",
        "merchant_uid": payment.merchant_uid,
        "name": payment.name,
        "amount": payment.desired_amount,
        "buyer_name": payment.buyer_name,
        "buyer_email": payment.buyer_email,
        "buyer_tel": "010-0000-0000",
    }

 

일부 PG사 들은 "pg" 사를 지정해 줘야 하고, 웰컴페이먼츠는 buyer_tel이 필수 였습니다.

https://developers.portone.io/docs/ko/pg/payment-gateway/readme?v=v1
여기에서 각 PG사별 요구 사항을 확인 해야 했습니다.

토스 페이먼츠는

pg: "tosspayments", // 반드시 "tosspayments"임을 명시해주세요.

이러한 내용이 있었습니다.

 

pg사만 잘 지정해 주면 좋을것 같습니다!

 

감사합니다. 페이지 이동을 막고 건너오는 오류메세지를 보면 되는데 자바스크립트가

 

익숙하지 않다보니 생각하지 못했네요!

 

좋은 하루 되세요!

 

(질문)KG이니시스 팝업차단 문제 발생(강의 13. 자바스크립트만으로 포트원 결제 구현하기, 7분18초)

1

168

2

로그아웃 405 에러

0

172

1

웹훅 사용과 관련하여 질문 드립니다.

0

246

2

cancel에 대해 질문을 드립니다.

0

147

2

m_redirect_url에 대해 문의 드립니다.

0

152

1

cancle에 대해 문의 드립니다.

0

297

3

db_constraint=False 에 대해 질문 드립니다.

0

169

2

pip 설치시 에러가 발생합니다.

0

501

2

주문 로직

0

371

3

결제 기능을 비동기적으로 처리할 필요는 없나요..?

0

413

3

배포환경과 개발환경 패키지 관리, 도커환경 디버깅 팁이 있을까요?

0

292

4

8강 주문 모델 설계에서 따로 ManyToMany 관계를 위한 모델을 선언해준 이유?

0

137

2

product model에서 category는 FK로 주셨는데, status는 왜 chocies로 주신 이유?

0

95

2

선생님 from iamport import Iamport 에서 에러가 생깁니다.

0

153

2

db_index=True로 설정하는 이유

0

142

2

안녕하세요 파이참 폼링크 제출했습니다

0

109

1

포트원 UI가 바뀌면서 포트원 404에러가 발생합니다.

0

600

5

djlint 편집시 무한 동작

0

130

1

결제 실패

0

230

1

환불을 구현 하려면 어떤식으로 해야 되나여?

0

500

1

next js 에서 결제 구현할때 에러 발생하는데 디버깅 팁 주실수 있나요?

0

314

1

사용자가 진행을 중단하였습니다.

0

349

3

결제창 출력이 되지 않습니다.

0

864

2

결제 중간 이탈

0

331

2