1
1
I'mport; REST Client
2
2
--------------------
3
3
4
- <div align =" center " >
5
-
6
4
[ ![ Python Versions] ( https://img.shields.io/pypi/pyversions/iamport-rest-client )] ( https://pypi.org/project/iamport-rest-client/ )
7
5
[ ![ PyPI Release (latest by date)] ( https://img.shields.io/pypi/v/iamport-rest-client?color=blue )] ( https://pypi.org/project/iamport-rest-client/ )
8
6
[ ![ 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 )
9
7
[ ![ GitHub LICENSE] ( https://img.shields.io/github/license/iamport/iamport-rest-client-python )] ( https://github.com/iamport/iamport-rest-client-python/blob/master/LICENSE )
10
8
[ ![ 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 )
11
9
12
- </div >
13
10
14
11
설명
15
12
---
16
13
> Python 개발자를 위한 [ 아임포트 REST API] ( https://api.iamport.kr/ ) 연동 패키지입니다.
17
14
18
- 기능
15
+ 주요 기능
19
16
---
20
17
1 . 결제 정보 찾기
21
18
2 . 가격 확인
@@ -26,7 +23,7 @@ I'mport; REST Client
26
23
27
24
설치
28
25
---
29
- > 아임포트를 설치하실 때 아나콘다를 이용한 아임포트 파이썬 가상환경 구성을 추천합니다.
26
+ > 아임포트를 설치하실 때 아나콘다를 이용한 아임포트 파이썬 가상환경 구성을 추천합니다.
30
27
[ 선택 사항] 아나콘다 환경에서 작업하신다면, 우선 아래의 절차를 진행해주세요.
31
28
``` bash
32
29
# 아임포트 패키지를 위한 새로운 파이썬 가상환경을 생성해주세요. 이 때, 파이썬 버전은 최소 3.6 이상을 선택해주세요.
@@ -36,14 +33,23 @@ conda create --name iamport python=3.6
36
33
conda activate pymodi
37
34
```
38
35
39
- 아래의 커맨드를 실행하여 최신버전의 아임포트를 설치해주세요.
36
+ 아래의 커맨드를 실행하여 최신버전의 아임포트 패키지를 설치해주세요.
40
37
``` bash
41
38
python -m pip install iamport-rest-client --upgrade
42
39
```
43
40
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
+ -------
47
53
``` python
48
54
from iamport import Iamport
49
55
@@ -60,6 +66,227 @@ iamport = Iamport(
60
66
iamport = Iamport(imp_key = ' {발급받은 키}' , imp_secret = ' {발급받은 시크릿}' )
61
67
```
62
68
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
+
63
290
기여하기
64
291
------
65
292
[ iamport-rest-client-python 프로젝트 보드] ( https://github.com/iamport/iamport-rest-client-python/projects/1 ) 의 ` To do ` 탭을 참고해주세요.
0 commit comments