Skip to content

Commit 663beeb

Browse files
committed
Add example usage to README
1 parent 00f0c2d commit 663beeb

File tree

1 file changed

+236
-9
lines changed

1 file changed

+236
-9
lines changed

README.md

Lines changed: 236 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
I'mport; REST Client
22
--------------------
33

4-
<div align="center">
5-
64
[![Python Versions](https://img.shields.io/pypi/pyversions/iamport-rest-client)](https://pypi.org/project/iamport-rest-client/)
75
[![PyPI Release (latest by date)](https://img.shields.io/pypi/v/iamport-rest-client?color=blue)](https://pypi.org/project/iamport-rest-client/)
86
[![GitHub Workflow Status (Build)](https://img.shields.io/github/workflow/status/iamport/iamport-rest-client-python/Build%20Status)](https://github.com/iamport/iamport-rest-client-python/actions)
97
[![GitHub LICENSE](https://img.shields.io/github/license/iamport/iamport-rest-client-python)](https://github.com/iamport/iamport-rest-client-python/blob/master/LICENSE)
108
[![Lines of Code](https://img.shields.io/tokei/lines/github/iamport/iamport-rest-client-python)](https://github.com/iamport/iamport-rest-client-python/tree/master/iamport)
119

12-
</div>
1310

1411
설명
1512
---
1613
> Python 개발자를 위한 [아임포트 REST API](https://api.iamport.kr/) 연동 패키지입니다.
1714
18-
기능
15+
주요 기능
1916
---
2017
1. 결제 정보 찾기
2118
2. 가격 확인
@@ -26,7 +23,7 @@ I'mport; REST Client
2623

2724
설치
2825
---
29-
> 아임포트를 설치하실 때 아나콘다를 이용한 아임포트 파이썬 가상환경 구성을 추천합니다.
26+
> 아임포트를 설치하실 때 아나콘다를 이용한 아임포트 파이썬 가상환경 구성을 추천합니다.
3027
[선택 사항] 아나콘다 환경에서 작업하신다면, 우선 아래의 절차를 진행해주세요.
3128
```bash
3229
# 아임포트 패키지를 위한 새로운 파이썬 가상환경을 생성해주세요. 이 때, 파이썬 버전은 최소 3.6 이상을 선택해주세요.
@@ -36,14 +33,23 @@ conda create --name iamport python=3.6
3633
conda activate pymodi
3734
```
3835

39-
아래의 커맨드를 실행하여 최신버전의 아임포트를 설치해주세요.
36+
아래의 커맨드를 실행하여 최신버전의 아임포트 패키지를 설치해주세요.
4037
```bash
4138
python -m pip install iamport-rest-client --upgrade
4239
```
4340

44-
준비
45-
---
46-
아임포트 객체를 생성합니다.
41+
원하신다면, 현재 개발중인 버전의 아임포트 패키지를 아래의 커맨드로 설치하실 수 있습니다 (주의: 코드가 정상작동하지 않을 수 있음).
42+
```bash
43+
python -m pip install git+https://github.com/iamport/iamport-rest-client-python.git@develop --upgrade
44+
```
45+
46+
혹은 특정 버전의 아임포트 패키지를 다음과 같이 설치하실 수 있습니다.
47+
```bash
48+
python -m pip install git+https://github.com/iamport/[email protected] --upgrade
49+
```
50+
51+
사용 준비
52+
-------
4753
```python
4854
from iamport import Iamport
4955

@@ -60,6 +66,227 @@ iamport = Iamport(
6066
iamport = Iamport(imp_key='{발급받은 키}', imp_secret='{발급받은 시크릿}')
6167
```
6268

69+
사용 예제
70+
-------
71+
72+
- 찾기
73+
결제를 진행한 상품 아이디나, 전달받은 IMP 아이디를 이용해 결제 정보를 찾습니다.
74+
75+
```python
76+
# 상품 아이디로 조회
77+
response = iamport.find(merchant_uid='{상품 아이디}')
78+
79+
# I'mport; 아이디로 조회
80+
response = iamport.find(imp_uid='{IMP UID}')
81+
```
82+
83+
84+
- 가격 확인
85+
실제 제품 가격과 결제된 가격이 같은지 확인합니다.
86+
87+
```python
88+
# 상품 아이디로 확인
89+
iamport.is_paid(product_price, merchant_uid='{상품 아이디}')
90+
91+
# I'mport; 아이디로 확인
92+
iamport.is_paid(product_price, imp_uid='{IMP UID}')
93+
94+
# 이미 찾은 response 재활용하여 확인
95+
iamport.is_paid(product_price, response=response)
96+
```
97+
98+
99+
- 취소
100+
결제를 취소합니다.
101+
102+
```python
103+
# 상품 아이디로 취소
104+
response = iamport.cancel(u'취소하는 이유', merchant_uid='{상품 아이디}')
105+
106+
# I'mport; 아이디로 취소
107+
response = iamport.cancel(u'취소하는 이유', imp_uid='{IMP UID}')
108+
109+
# 취소시 오류 예외처리(이미 취소된 결제는 에러가 발생함)
110+
try:
111+
response = iamport.cancel(u'취소하는 이유', imp_uid='{IMP UID}')
112+
except Iamport.ResponseError as e:
113+
print e.code
114+
print e.message # 에러난 이유를 알 수 있음
115+
except Iamport.HttpError as http_error:
116+
print http_error.code
117+
print http_error.reason # HTTP not 200 에러난 이유를 알 수 있음
118+
```
119+
120+
- 비인증 결제
121+
1회성 비인증 결제를 진행합니다.
122+
123+
```python
124+
# 테스트용 값
125+
payload = {
126+
'merchant_uid': '00000000',
127+
'amount': 5000,
128+
'card_number': '4092-0230-1234-1234',
129+
'expiry': '2019-03',
130+
'birth': '500203',
131+
'pwd_2digit': '19'
132+
}
133+
try:
134+
response = iamport.pay_onetime(**payload)
135+
except KeyError:
136+
# 필수 값이 없을때 에러 처리
137+
pass
138+
except Iamport.ResponseError as e:
139+
# 응답 에러 처리
140+
pass
141+
except Iamport.HttpError as http_error:
142+
# HTTP not 200 응답 에러 처리
143+
pass
144+
```
145+
146+
저장된 빌링키로 재결제합니다.
147+
148+
```python
149+
# 테스트용 값
150+
payload = {
151+
'customer_uid': '{고객 아이디}',
152+
'merchant_uid': '00000000',
153+
'amount': 5000,
154+
}
155+
try:
156+
response = iamport.pay_again(**payload)
157+
except KeyError:
158+
# 필수 값이 없을때 에러 처리
159+
pass
160+
except Iamport.ResponseError as e:
161+
# 응답 에러 처리
162+
pass
163+
except Iamport.HttpError as http_error:
164+
# HTTP not 200 응답 에러 처리
165+
pass
166+
```
167+
168+
- 정기 예약 결제
169+
정기 결제를 예약합니다.
170+
171+
```python
172+
# 테스트용 값
173+
payload = {
174+
'customer_uid': '{고객 아이디}',
175+
'schedules': [
176+
{
177+
'merchant_uid': 'test_merchant_01',
178+
# UNIX timestamp
179+
'schedule_at': 1478150985,
180+
'amount': 1004
181+
},
182+
{
183+
'merhcant_uid': 'test_merchant_02',
184+
# UNIX timestamp
185+
'schedule_at': 1478150985,
186+
'amount': 5000,
187+
'name': '{주문명}',
188+
'buyer_name': '{주문자명}',
189+
'buyer_email': '{주문자 이메일}',
190+
'buyer_tel': '{주문자 전화번호}',
191+
'buyer_addr': '{주문자 주소}',
192+
'buyer_postcode': '{주문자 우편번호}',
193+
},
194+
]
195+
}
196+
try:
197+
reponse = iamport.pay_schedule(**payload)
198+
except KeyError:
199+
# 필수 값이 없을때 에러 처리
200+
pass
201+
except Iamport.ResponseError as e:
202+
# 응답 에러 처리
203+
pass
204+
except Iamport.HttpError as http_error:
205+
# HTTP not 200 응답 에러 처리
206+
pass
207+
```
208+
209+
정기 결제 예약을 취소합니다.
210+
211+
```python
212+
# 테스트용 값 (merchant_uid 가 누락되면 customer_uid 에 대한 결제예약정보 일괄취소)
213+
payload = {
214+
'customer_uid': '{고객 아이디}',
215+
'merchant_uid': 'test_merchant_01',
216+
}
217+
try:
218+
response = iamport.pay_unschedule(**payload)
219+
except KeyError:
220+
# 필수 값이 없을때 에러 처리
221+
pass
222+
except Iamport.ResponseError as e:
223+
# 응답 에러 처리
224+
pass
225+
except Iamport.HttpError as http_error:
226+
# HTTP not 200 응답 에러 처리
227+
pass
228+
```
229+
230+
- 결제 사전 검증
231+
결제될 내역에 대한 사전정보를 등록합니다
232+
233+
```python
234+
# 테스트용 값
235+
amount = 12000
236+
mid = 'merchant_test'
237+
try:
238+
response = iamport.prepare(amount=amount, merchant_uid=mid)
239+
except Iamport.ResponseError as e:
240+
# 응답 에러 처리
241+
pass
242+
except Iamport.HttpError as http_error:
243+
# HTTP not 200 응답 에러 처리
244+
pass
245+
```
246+
247+
등록된 사전정보를 확인합니다
248+
249+
```python
250+
# 테스트용 값
251+
amount = 12000
252+
mid = 'merchant_test'
253+
try:
254+
result = iamport.prepare_validate(merchant_uid=mid, amount=amount)
255+
except Iamport.ResponseError as e:
256+
# 응답 에러 처리
257+
pass
258+
except Iamport.HttpError as http_error:
259+
# HTTP not 200 응답 에러 처리
260+
pass
261+
```
262+
263+
- 본인인증 결과 조회 및 관리
264+
본인인증결과를 조회합니다.
265+
266+
```python
267+
try:
268+
response = iamport.find_certification(imp_uid='{IMP UID}')
269+
except Iamport.ResponseError as e:
270+
# 응답 에러 처리
271+
pass
272+
except Iamport.HttpError as http_error:
273+
# HTTP not 200 응답 에러 처리
274+
pass
275+
```
276+
277+
본인인증결과를 아임포트에서 삭제합니다.
278+
279+
```python
280+
try:
281+
response = iamport.cancel_certification(imp_uid='{IMP UID}')
282+
except Iamport.ResponseError as e:
283+
# 응답 에러 처리
284+
pass
285+
except Iamport.HttpError as http_error:
286+
# HTTP not 200 응답 에러 처리
287+
pass
288+
```
289+
63290
기여하기
64291
------
65292
[iamport-rest-client-python 프로젝트 보드](https://github.com/iamport/iamport-rest-client-python/projects/1)`To do` 탭을 참고해주세요.

0 commit comments

Comments
 (0)