I'mport; REST Client Python
![Lines of Code](https://img.shields.io/tokei/lines/github/iamport/iamport-rest-client-python)
소개
Python 개발자를 위한 아임포트 REST API 연동 패키지입니다.
주의 사항
- 이용 중 발생한 문제에 대해 책임지지 않습니다.
lexifdev
님의 도움을 받아 작성되었습니다`lexifdev's iamport 모듈- 최초 작성은
[핑크퐁 북스토어](https://store.pinkfong.com)
에서 쓰기 위해 만들었습니다.
주요 기능
- 결제 정보 찾기
- 가격 확인
- 취소
- 비 인증 결제
- 정기 예약 결제
- 본인인증결과 조회 및 삭제
설치
pip install iamport-rest-client
conda create --name iamport python=3.6
conda activate iamport
python -m pip install iamport-rest-client --upgrade
pip install git+https://github.com/iamport/iamport-rest-client-python.git@master --upgrade
pip install git+https://github.com/iamport/iamport-rest-client-python.git@v1.0.0 --upgrade
개발 환경
pip install -e .[dev]
pytest
기여하기
iamport-rest-client-python 프로젝트 보드의 To do
탭을 참고해주세요.
사용법
설정
from iamport import Iamport
iamport = Iamport(
imp_key='imp_apikey',
imp_secret=(
'ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6b'
'kA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f'
)
)
iamport = Iamport(imp_key='{발급받은 키}', imp_secret='{발급받은 시크릿}')
예제
결제를 진행한 상품 아이디나, 전달받은 IMP 아이디를 이용해 결제 정보를 찾습니다.
response = iamport.find(merchant_uid='{상품 아이디}')
response = iamport.find(imp_uid='{IMP UID}')
실제 제품 가격과 결제된 가격이 같은지 확인합니다.
iamport.is_paid(product_price, merchant_uid='{상품 아이디}')
iamport.is_paid(product_price, imp_uid='{IMP UID}')
iamport.is_paid(product_price, response=response)
결제를 취소합니다.
response = iamport.cancel('취소하는 이유', merchant_uid='{상품 아이디}')
response = iamport.cancel('취소하는 이유', imp_uid='{IMP UID}')
try:
response = iamport.cancel('취소하는 이유', imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
print(e.code)
print(e.message)
except Iamport.HttpError as http_error:
print(http_error.code)
print(http_error.reason)
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)
except KeyError:
pass
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
저장된 빌링키로 재결제합니다.
payload = {
'customer_uid': '{고객 아이디}',
'merchant_uid': '00000000',
'amount': 5000,
}
try:
response = iamport.pay_again(**payload)
except KeyError:
pass
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
정기 결제를 예약합니다.
payload = {
'customer_uid': '{고객 아이디}',
'schedules': [
{
'merchant_uid': 'test_merchant_01',
'schedule_at': 1478150985,
'amount': 1004
},
{
'merhcant_uid': 'test_merchant_02',
'schedule_at': 1478150985,
'amount': 5000,
'name': '{주문명}',
'buyer_name': '{주문자명}',
'buyer_email': '{주문자 이메일}',
'buyer_tel': '{주문자 전화번호}',
'buyer_addr': '{주문자 주소}',
'buyer_postcode': '{주문자 우편번호}',
},
]
}
try:
response = iamport.pay_schedule(**payload)
except KeyError:
pass
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
정기 결제 예약을 취소합니다.
payload = {
'customer_uid': '{고객 아이디}',
'merchant_uid': 'test_merchant_01',
}
try:
response = iamport.pay_unschedule(**payload)
except KeyError:
pass
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
결제될 내역에 대한 사전정보를 등록합니다
amount = 12000
mid = 'merchant_test'
try:
response = iamport.prepare(amount=amount, merchant_uid=mid)
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
등록된 사전정보를 확인합니다.
amount = 12000
mid = 'merchant_test'
try:
result = iamport.prepare_validate(merchant_uid=mid, amount=amount)
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
본인인증결과를 조회합니다.
try:
response = iamport.find_certification(imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass
본인인증결과를 아임포트에서 삭제합니다.
try:
response = iamport.cancel_certification(imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
pass
except Iamport.HttpError as http_error:
pass