Package: iamport-rest-client2
Python3 사용자를 위한 아임포트 REST API 연동 모듈입니다.이용 중 발생한 문제에 대해 책임지지 않습니다.Iamport 공식 라이브러리가 관리되지 않아 포크하여 만들었습니다설치pipinstalliamport-rest-client2기능결제 정보 찾기가격 확인취소비 인증 결제정기 예약 결제결제 없이 카드정보 등록사용법준비사용하기 위해 객체를 만듭니다.fromiamportimportIamport# 테스트 용iamport=Iamport(imp_key='{테스트용 키}',imp_secret='{테스트 시크릿}')# 테스트용 키와 시크릿은 tests/conftest.py 파일에 DEFAULT_TEST_IMP_KEY, DEFAULT_TEST_IMP_SECRET를 참고하세요.# 실제 상점 정보iamport=Iamport(imp_key='{발급받은 키}',imp_secret='{발급받은 시크릿}')찾기결제를 진행한 상품 아이디나, 전달받은 IMP 아이디를 이용해 결제 정보를 찾습니다.# 상품 아이디로 조회response=iamport.find(merchant_uid='{상품 아이디}')# I'mport; 아이디로 조회response=iamport.find(imp_uid='{IMP UID}')가격 확인실제 제품 가격과 결제된 가격이 같은지 확인합니다.# 상품 아이디로 확인iamport.is_paid(product_price,merchant_uid='{상품 아이디}')# I'mport; 아이디로 확인iamport.is_paid(product_price,imp_uid='{IMP UID}')# 이미 찾은 response 재활용하여 확인iamport.is_paid(product_price,response=response)취소결제를 취소합니다.# 상품 아이디로 취소response=iamport.cancel(u'취소하는 이유',merchant_uid='{상품 아이디}')# I'mport; 아이디로 취소response=iamport.cancel(u'취소하는 이유',imp_uid='{IMP UID}')# 취소시 오류 예외처리(이미 취소된 결제는 에러가 발생함)try:response=iamport.cancel(u'취소하는 이유',imp_uid='{IMP UID}')exceptIamport.ResponseErrorase:printe.codeprinte.message# 에러난 이유를 알 수 있음exceptIamport.HttpErrorashttp_error:printhttp_error.codeprinthttp_error.reason# HTTP not 200 에러난 이유를 알 수 있음비인증 결제1회성 비인증 결제를 진행합니다.# 테스트용 값payload={'merchant_uid':'00000000','amount':5000,'card_number':'4092-0230-1234-1234','expiry':'2019-03','birth':'500203','pwd_2digit':'19'}try:response=iamport.pay_onetime(**payload)exceptKeyError:# 필수 값이 없을때 에러 처리passexceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass저장된 빌링키로 재결제합니다.# 테스트용 값payload={'customer_uid':'{고객 아이디}','merchant_uid':'00000000','amount':5000,}try:response=iamport.pay_again(**payload)exceptKeyError:# 필수 값이 없을때 에러 처리passexceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass정기 예약 결제정기 결제를 예약합니다.# 테스트용 값payload={'customer_uid':'{고객 아이디}','schedules':[{'merchant_uid':'test_merchant_01',# UNIX timestamp'schedule_at':1478150985,'amount':1004},{'merhcant_uid':'test_merchant_02',# UNIX timestamp'schedule_at':1478150985,'amount':5000,'name':'{주문명}','buyer_name':'{주문자명}','buyer_email':'{주문자 이메일}','buyer_tel':'{주문자 전화번호}','buyer_addr':'{주문자 주소}','buyer_postcode':'{주문자 우편번호}',},]}try:reponse=iamport.pay_schedule(**payload)exceptKeyError:# 필수 값이 없을때 에러 처리passexceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass정기 결제 예약을 취소합니다.# 테스트용 값 (merchant_uid 가 누락되면 customer_uid 에 대한 결제예약정보 일괄취소)payload={'customer_uid':'{고객 아이디}','merchant_uid':'test_merchant_01',}try:response=iamport.pay_unschedule(**payload)exceptKeyError:# 필수 값이 없을때 에러 처리passexceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass결제 사전 검증결제될 내역에 대한 사전정보를 등록합니다# 테스트용 값amount=12000mid='merchant_test'try:response=iamport.prepare(amount=amount,merchant_uid=mid)exceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass등록된 사전정보를 확인합니다# 테스트용 값amount=12000mid='merchant_test'try:result=iamport.prepare_validate(merchant_uid=mid,amount=amount)exceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass카드정보 등록결제 없이 카드 정보를 등록합니다# 테스트용 값payload={'customer_uid':'{고객 아이디}','card_number':'4092-0230-1234-1234','expiry':'2019-03','birth':'500203','pwd_2digit':'19'# 법인일땐 생략 가능}try:response=iamport.customer_create(**payload)exceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass등록된 카드 정보(=빌링키)를 요청합니다# 테스트용 값customer_uid='{고객 아이디}'try:response=iamport.customer_get(customer_uid)exceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass구매자의 빌링키 정보를 삭제 합니다# 테스트용 값customer_uid='{고객 아이디}'try:response=iamport.customer_delete(customer_uid)exceptIamport.ResponseErrorase:# 응답 에러 처리passexceptIamport.HttpErrorashttp_error:# HTTP not 200 응답 에러 처리pass개발환경 및 테스트 설정macOS 기준pipinstall-rrequirements.txtpytest할 일결제 목록 읽기문서화기타 등등