bootpay-backend 2.1.2__tar.gz → 2.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. {bootpay_backend-2.1.2/bootpay_backend.egg-info → bootpay_backend-2.2.0}/PKG-INFO +87 -52
  2. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/README.md +85 -50
  3. bootpay_backend-2.2.0/bootpay_backend/__init__.py +4 -0
  4. bootpay_backend-2.2.0/bootpay_backend/commerce/__init__.py +245 -0
  5. bootpay_backend-2.2.0/bootpay_backend/commerce/commerce_resource.py +179 -0
  6. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/__init__.py +22 -0
  7. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/invoice.py +61 -0
  8. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/order.py +74 -0
  9. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/order_cancel.py +77 -0
  10. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/order_subscription.py +132 -0
  11. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/order_subscription_adjustment.py +52 -0
  12. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/order_subscription_bill.py +60 -0
  13. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/product.py +93 -0
  14. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/user.py +114 -0
  15. bootpay_backend-2.2.0/bootpay_backend/commerce/modules/user_group.py +103 -0
  16. bootpay_backend-2.2.0/bootpay_backend/commerce/types/__init__.py +752 -0
  17. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0/bootpay_backend.egg-info}/PKG-INFO +86 -51
  18. bootpay_backend-2.2.0/bootpay_backend.egg-info/SOURCES.txt +26 -0
  19. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/setup.py +2 -2
  20. bootpay_backend-2.1.2/bootpay_backend/__init__.py +0 -3
  21. bootpay_backend-2.1.2/bootpay_backend.egg-info/SOURCES.txt +0 -13
  22. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/LICENSE +0 -0
  23. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend/bankcode.py +0 -0
  24. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend/rest_client.py +0 -0
  25. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend.egg-info/dependency_links.txt +0 -0
  26. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend.egg-info/not-zip-safe +0 -0
  27. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend.egg-info/requires.txt +0 -0
  28. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/bootpay_backend.egg-info/top_level.txt +0 -0
  29. {bootpay_backend-2.1.2 → bootpay_backend-2.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
- Name: bootpay-backend
3
- Version: 2.1.2
2
+ Name: bootpay_backend
3
+ Version: 2.2.0
4
4
  Summary: bootpay server side plugin for python
5
5
  Home-page: https://github.com/bootpay/backend-python/tree/2-x-development
6
6
  Author: bootpay <bootpay.co.kr@gmail.com>
@@ -37,41 +37,35 @@ Python 언어로 작성된 어플리케이션, 프레임워크 등에서 사용
37
37
  * PG 결제창 연동은 클라이언트 라이브러리에서 수행됩니다. (Javascript, Android, iOS, React Native, Flutter 등)
38
38
  * 결제 검증 및 취소, 빌링키 발급, 본인인증 등의 수행은 서버사이드에서 진행됩니다. (Java, PHP, Python, Ruby, Node.js, Go, ASP.NET 등)
39
39
 
40
-
41
- ## 기능
42
- 1. (부트페이 통신을 위한) 토큰 발급
43
- 2. 결제 단건 조회
44
- 3. 결제 취소 (전액 취소 / 부분 취소)
45
- 4. 신용카드 자동결제 (빌링결제)
46
-
47
- 4-1. 빌링키 발급
48
-
49
- 4-2. 발급된 빌링키로 결제 승인 요청
50
-
51
- 4-3. 발급된 빌링키로 결제 예약 요청
52
-
53
- 4-4. 발급된 빌링키로 결제 예약 - 취소 요청
54
-
55
- 4-5. 빌링키 삭제
56
-
57
- 4-6. 빌링키 조회
58
-
59
- 5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
60
- 6. 서버 승인 요청
61
- 7. 본인 인증 결과 조회
62
- 8. (에스크로 이용시) PG사로 배송정보 보내기
63
- 9. 현금영수증 발행
64
-
65
- 9-1. 현금영수증 발행
66
-
67
- 9-2. 현금영수증 발행 취소
68
-
69
- 9-3. (별건) 현금영수증 발행
70
-
71
- 9-4. (별건) 현금영수증 발행 취소
72
- ## pypi로 설치하기
73
-
74
-
40
+ ## 목차
41
+ - [사용하기](#사용하기)
42
+ - [1. 토큰 발급](#1-토큰-발급)
43
+ - [2. 결제 단건 조회](#2-결제-단건-조회)
44
+ - [3. 결제 취소 (전액 취소 / 부분 취소)](#3-결제-취소-전액-취소--부분-취소)
45
+ - [4. 자동/빌링/정기 결제](#4-자동빌링정기-결제)
46
+ - [4-1. 카드 빌링키 발급](#4-1-카드-빌링키-발급)
47
+ - [4-2. 계좌 빌링키 발급](#4-2-계좌-빌링키-발급)
48
+ - [4-3. 결제 요청하기](#4-3-결제-요청하기)
49
+ - [4-4. 결제 예약하기](#4-4-결제-예약하기)
50
+ - [4-5. 예약 조회하기](#4-5-예약-조회하기)
51
+ - [4-6. 예약 취소하기](#4-6-예약-취소하기)
52
+ - [4-7. 빌링키 삭제하기](#4-7-빌링키-삭제하기)
53
+ - [4-8. 빌링키 조회하기](#4-8-빌링키-조회하기)
54
+ - [5. 회원 토큰 발급요청](#5-회원-토큰-발급요청)
55
+ - [6. 서버 승인 요청](#6-서버-승인-요청)
56
+ - [7. 본인 인증 결과 조회](#7-본인-인증-결과-조회)
57
+ - [8. 에스크로 이용시 PG사로 배송정보 보내기](#8-에스크로-이용시-pg사로-배송정보-보내기)
58
+ - [9-1. 현금영수증 발행하기](#9-1-현금영수증-발행하기)
59
+ - [9-2. 현금영수증 발행 취소](#9-2-현금영수증-발행-취소)
60
+ - [9-3. 별건 현금영수증 발행](#9-3-별건-현금영수증-발행)
61
+ - [9-4. 별건 현금영수증 발행 취소](#9-4-별건-현금영수증-발행-취소)
62
+ - [Example 프로젝트](#example-프로젝트)
63
+ - [Documentation](#documentation)
64
+ - [기술문의](#기술문의)
65
+ - [License](#license)
66
+
67
+
68
+ ## pypi로 설치하기
75
69
  ```
76
70
  pip install bootpay-backend
77
71
  ```
@@ -91,7 +85,7 @@ if 'error_code' not in token:
91
85
  ```
92
86
 
93
87
 
94
- ## 1. (부트페이 통신을 위한) 토큰 발급
88
+ ## 1. 토큰 발급
95
89
 
96
90
  부트페이와 서버간 통신을 하기 위해서는 부트페이 서버로부터 토큰을 발급받아야 합니다.
97
91
  발급된 토큰은 30분간 유효하며, 최초 발급일로부터 30분이 지날 경우 토큰 발급 함수를 재호출 해주셔야 합니다.
@@ -137,7 +131,9 @@ if 'error_code' not in response:
137
131
  print(response)
138
132
  ```
139
133
 
140
- ## 4-1. 빌링키 발급
134
+ ## 4. 자동/빌링/정기 결제
135
+
136
+ ## 4-1. 카드 빌링키 발급
141
137
  REST API 방식으로 고객으로부터 카드 정보를 전달하여, PG사에게 빌링키를 발급받을 수 있습니다.
142
138
  발급받은 빌링키를 저장하고 있다가, 원하는 시점, 원하는 금액에 결제 승인 요청하여 좀 더 자유로운 결제시나리오에 적용이 가능합니다.
143
139
  * 비인증 정기결제(REST API) 방식을 지원하는 PG사만 사용 가능합니다.
@@ -158,7 +154,34 @@ if 'error_code' not in response:
158
154
  print(response)
159
155
  ```
160
156
 
161
- ## 4-2. 발급된 빌링키로 결제 승인 요청
157
+
158
+ ## 4-2. 계좌 빌링키 발급
159
+ REST API 방식으로 고객의 계좌 정보를 전달하여, PG사에게 빌링키 발급을 요청합니다. 요청 후 빌링키가 바로 발급되진 않고, 출금동의 확인 절차까지 진행해야 빌링키가 발급됩니다.
160
+ 먼저 빌링키를 요청합니다.
161
+ ```python
162
+ response = bootpay.request_subscribe_automatic_transfer_billing_key(
163
+ pg="나이스페이",
164
+ order_name='테스트결제',
165
+ subscription_id=str(time.time()),
166
+ price=1000,
167
+ username='홍길동',
168
+ bank_name='국민',
169
+ bank_account='67560123412342472',
170
+ identity_no='901014',
171
+ cash_receipt_identity_no='01012341234',
172
+ phone='01012341234'
173
+ )
174
+ ```
175
+
176
+ 이후 빌링키 발급 요청시 응답받은 receipt_id로, 출금 동의 확인을 요청합니다.
177
+ ```python
178
+ response = bootpay.publish_automatic_transfer_billing_key(
179
+ receipt_id="66542d4be86c1eedf6b17965",
180
+ )
181
+ ```
182
+
183
+
184
+ ## 4-3. 결제 요청하기
162
185
  발급된 빌링키로 원하는 시점에 원하는 금액으로 결제 승인 요청을 할 수 있습니다. 잔액이 부족하거나 도난 카드 등의 특별한 건이 아니면 PG사에서 결제를 바로 승인합니다.
163
186
 
164
187
  ```python
@@ -177,7 +200,7 @@ if 'error_code' not in response:
177
200
  # 요청 성공
178
201
  print(response)
179
202
  ```
180
- ## 4-3. 발급된 빌링키로 결제 예약 요청
203
+ ## 4-4. 결제 예약하기
181
204
  원하는 시점에 4-1로 결제 승인 요청을 보내도 되지만, 빌링키 발급 이후에 바로 결제 예약 할 수 있습니다. (빌링키당 최대 10건)
182
205
  ```python
183
206
  response = bootpay.subscribe_payment_reserve(
@@ -198,8 +221,15 @@ if 'error_code' not in response:
198
221
  print(response)
199
222
  ```
200
223
 
201
- ## 4-4. 발급된 빌링키로 결제 예약 - 취소 요청
202
- 빌링키로 예약된 결제건을 취소합니다.
224
+ ## 4-5. 예약 조회하기
225
+ 예약시 응답받은 reserveId로 예약된 건을 조회합니다.
226
+ ```python
227
+ response = bootpay.subscribe_payment_reserve_lookup('6490149ca575b40024f0b70d')
228
+ print(response)
229
+ ```
230
+
231
+ ## 4-6. 예약 취소하기
232
+ 예약시 응답받은 reserveId로 예약된 건을 취소합니다.
203
233
  ```python
204
234
  result = bootpay.cancel_subscribe_reserve(
205
235
  '612debc70d681b0039e6133d'
@@ -209,8 +239,8 @@ if 'error_code' not in response:
209
239
  print(response)
210
240
  ```
211
241
 
212
- ## 4-5. 빌링키 삭제
213
- 발급된 빌링키로 더 이상 사용되지 않도록, 삭제 요청합니다.
242
+ ## 4-7. 빌링키 삭제하기
243
+ 발급된 빌링키를 삭제합니다. 삭제하더라도 예약된 결제건은 취소되지 않습니다. 예약된 결제건 취소를 원하시면 예약 취소하기를 요청하셔야 합니다.
214
244
  ```python
215
245
  response = bootpay.destroy_billing_key(
216
246
  billing_key='62b2c3cfd01c7e001cc20a85',
@@ -220,19 +250,24 @@ if 'error_code' not in response:
220
250
  print(response)
221
251
  ```
222
252
 
223
- ## 4-6. 빌링키 조회
224
- (빌링키 발급 완료시 리턴받았던 receipt_id에 한정) 어떤 빌링키였는지 조회합니다.
253
+ ## 4-8. 빌링키 조회하기
254
+ 클라이언트에서 빌링키 발급시, 보안상 클라이언트 이벤트에 빌링키를 전달해주지 않습니다. 그러므로 이 API를 통해 조회해야 합니다.
255
+ 다음은 빌링키 발급 요청했던 receiptId 로 빌링키를 조회합니다.
225
256
  ```python
226
257
  response = bootpay.lookup_subscribe_billing_key('62b2c3c2d01c7e001bc20b10')
227
258
  if 'error_code' not in response:
228
259
  # 요청 성공
229
260
  print(response)
230
261
  ```
262
+ 아래는 billingKey로 조회합니다.
263
+ ```python
264
+ response = bootpay.lookup_billing_key('66542dfb4d18d5fc7b43e1b6')
265
+ print(response)
266
+ ```
231
267
 
232
-
233
- ## 5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
234
- (부트페이 단독) 부트페이에서 제공하는 간편결제창, 생체인증 기반의 결제 사용을 위해서는 개발사에서 회원 고유번호를 관리해야하며, 해당 회원에 대한 사용자 토큰을 발급합니다.
235
- 이 토큰값을 기반으로 클라이언트에서 결제요청 하시면 되겠습니다.
268
+ ## 5. 회원 토큰 발급요청
269
+ ㅇㅇ페이 사용을 위해 가맹점 회원의 토큰을 발급합니다. 가맹점은 회원의 고유번호를 관리해야합니다.
270
+ 이 토큰값을 기반으로 클라이언트에서 결제요청(payload.user_token) 하시면 되겠습니다.
236
271
  ```python
237
272
  result = bootpay.request_user_token({
238
273
  'user_id': '12341-234',
@@ -370,7 +405,7 @@ if 'error_code' not in token:
370
405
 
371
406
  ## Documentation
372
407
 
373
- [부트페이 개발매뉴얼](https://docs.bootpay.co.kr/next/)을 참조해주세요
408
+ [부트페이 개발매뉴얼](https://developer.bootpay.co.kr/)을 참조해주세요
374
409
 
375
410
  ## 기술문의
376
411
 
@@ -7,41 +7,35 @@ Python 언어로 작성된 어플리케이션, 프레임워크 등에서 사용
7
7
  * PG 결제창 연동은 클라이언트 라이브러리에서 수행됩니다. (Javascript, Android, iOS, React Native, Flutter 등)
8
8
  * 결제 검증 및 취소, 빌링키 발급, 본인인증 등의 수행은 서버사이드에서 진행됩니다. (Java, PHP, Python, Ruby, Node.js, Go, ASP.NET 등)
9
9
 
10
-
11
- ## 기능
12
- 1. (부트페이 통신을 위한) 토큰 발급
13
- 2. 결제 단건 조회
14
- 3. 결제 취소 (전액 취소 / 부분 취소)
15
- 4. 신용카드 자동결제 (빌링결제)
16
-
17
- 4-1. 빌링키 발급
18
-
19
- 4-2. 발급된 빌링키로 결제 승인 요청
20
-
21
- 4-3. 발급된 빌링키로 결제 예약 요청
22
-
23
- 4-4. 발급된 빌링키로 결제 예약 - 취소 요청
24
-
25
- 4-5. 빌링키 삭제
26
-
27
- 4-6. 빌링키 조회
28
-
29
- 5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
30
- 6. 서버 승인 요청
31
- 7. 본인 인증 결과 조회
32
- 8. (에스크로 이용시) PG사로 배송정보 보내기
33
- 9. 현금영수증 발행
34
-
35
- 9-1. 현금영수증 발행
36
-
37
- 9-2. 현금영수증 발행 취소
38
-
39
- 9-3. (별건) 현금영수증 발행
40
-
41
- 9-4. (별건) 현금영수증 발행 취소
42
- ## pypi로 설치하기
43
-
44
-
10
+ ## 목차
11
+ - [사용하기](#사용하기)
12
+ - [1. 토큰 발급](#1-토큰-발급)
13
+ - [2. 결제 단건 조회](#2-결제-단건-조회)
14
+ - [3. 결제 취소 (전액 취소 / 부분 취소)](#3-결제-취소-전액-취소--부분-취소)
15
+ - [4. 자동/빌링/정기 결제](#4-자동빌링정기-결제)
16
+ - [4-1. 카드 빌링키 발급](#4-1-카드-빌링키-발급)
17
+ - [4-2. 계좌 빌링키 발급](#4-2-계좌-빌링키-발급)
18
+ - [4-3. 결제 요청하기](#4-3-결제-요청하기)
19
+ - [4-4. 결제 예약하기](#4-4-결제-예약하기)
20
+ - [4-5. 예약 조회하기](#4-5-예약-조회하기)
21
+ - [4-6. 예약 취소하기](#4-6-예약-취소하기)
22
+ - [4-7. 빌링키 삭제하기](#4-7-빌링키-삭제하기)
23
+ - [4-8. 빌링키 조회하기](#4-8-빌링키-조회하기)
24
+ - [5. 회원 토큰 발급요청](#5-회원-토큰-발급요청)
25
+ - [6. 서버 승인 요청](#6-서버-승인-요청)
26
+ - [7. 본인 인증 결과 조회](#7-본인-인증-결과-조회)
27
+ - [8. 에스크로 이용시 PG사로 배송정보 보내기](#8-에스크로-이용시-pg사로-배송정보-보내기)
28
+ - [9-1. 현금영수증 발행하기](#9-1-현금영수증-발행하기)
29
+ - [9-2. 현금영수증 발행 취소](#9-2-현금영수증-발행-취소)
30
+ - [9-3. 별건 현금영수증 발행](#9-3-별건-현금영수증-발행)
31
+ - [9-4. 별건 현금영수증 발행 취소](#9-4-별건-현금영수증-발행-취소)
32
+ - [Example 프로젝트](#example-프로젝트)
33
+ - [Documentation](#documentation)
34
+ - [기술문의](#기술문의)
35
+ - [License](#license)
36
+
37
+
38
+ ## pypi로 설치하기
45
39
  ```
46
40
  pip install bootpay-backend
47
41
  ```
@@ -61,7 +55,7 @@ if 'error_code' not in token:
61
55
  ```
62
56
 
63
57
 
64
- ## 1. (부트페이 통신을 위한) 토큰 발급
58
+ ## 1. 토큰 발급
65
59
 
66
60
  부트페이와 서버간 통신을 하기 위해서는 부트페이 서버로부터 토큰을 발급받아야 합니다.
67
61
  발급된 토큰은 30분간 유효하며, 최초 발급일로부터 30분이 지날 경우 토큰 발급 함수를 재호출 해주셔야 합니다.
@@ -107,7 +101,9 @@ if 'error_code' not in response:
107
101
  print(response)
108
102
  ```
109
103
 
110
- ## 4-1. 빌링키 발급
104
+ ## 4. 자동/빌링/정기 결제
105
+
106
+ ## 4-1. 카드 빌링키 발급
111
107
  REST API 방식으로 고객으로부터 카드 정보를 전달하여, PG사에게 빌링키를 발급받을 수 있습니다.
112
108
  발급받은 빌링키를 저장하고 있다가, 원하는 시점, 원하는 금액에 결제 승인 요청하여 좀 더 자유로운 결제시나리오에 적용이 가능합니다.
113
109
  * 비인증 정기결제(REST API) 방식을 지원하는 PG사만 사용 가능합니다.
@@ -128,7 +124,34 @@ if 'error_code' not in response:
128
124
  print(response)
129
125
  ```
130
126
 
131
- ## 4-2. 발급된 빌링키로 결제 승인 요청
127
+
128
+ ## 4-2. 계좌 빌링키 발급
129
+ REST API 방식으로 고객의 계좌 정보를 전달하여, PG사에게 빌링키 발급을 요청합니다. 요청 후 빌링키가 바로 발급되진 않고, 출금동의 확인 절차까지 진행해야 빌링키가 발급됩니다.
130
+ 먼저 빌링키를 요청합니다.
131
+ ```python
132
+ response = bootpay.request_subscribe_automatic_transfer_billing_key(
133
+ pg="나이스페이",
134
+ order_name='테스트결제',
135
+ subscription_id=str(time.time()),
136
+ price=1000,
137
+ username='홍길동',
138
+ bank_name='국민',
139
+ bank_account='67560123412342472',
140
+ identity_no='901014',
141
+ cash_receipt_identity_no='01012341234',
142
+ phone='01012341234'
143
+ )
144
+ ```
145
+
146
+ 이후 빌링키 발급 요청시 응답받은 receipt_id로, 출금 동의 확인을 요청합니다.
147
+ ```python
148
+ response = bootpay.publish_automatic_transfer_billing_key(
149
+ receipt_id="66542d4be86c1eedf6b17965",
150
+ )
151
+ ```
152
+
153
+
154
+ ## 4-3. 결제 요청하기
132
155
  발급된 빌링키로 원하는 시점에 원하는 금액으로 결제 승인 요청을 할 수 있습니다. 잔액이 부족하거나 도난 카드 등의 특별한 건이 아니면 PG사에서 결제를 바로 승인합니다.
133
156
 
134
157
  ```python
@@ -147,7 +170,7 @@ if 'error_code' not in response:
147
170
  # 요청 성공
148
171
  print(response)
149
172
  ```
150
- ## 4-3. 발급된 빌링키로 결제 예약 요청
173
+ ## 4-4. 결제 예약하기
151
174
  원하는 시점에 4-1로 결제 승인 요청을 보내도 되지만, 빌링키 발급 이후에 바로 결제 예약 할 수 있습니다. (빌링키당 최대 10건)
152
175
  ```python
153
176
  response = bootpay.subscribe_payment_reserve(
@@ -168,8 +191,15 @@ if 'error_code' not in response:
168
191
  print(response)
169
192
  ```
170
193
 
171
- ## 4-4. 발급된 빌링키로 결제 예약 - 취소 요청
172
- 빌링키로 예약된 결제건을 취소합니다.
194
+ ## 4-5. 예약 조회하기
195
+ 예약시 응답받은 reserveId로 예약된 건을 조회합니다.
196
+ ```python
197
+ response = bootpay.subscribe_payment_reserve_lookup('6490149ca575b40024f0b70d')
198
+ print(response)
199
+ ```
200
+
201
+ ## 4-6. 예약 취소하기
202
+ 예약시 응답받은 reserveId로 예약된 건을 취소합니다.
173
203
  ```python
174
204
  result = bootpay.cancel_subscribe_reserve(
175
205
  '612debc70d681b0039e6133d'
@@ -179,8 +209,8 @@ if 'error_code' not in response:
179
209
  print(response)
180
210
  ```
181
211
 
182
- ## 4-5. 빌링키 삭제
183
- 발급된 빌링키로 더 이상 사용되지 않도록, 삭제 요청합니다.
212
+ ## 4-7. 빌링키 삭제하기
213
+ 발급된 빌링키를 삭제합니다. 삭제하더라도 예약된 결제건은 취소되지 않습니다. 예약된 결제건 취소를 원하시면 예약 취소하기를 요청하셔야 합니다.
184
214
  ```python
185
215
  response = bootpay.destroy_billing_key(
186
216
  billing_key='62b2c3cfd01c7e001cc20a85',
@@ -190,19 +220,24 @@ if 'error_code' not in response:
190
220
  print(response)
191
221
  ```
192
222
 
193
- ## 4-6. 빌링키 조회
194
- (빌링키 발급 완료시 리턴받았던 receipt_id에 한정) 어떤 빌링키였는지 조회합니다.
223
+ ## 4-8. 빌링키 조회하기
224
+ 클라이언트에서 빌링키 발급시, 보안상 클라이언트 이벤트에 빌링키를 전달해주지 않습니다. 그러므로 이 API를 통해 조회해야 합니다.
225
+ 다음은 빌링키 발급 요청했던 receiptId 로 빌링키를 조회합니다.
195
226
  ```python
196
227
  response = bootpay.lookup_subscribe_billing_key('62b2c3c2d01c7e001bc20b10')
197
228
  if 'error_code' not in response:
198
229
  # 요청 성공
199
230
  print(response)
200
231
  ```
232
+ 아래는 billingKey로 조회합니다.
233
+ ```python
234
+ response = bootpay.lookup_billing_key('66542dfb4d18d5fc7b43e1b6')
235
+ print(response)
236
+ ```
201
237
 
202
-
203
- ## 5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
204
- (부트페이 단독) 부트페이에서 제공하는 간편결제창, 생체인증 기반의 결제 사용을 위해서는 개발사에서 회원 고유번호를 관리해야하며, 해당 회원에 대한 사용자 토큰을 발급합니다.
205
- 이 토큰값을 기반으로 클라이언트에서 결제요청 하시면 되겠습니다.
238
+ ## 5. 회원 토큰 발급요청
239
+ ㅇㅇ페이 사용을 위해 가맹점 회원의 토큰을 발급합니다. 가맹점은 회원의 고유번호를 관리해야합니다.
240
+ 이 토큰값을 기반으로 클라이언트에서 결제요청(payload.user_token) 하시면 되겠습니다.
206
241
  ```python
207
242
  result = bootpay.request_user_token({
208
243
  'user_id': '12341-234',
@@ -340,7 +375,7 @@ if 'error_code' not in token:
340
375
 
341
376
  ## Documentation
342
377
 
343
- [부트페이 개발매뉴얼](https://docs.bootpay.co.kr/next/)을 참조해주세요
378
+ [부트페이 개발매뉴얼](https://developer.bootpay.co.kr/)을 참조해주세요
344
379
 
345
380
  ## 기술문의
346
381
 
@@ -0,0 +1,4 @@
1
+ from .rest_client import BootpayBackend
2
+ from .commerce import BootpayCommerce
3
+
4
+ __all__ = ['BootpayBackend', 'BootpayCommerce']
@@ -0,0 +1,245 @@
1
+ # Commerce API
2
+ from .commerce_resource import BootpayCommerceResource
3
+ from .modules import (
4
+ UserModule,
5
+ UserGroupModule,
6
+ ProductModule,
7
+ InvoiceModule,
8
+ OrderModule,
9
+ OrderCancelModule,
10
+ OrderSubscriptionModule,
11
+ OrderSubscriptionBillModule,
12
+ OrderSubscriptionAdjustmentModule
13
+ )
14
+ from .types import *
15
+
16
+
17
+ class BootpayCommerce(BootpayCommerceResource):
18
+ """
19
+ Bootpay Commerce API 클라이언트
20
+
21
+ 사용 예시:
22
+ ```python
23
+ from bootpay_backend.commerce import BootpayCommerce
24
+
25
+ commerce = BootpayCommerce(
26
+ client_key='your_client_key',
27
+ secret_key='your_secret_key',
28
+ mode='production' # 'development', 'stage', 'production'
29
+ )
30
+
31
+ # 액세스 토큰 발급
32
+ token_response = commerce.get_access_token()
33
+
34
+ # 사용자 목록 조회
35
+ users = commerce.user.list({'page': 1, 'limit': 10})
36
+
37
+ # Role 설정 (메서드 체이닝 지원)
38
+ commerce.as_manager()
39
+ products = commerce.product.list()
40
+ ```
41
+ """
42
+
43
+ def __init__(self, client_key: str = None, secret_key: str = None, mode: str = 'production'):
44
+ """
45
+ BootpayCommerce 초기화
46
+
47
+ :param client_key: Commerce API 클라이언트 키
48
+ :param secret_key: Commerce API 시크릿 키
49
+ :param mode: 환경 ('development', 'stage', 'production')
50
+ """
51
+ super().__init__()
52
+ if client_key and secret_key:
53
+ self.set_configuration(client_key, secret_key, mode)
54
+ self._init_modules()
55
+
56
+ def _init_modules(self):
57
+ """모듈 초기화"""
58
+ self.user = UserModule(self)
59
+ self.user_group = UserGroupModule(self)
60
+ self.product = ProductModule(self)
61
+ self.invoice = InvoiceModule(self)
62
+ self.order = OrderModule(self)
63
+ self.order_cancel = OrderCancelModule(self)
64
+ self.order_subscription = OrderSubscriptionModule(self)
65
+ self.order_subscription_bill = OrderSubscriptionBillModule(self)
66
+ self.order_subscription_adjustment = OrderSubscriptionAdjustmentModule(self)
67
+
68
+ def get_access_token(self):
69
+ """
70
+ 액세스 토큰 발급
71
+ client_key/secret_key로 인증
72
+
73
+ :return: {'access_token': str, 'expired_at': str}
74
+ """
75
+ response = self.post_with_basic_auth('request/token', {
76
+ 'client_key': self.client_key,
77
+ 'secret_key': self.secret_key
78
+ })
79
+
80
+ if response.get('access_token'):
81
+ self.set_token(response['access_token'])
82
+
83
+ return response
84
+
85
+ def with_token(self):
86
+ """
87
+ 토큰을 발급받아 설정합니다. (메서드 체이닝 지원)
88
+
89
+ :return: self
90
+ """
91
+ self.get_access_token()
92
+ return self
93
+
94
+ def get_current_token(self) -> str:
95
+ """
96
+ 현재 설정된 토큰을 반환합니다.
97
+
98
+ :return: 현재 토큰
99
+ """
100
+ return self.get_token()
101
+
102
+ def has_token(self) -> bool:
103
+ """
104
+ 토큰이 설정되어 있는지 확인합니다.
105
+
106
+ :return: 토큰 설정 여부
107
+ """
108
+ token = self.get_token()
109
+ return token is not None and token != ''
110
+
111
+ def with_role(self, role: str):
112
+ """
113
+ 현재 role을 설정합니다. (메서드 체이닝 지원)
114
+
115
+ :param role: 설정할 role
116
+ :return: self
117
+ """
118
+ self.set_role(role)
119
+ return self
120
+
121
+ def as_user(self):
122
+ """
123
+ 일반 사용자 role로 설정합니다.
124
+
125
+ :return: self
126
+ """
127
+ return self.with_role('user')
128
+
129
+ def as_manager(self):
130
+ """
131
+ 매니저 role로 설정합니다.
132
+
133
+ :return: self
134
+ """
135
+ return self.with_role('manager')
136
+
137
+ def as_partner(self):
138
+ """
139
+ 파트너 role로 설정합니다.
140
+
141
+ :return: self
142
+ """
143
+ return self.with_role('partner')
144
+
145
+ def as_vendor(self):
146
+ """
147
+ 벤더 role로 설정합니다.
148
+
149
+ :return: self
150
+ """
151
+ return self.with_role('vendor')
152
+
153
+ def as_supervisor(self):
154
+ """
155
+ 슈퍼바이저 role로 설정합니다.
156
+
157
+ :return: self
158
+ """
159
+ return self.with_role('supervisor')
160
+
161
+ def get_current_role(self) -> str:
162
+ """
163
+ 현재 role을 반환합니다.
164
+
165
+ :return: 현재 role
166
+ """
167
+ return self.get_role()
168
+
169
+ def clear_role(self):
170
+ """
171
+ role을 기본값(user)으로 초기화합니다.
172
+
173
+ :return: self
174
+ """
175
+ self.set_role('user')
176
+ return self
177
+
178
+
179
+ __all__ = [
180
+ 'BootpayCommerce',
181
+ 'BootpayCommerceResource',
182
+ 'UserModule',
183
+ 'UserGroupModule',
184
+ 'ProductModule',
185
+ 'InvoiceModule',
186
+ 'OrderModule',
187
+ 'OrderCancelModule',
188
+ 'OrderSubscriptionModule',
189
+ 'OrderSubscriptionBillModule',
190
+ 'OrderSubscriptionAdjustmentModule',
191
+ # Types
192
+ 'ListParams',
193
+ 'CommerceAddress',
194
+ 'CommerceAddressInstruction',
195
+ 'CommerceUserGroupRef',
196
+ 'CommerceUser',
197
+ 'UserListParams',
198
+ 'UserTokenResponse',
199
+ 'UserLoginResponse',
200
+ 'CommerceUserGroup',
201
+ 'CORPORATE_TYPE_INDIVIDUAL',
202
+ 'CORPORATE_TYPE_CORPORATE',
203
+ 'UserGroupListParams',
204
+ 'UserGroupLimitParams',
205
+ 'UserGroupAggregateTransactionParams',
206
+ 'CommerceProductOption',
207
+ 'CommerceSubscriptionSetting',
208
+ 'CommerceProduct',
209
+ 'ProductListParams',
210
+ 'ProductStatusParams',
211
+ 'INVOICE_SEND_TYPE_SMS',
212
+ 'INVOICE_SEND_TYPE_KAKAO',
213
+ 'INVOICE_SEND_TYPE_EMAIL',
214
+ 'INVOICE_SEND_TYPE_PUSH',
215
+ 'CommerceInvoiceItem',
216
+ 'CommerceInvoice',
217
+ 'InvoiceListParams',
218
+ 'InvoiceCreateParams',
219
+ 'SUBSCRIPTION_BILLING_TYPE_NONE',
220
+ 'SUBSCRIPTION_BILLING_TYPE_EACH',
221
+ 'SUBSCRIPTION_BILLING_TYPE_GROUP',
222
+ 'CommerceChosenProductOption',
223
+ 'CommerceOrderCancellationRequestHistory',
224
+ 'CommerceOrder',
225
+ 'OrderListParams',
226
+ 'OrderCancelListParams',
227
+ 'CancelProduct',
228
+ 'CancelOrderSubscriptionBill',
229
+ 'RequestCancelParameter',
230
+ 'OrderCancelParams',
231
+ 'OrderCancelActionParams',
232
+ 'CommerceOrderCancelRequestHistory',
233
+ 'CommerceOrderSubscription',
234
+ 'OrderSubscriptionListParams',
235
+ 'OrderSubscriptionUpdateParams',
236
+ 'OrderSubscriptionPauseParams',
237
+ 'OrderSubscriptionResumeParams',
238
+ 'OrderSubscriptionTerminationParams',
239
+ 'CalcTerminateFeeResponse',
240
+ 'CommerceOrderSubscriptionBill',
241
+ 'OrderSubscriptionBillListParams',
242
+ 'SUBSCRIPTION_ADJUSTMENT_TYPE_PERIOD_DISCOUNT',
243
+ 'CommerceOrderSubscriptionAdjustment',
244
+ 'OrderSubscriptionAdjustmentUpdateParams',
245
+ ]