bootpay-backend-ruby 2.0.1 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9348175a0c99f9031fba5141d005e831b4fba423df0685bcf21c3755c8a1c422
4
- data.tar.gz: bdfc1ab6bcc7ba9d7c38436f934317d83e2e7dcadad0f50d6cf99767619b1b25
3
+ metadata.gz: 38d5c0abc185377ab50ee35741f6292bc7b7d120af37a4e7a4381284aaa96386
4
+ data.tar.gz: f79e975b04aeca94fd7bb2868e0e87997be642c6f3e39176a1aa67c6c6a394f8
5
5
  SHA512:
6
- metadata.gz: 9ea8a4434755486b0a6b60bbdde1d30f09b68947051922298589d693212115a3e002937c3e705b7c3ac8917f9434902fb977a3f6a5e61952d4e919fbe50b7e9f
7
- data.tar.gz: 547a71731723b95f18cb30d89a151fe3b10731379e163566eec9833ef26e70f93a32f5bbef23df4ad92baf702802ade2d8395ec74dae2c3b08ff53ff44f416bb
6
+ metadata.gz: 7dbc65ca723151fda2fb613338ebe3c9e6207f36fe1039532e3d7340ca1cbdbb6bc0f3ca11180cca5b84b964e5a358bd7601713309f9e522ee6a51513d0d393c
7
+ data.tar.gz: 8bfa409bbadad4e0aeddd681e3a465786be62d5c325c21ba899a98a0610c599ce4a66c5151eb4cde2c80b3fe1f93eeb5dedee084058202d61b52357d79e22f04
data/.gitignore CHANGED
@@ -14,4 +14,6 @@
14
14
  *.gem
15
15
  Gemfile.lock
16
16
  /spec/bootpay/request_rest_billing_key_spec.rb
17
- .DS_Store
17
+ /spec/bootpay/__stage_test_unit_spec.rb
18
+ /spec/bootpay/__development_test_unit_spec.rb
19
+ .DS_Store
data/README.md CHANGED
@@ -13,15 +13,23 @@ Ruby 언어로 작성된 어플리케이션, 프레임워크 등에서 사용가
13
13
  2. 결제 단건 조회
14
14
  3. 결제 취소 (전액 취소 / 부분 취소)
15
15
  4. 신용카드 자동결제 (빌링결제)
16
+
16
17
  4-1. 빌링키 발급
18
+
17
19
  4-2. 발급된 빌링키로 결제 승인 요청
20
+
18
21
  4-3. 발급된 빌링키로 결제 예약 요청
22
+
19
23
  4-4. 발급된 빌링키로 결제 예약 - 취소 요청
24
+
20
25
  4-5. 빌링키 삭제
21
- 4-6. 해당 결제건의 빌링키 조회 (빌링)
26
+
27
+ 4-6. 빌링키 조회
28
+
22
29
  5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
23
30
  6. 서버 승인 요청
24
31
  7. 본인 인증 결과 조회
32
+ 8. (에스크로 이용시) PG사로 배송정보 보내기
25
33
 
26
34
  ## Gem으로 설치하기
27
35
 
@@ -75,7 +83,7 @@ api.request_access_token.success?
75
83
 
76
84
 
77
85
  ## 2. 결제 단건 조회
78
- 결제창 및 정기결제에서 승인/취소된 결제건에 대하여 올바른 결제건인지 서버간 통신으로 결제검증을 합니다.
86
+ 승인/취소된 결제건을 조회합니다. 위변조된 결제인지 검증하기 위해 사용됩니다.
79
87
  ```ruby
80
88
  api = Bootpay::RestClient.new(
81
89
  application_id: '59bfc738e13f337dbd6ca48a',
@@ -118,7 +126,7 @@ end
118
126
  ```
119
127
 
120
128
  ## 4-1. 빌링키 발급
121
- REST API 방식으로 고객으로부터 카드 정보를 전달하여, PG사에게 빌링키를 발급받을 수 있습니다.
129
+ REST API 방식으로 고객의 카드 정보를 전달하여, PG사로부터 빌링키를 발급받을 수 있습니다. (부트페이에서는 PG사의 빌링키를 개발사에게 전달하지 않고, 부트페이가 내부적으로 발급한 빌링키를 전달합니다)
122
130
  발급받은 빌링키를 저장하고 있다가, 원하는 시점, 원하는 금액에 결제 승인 요청하여 좀 더 자유로운 결제시나리오에 적용이 가능합니다.
123
131
  * 비인증 정기결제(REST API) 방식을 지원하는 PG사만 사용 가능합니다.
124
132
  ```ruby
@@ -168,7 +176,7 @@ if api.request_access_token.success?
168
176
  end
169
177
  ```
170
178
  ## 4-3. 발급된 빌링키로 결제 예약 요청
171
- 원하는 시점에 4-1로 결제 승인 요청을 보내도 되지만, 빌링키 발급 이후에 바로 결제 예약 할 수 있습니다. (빌링키당 최대 5건)
179
+ 원하는 시점에 4-1로 결제 승인 요청을 보내도 되지만, 빌링키 발급 이후에 바로 결제 예약 할 수 있습니다. (빌링키당 최대 10건)
172
180
  ```ruby
173
181
  api = Bootpay::RestClient.new(
174
182
  application_id: '59bfc738e13f337dbd6ca48a',
@@ -219,7 +227,7 @@ if api.request_access_token.success?
219
227
  end
220
228
  ```
221
229
  ## 4-5. 빌링키 삭제
222
- 발급된 빌링키로 더 이상 사용되지 않도록, 삭제 요청합니다.
230
+ 발급된 빌링키가 더 이상 사용되지 않도록, 삭제 요청합니다.
223
231
  ```ruby
224
232
  api = Bootpay::RestClient.new(
225
233
  application_id: '59bfc738e13f337dbd6ca48a',
@@ -233,8 +241,9 @@ if api.request_access_token.success?
233
241
  end
234
242
  ```
235
243
 
236
- ## 4-6. 해당 결제건의 빌링키 조회 (빌링)
237
- ```java
244
+ ## 4-6. 빌링키 조회
245
+ (빌링키 발급 완료시 리턴받았던 receipt_id에 한정) 어떤 빌링키였는지 조회합니다.
246
+ ```ruby
238
247
  api = Bootpay::RestClient.new(
239
248
  application_id: '59bfc738e13f337dbd6ca48a',
240
249
  private_key: 'pDc0NwlkEX3aSaHTp/PPL/i8vn5E/CqRChgyEp/gHD0='
@@ -248,7 +257,7 @@ end
248
257
  ```
249
258
 
250
259
  ## 5. (생체인증, 비밀번호 결제를 위한) 구매자 토큰 발급
251
- (부트페이 단독) 부트페이에서 제공하는 간편결제창, 생체인증 기반의 결제 사용을 위해서는 개발사에서 회원 고유번호를 관리해야하며, 해당 회원에 대한 사용자 토큰을 발급합니다.
260
+ 부트페이에서 제공하는 간편결제창, 생체인증 기반의 결제 사용을 위해서는 개발사에서 회원 고유번호를 관리해야하며, 해당 회원에 대한 사용자 토큰을 발급합니다.
252
261
  이 토큰값을 기반으로 클라이언트에서 결제요청 하시면 되겠습니다.
253
262
  ```ruby
254
263
  api = Bootpay::RestClient.new(
@@ -302,6 +311,33 @@ if api.request_access_token.success?
302
311
  end
303
312
  ```
304
313
 
314
+
315
+ ## 8. (에스크로 이용시) PG사로 배송정보 보내기
316
+ 현금 거래에 한해 구매자의 안전거래를 보장하는 방법으로, 판매자와 구매자의 온라인 전자상거래가 원활하게 이루어질 수 있도록 중계해주는 매매보호서비스입니다. 국내법에 따라 전자상거래에서 반드시 적용이 되어 있어야합니다. PG에서도 에스크로 결제를 지원하며, 에스크로 결제 사용을 원하시면 PG사 가맹시에 에스크로결제를 미리 얘기하고나서 진행을 하시는 것이 수월합니다.
317
+
318
+ PG사로 배송정보( 이니시스, KCP만 지원 )를 보내서 에스크로 상태를 변경하는 API 입니다.
319
+ ```ruby
320
+ api = Bootpay::RestClient.new(
321
+ application_id: '59bfc738e13f337dbd6ca48a',
322
+ private_key: 'pDc0NwlkEX3aSaHTp/PPL/i8vn5E/CqRChgyEp/gHD0=',
323
+ mode: 'development'
324
+ )
325
+ if api.request_access_token.success?
326
+ response = api.shipping_start(
327
+ receipt_id: "62a818cf1fc19203154a8f2e",
328
+ tracking_number: '123456',
329
+ delivery_corp: 'CJ대한통운',
330
+ user: {
331
+ username: '강훈',
332
+ phone: '01095735114',
333
+ address: '경기도 화성시 동탄기흥로 277번길 59',
334
+ zipcode: '08490'
335
+ }
336
+ )
337
+ print response.data.to_json
338
+ end
339
+ ```
340
+
305
341
  ## Example 프로젝트
306
342
 
307
343
  [적용한 샘플 프로젝트](https://github.com/bootpay/backend-ruby-example)을 참조해주세요
@@ -11,5 +11,57 @@ module Bootpay::Concern::Authenticate
11
11
  uri: "certificate/#{receipt_id}"
12
12
  )
13
13
  end
14
+
15
+ # REST API로 본인인증 요청하기
16
+ # Comment by Gosomi
17
+ # Date: 2022-11-02
18
+ def request_authentication(pg:, method:, username:, identity_no:, carrier:, phone:, site_url:,
19
+ authenticate_type: 'sms', order_name: '', authentication_id: '', extra: {}, user: {})
20
+ request(
21
+ method: :post,
22
+ uri: 'request/authentication',
23
+ payload: {
24
+ pg: pg,
25
+ method: method,
26
+ username: username,
27
+ identity_no: identity_no,
28
+ carrier: carrier,
29
+ phone: phone,
30
+ site_url: site_url,
31
+ authenticate_type: authenticate_type,
32
+ order_name: order_name,
33
+ authentication_id: authentication_id,
34
+ extra: extra,
35
+ user: user
36
+ }
37
+ )
38
+ end
39
+
40
+ # 본인인증 승인결과를 가져온다
41
+ # Comment by Gosomi
42
+ # Date: 2022-11-03
43
+ def confirm_authentication(receipt_id:, otp: nil)
44
+ request(
45
+ method: :post,
46
+ uri: 'authenticate/confirm',
47
+ payload: {
48
+ receipt_id: receipt_id,
49
+ otp: otp
50
+ }
51
+ )
52
+ end
53
+
54
+ # 다시 SMS/알람 보내기
55
+ # Comment by Gosomi
56
+ # Date: 2022-11-03
57
+ def realarm_authentication(receipt_id)
58
+ request(
59
+ method: :post,
60
+ uri: 'authenticate/realarm',
61
+ payload: {
62
+ receipt_id: receipt_id
63
+ }
64
+ )
65
+ end
14
66
  end
15
67
  end
@@ -41,5 +41,40 @@ module Bootpay::Concern::CashReceipt
41
41
  }
42
42
  )
43
43
  end
44
+
45
+ # 결제된 계좌이체/가상계좌 결제건중 누락된 현금영수증을 발행해주는 API
46
+ # Comment by Gosomi
47
+ # Date: 2022-07-21
48
+ def cash_receipt_publish_on_receipt(receipt_id:, username:, email:, phone:, identity_no:, currency: 'WON', cash_receipt_type: '소득공제')
49
+ request(
50
+ method: :post,
51
+ uri: "request/receipt/cash/publish",
52
+ payload: {
53
+ receipt_id: receipt_id,
54
+ username: username,
55
+ email: email,
56
+ phone: phone,
57
+ identity_no: identity_no,
58
+ currency: currency,
59
+ cash_receipt_type: cash_receipt_type
60
+ }
61
+ )
62
+ end
63
+
64
+ # 결제에 포함된 현금영수증 취소
65
+ # Comment by Gosomi
66
+ # Date: 2022-07-21
67
+ def cash_receipt_cancel_on_receipt(receipt_id:, cancel_username:, cancel_message:)
68
+ request(
69
+ method: :delete,
70
+ uri: "request/receipt/cash/cancel/#{receipt_id}",
71
+ headers: {
72
+ params: {
73
+ cancel_username: cancel_username,
74
+ cancel_message: cancel_message
75
+ }
76
+ }
77
+ )
78
+ end
44
79
  end
45
80
  end
@@ -6,7 +6,7 @@ module Bootpay::Concern::Escrow
6
6
  # Comment by Gosomi
7
7
  # Date: 2021-12-14
8
8
  def shipping_start(receipt_id:, tracking_number:, delivery_corp:, shipping_prepayment: true,
9
- shipping_day: 5, user: nil, company: {})
9
+ shipping_day: 5, user: nil, company: {}, redirect_url: nil)
10
10
  request(
11
11
  method: :put,
12
12
  uri: "escrow/shipping/start/#{receipt_id}",
@@ -16,7 +16,8 @@ module Bootpay::Concern::Escrow
16
16
  shipping_prepayment: shipping_prepayment,
17
17
  shipping_day: shipping_day,
18
18
  user: user,
19
- company: company
19
+ company: company,
20
+ redirect_url: redirect_url
20
21
  }
21
22
  )
22
23
  end
@@ -5,10 +5,20 @@ module Bootpay::Concern::Payment
5
5
  # 결제 정보 가져오기
6
6
  # Comment by Gosomi
7
7
  # Date: 2021-12-08
8
- def receipt_payment(receipt_id)
8
+ def receipt_payment(receipt_id, lookup_user_data = false)
9
9
  request(
10
10
  method: :get,
11
- uri: "receipt/#{receipt_id}"
11
+ uri: "receipt/#{receipt_id}?lookup_user_data=#{lookup_user_data}",
12
+ )
13
+ end
14
+
15
+ # OrderId로 결제 정보 조회하기
16
+ # Comment by GOSOMI
17
+ # @date: 2024-01-27
18
+ def lookup_order_id(order_id)
19
+ request(
20
+ method: :get,
21
+ uri: "lookup/order/#{order_id}",
12
22
  )
13
23
  end
14
24
 
@@ -28,19 +38,79 @@ module Bootpay::Concern::Payment
28
38
  # Comment by Gosomi
29
39
  # Date: 2021-05-21
30
40
  def cancel_payment(cancel_id: nil, receipt_id:, cancel_price: nil, cancel_tax_free: nil, cancel_username: '시스템', cancel_message: '결제취소',
31
- refund: { bank_account: nil, bank_username: nil, bank_code: nil }, items: nil)
41
+ cancel_requester: '관리자', refund: { bank_account: nil, bank_username: nil, bank_code: nil }, items: nil)
32
42
  request(
33
43
  uri: 'cancel',
34
44
  payload:
35
45
  {
36
- cancel_id: cancel_id.presence || SecureRandom.uuid,
37
- receipt_id: receipt_id,
38
- cancel_price: cancel_price,
39
- cancel_tax_free: cancel_tax_free,
40
- cancel_username: cancel_username,
41
- cancel_message: cancel_message,
42
- refund: refund,
43
- items: items
46
+ cancel_id: cancel_id.presence || SecureRandom.uuid,
47
+ receipt_id: receipt_id,
48
+ cancel_price: cancel_price,
49
+ cancel_tax_free: cancel_tax_free,
50
+ cancel_username: cancel_username,
51
+ cancel_message: cancel_message,
52
+ cancel_requester: cancel_requester,
53
+ refund: refund,
54
+ items: items
55
+ }.compact
56
+ )
57
+ end
58
+
59
+ # REST API로 결제 요청하기
60
+ # Comment by Gosomi
61
+ # Date: 2023-03-28
62
+ def request_payment(platform_application_id:, pg:, method: nil, price:, tax_free: 0, order_name:, order_id:, user_token: nil, uuid: nil, sk: nil,
63
+ ti: 0, tk: nil, items: [], extra: {}, user: {}, agent: nil)
64
+ rand_uuid = SecureRandom.uuid
65
+ request(
66
+ uri: 'request/payment',
67
+ payload:
68
+ {
69
+ platform_application_id: platform_application_id,
70
+ pg: pg,
71
+ method: method,
72
+ price: price,
73
+ tax_free: tax_free,
74
+ order_name: order_name,
75
+ order_id: order_id,
76
+ user_token: user_token,
77
+ uuid: uuid.presence || rand_uuid,
78
+ sk: sk.presence || "#{rand_uuid}-#{Time.current.to_i}",
79
+ ti: ti,
80
+ tk: tk.presence || "#{rand_uuid}-#{Time.current.to_i}",
81
+ items: items,
82
+ extra: extra,
83
+ user: user,
84
+ __agent: agent,
85
+ ver: Bootpay::RestClient::SDK_VERSION,
86
+ sdk_version: Bootpay::V2_VERSION
87
+ }
88
+ )
89
+ end
90
+
91
+ # 가상계좌 bulk 발급 요청
92
+ # Comment by GOSOMI
93
+ # @date: 2023-08-08
94
+ def request_virtual_account_bulk(pg:, order_id:, order_name:, currency: 'KRW', price:, tax_free: nil, bank_code:, bank_account:,
95
+ bank_username:, cash_receipt_type: nil, identity_no: nil, user: {}, metadata: {}, extra: {})
96
+ request(
97
+ uri: 'request/virtual-account/bulk',
98
+ payload:
99
+ {
100
+ pg: pg,
101
+ order_id: order_id,
102
+ order_name: order_name,
103
+ currency: currency,
104
+ price: price,
105
+ tax_free: tax_free,
106
+ bank_code: bank_code,
107
+ bank_account: bank_account,
108
+ bank_username: bank_username,
109
+ cash_receipt_type: cash_receipt_type,
110
+ identity_no: identity_no,
111
+ user: user,
112
+ metadata: metadata,
113
+ extra: extra
44
114
  }.compact
45
115
  )
46
116
  end
@@ -6,7 +6,8 @@ module Bootpay::Concern::Reseller
6
6
  # Comment by Gosomi
7
7
  # Date: 2022-01-05
8
8
  def create_seller(company_alias:, company_name:, email: nil, regist_no: nil, owner_name: nil,
9
- phone: nil, zip: nil, address1: nil, address2: nil)
9
+ phone: nil, zip: nil, address1: nil, address2: nil, app_name: nil, primary_key:, resources: nil,
10
+ send_email: false)
10
11
  request(
11
12
  uri: 'reseller/seller',
12
13
  payload: {
@@ -18,7 +19,34 @@ module Bootpay::Concern::Reseller
18
19
  phone: phone,
19
20
  zip: zip,
20
21
  address1: address1,
21
- address2: address2
22
+ address2: address2,
23
+ app_name: app_name,
24
+ primary_key: primary_key,
25
+ resources: resources,
26
+ send_email: send_email
27
+ }
28
+ )
29
+ end
30
+
31
+ # 테스트로 생성한 계정을 모두 삭제한다
32
+ # Comment by GOSOMI
33
+ # @date: 2023-10-11
34
+ def test_destroy_provider(provider_id)
35
+ request(
36
+ uri: "reseller/test/seller/#{provider_id}",
37
+ method: :delete
38
+ )
39
+ end
40
+
41
+ # Resource 정보를 갱신한다
42
+ # Comment by GOSOMI
43
+ # @date: 2023-10-12
44
+ def update_seller_payment_resources(app_id:, resources:)
45
+ request(
46
+ uri: "reseller/seller/app/resource/#{app_id}",
47
+ method: :put,
48
+ payload: {
49
+ resources: resources
22
50
  }
23
51
  )
24
52
  end
@@ -10,9 +10,12 @@ module Bootpay::Concern::Rest
10
10
  def request(method: :post, uri:, payload: {}, headers: {})
11
11
  response = HTTP.headers(
12
12
  {
13
- Authorization: "Bearer #{@token}",
14
- content_type: 'application/json',
15
- accept: 'application/json'
13
+ Authorization: "Bearer #{@token}",
14
+ content_type: 'application/json',
15
+ accept: 'application/json',
16
+ bootpay_api_version: @api_version,
17
+ bootpay_sdk_version: Bootpay::V2_VERSION,
18
+ bootpay_sdk_type: '300'
16
19
  }.merge!(headers).compact
17
20
  ).send(
18
21
  method.to_sym,
@@ -20,7 +23,7 @@ module Bootpay::Concern::Rest
20
23
  json: payload
21
24
  )
22
25
  Bootpay::Response.new(
23
- response.status.success?,
26
+ response.status.to_i == 200,
24
27
  JSON.parse(response.body.to_s, symbolize_names: true)
25
28
  )
26
29
  rescue Exception => e
@@ -0,0 +1,15 @@
1
+ module Bootpay::Concern::Seller
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ # 현재 사용가능한 결제수단 목록 보기
6
+ # Comment by Gosomi
7
+ # Date: 2022-08-19
8
+ def lookup_payment_methods
9
+ request(
10
+ uri: 'seller/payment/method',
11
+ method: :get
12
+ )
13
+ end
14
+ end
15
+ end
@@ -16,11 +16,12 @@ module Bootpay::Concern::Subscription
16
16
  # Comment by Gosomi
17
17
  # Date: 2021-11-02
18
18
  def request_subscribe_card_payment(billing_key:, order_name:, price:, tax_free: 0, card_quota: '00',
19
- card_interest: nil, order_id:, items: [], user: {}, extra: {})
19
+ card_interest: nil, order_id:, items: [], user: {}, extra: {}, metadata: {})
20
20
  request(
21
21
  uri: 'subscribe/payment',
22
22
  payload: {
23
23
  billing_key: billing_key,
24
+ metadata: metadata,
24
25
  order_name: order_name,
25
26
  price: price,
26
27
  tax_free: tax_free,
@@ -57,6 +58,26 @@ module Bootpay::Concern::Subscription
57
58
  )
58
59
  end
59
60
 
61
+ # 예약결제 조회 기능
62
+ # Comment by Gosomi
63
+ # Date: 2023-03-08
64
+ def subscribe_payment_reserve_lookup(reserve_id)
65
+ request(
66
+ method: :get,
67
+ uri: "subscribe/payment/reserve/#{reserve_id}"
68
+ )
69
+ end
70
+
71
+ # 자동결제 조회하기
72
+ # Comment by Gosomi
73
+ # Date: 2023-02-24
74
+ def subscribe_lookup(reserve_id)
75
+ request(
76
+ method: :get,
77
+ uri: "subscribe/payment/reserve/#{reserve_id}"
78
+ )
79
+ end
80
+
60
81
  # 자동결제 예약 취소
61
82
  # Comment by Gosomi
62
83
  # Date: 2022-04-21
@@ -102,6 +123,49 @@ module Bootpay::Concern::Subscription
102
123
  )
103
124
  end
104
125
 
126
+ # 빌링키 발급 요청하기
127
+ # Comment by GOSOMI
128
+ # @date: 2024-01-26
129
+ def request_subscribe_automatic_transfer_billing_key(pg:, order_name:, price: nil, tax_free: nil, subscription_id:,
130
+ extra: {}, user: {}, metadata: {}, auth_type: 'ARS', username:,
131
+ bank_name:, bank_account:, identity_no:, cash_receipt_type: 1,
132
+ cash_receipt_identity_no: nil, phone:)
133
+ request(
134
+ uri: 'request/subscribe/automatic-transfer',
135
+ payload: {
136
+ pg: pg,
137
+ order_name: order_name,
138
+ subscription_id: subscription_id,
139
+ price: price,
140
+ tax_free: tax_free,
141
+ extra: extra,
142
+ user: user,
143
+ metadata: metadata,
144
+ auth_type: auth_type,
145
+ username: username,
146
+ bank_name: bank_name,
147
+ bank_account: bank_account,
148
+ identity_no: identity_no,
149
+ cash_receipt_type: cash_receipt_type,
150
+ cash_receipt_identity_no: cash_receipt_identity_no,
151
+ phone: phone
152
+ }
153
+ )
154
+ end
155
+
156
+ # ARS나 본인인증 이후 빌링키 발급
157
+ # Comment by GOSOMI
158
+ # @date: 2024-01-26
159
+ def publish_automatic_transfer_billing_key(receipt_id:)
160
+ request(
161
+ method: :post,
162
+ uri: "request/subscribe/automatic-transfer/publish",
163
+ payload: {
164
+ receipt_id: receipt_id
165
+ }
166
+ )
167
+ end
168
+
105
169
  # 정기결제를 계속해서 진행한다
106
170
  # Comment by Gosomi
107
171
  # Date: 2022-01-18
@@ -111,5 +175,15 @@ module Bootpay::Concern::Subscription
111
175
  uri: "request/subscribe/#{receipt_id}"
112
176
  )
113
177
  end
178
+
179
+ # 빌링키로 조회하는 기능을 만든다
180
+ # Comment by GOSOMI
181
+ # @date: 2023-09-14
182
+ def lookup_billing_key(billing_key)
183
+ request(
184
+ method: :get,
185
+ uri: "billing_key/#{billing_key}"
186
+ )
187
+ end
114
188
  end
115
189
  end
@@ -8,6 +8,7 @@ module Bootpay
8
8
  require_relative 'concern/reseller'
9
9
  require_relative 'concern/rest'
10
10
  require_relative 'concern/sdk'
11
+ require_relative 'concern/seller'
11
12
  require_relative 'concern/subscription'
12
13
  require_relative 'concern/token'
13
14
  require_relative 'concern/user_token'
@@ -21,6 +22,7 @@ module Bootpay
21
22
  include Reseller
22
23
  include Rest
23
24
  include Sdk
25
+ include Seller
24
26
  include Subscription
25
27
  include Token
26
28
  include UserToken
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Bootpay
3
- V2_VERSION = "2.0.1"
3
+ V2_VERSION = "2.0.4"
4
4
  end
@@ -15,14 +15,32 @@ module Bootpay
15
15
  development: 'https://dev-api.bootpay.co.kr/v2',
16
16
  stage: 'https://stage-api.bootpay.co.kr/v2',
17
17
  production: 'https://api.bootpay.co.kr/v2'
18
- }.freeze
18
+ }
19
+
20
+ SDK_VERSION = '4.2.1'
19
21
 
20
22
  def initialize(application_id:, private_key:, mode: 'production')
21
23
  @application_id = application_id
22
24
  @private_key = private_key
23
25
  @mode = mode.presence || 'production'
24
26
  @token = nil
27
+ @api_version = SDK_VERSION
25
28
  raise ArgumentError, "개발환경 mode는 development, stage, production 중에서 선택이 가능합니다." if API[@mode.to_sym].blank?
26
29
  end
30
+
31
+ # API URL을 변경
32
+ # Comment by GOSOMI
33
+ # @date: 2023-05-26
34
+ def set_api_url(url)
35
+ API[@mode.to_sym] = url
36
+ end
37
+
38
+ # API 버전을 설정한다
39
+ # Comment by Gosomi
40
+ # Date: 2022-07-29
41
+ def set_api_version(version)
42
+ raise ArgumentError, 'API Version은 4.0.0 이상만 설정이 가능합니다.' if version < '4.0.0'
43
+ @api_version = version
44
+ end
27
45
  end
28
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootpay-backend-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - gosomi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2024-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,17 +66,18 @@ files:
66
66
  - lib/bootpay/concern/reseller.rb
67
67
  - lib/bootpay/concern/rest.rb
68
68
  - lib/bootpay/concern/sdk.rb
69
+ - lib/bootpay/concern/seller.rb
69
70
  - lib/bootpay/concern/subscription.rb
70
71
  - lib/bootpay/concern/token.rb
71
72
  - lib/bootpay/concern/user_token.rb
72
73
  - lib/bootpay/concern/webhook.rb
73
74
  - lib/bootpay/version.rb
74
75
  - lib/response.rb
75
- homepage:
76
+ homepage:
76
77
  licenses:
77
78
  - MIT
78
79
  metadata: {}
79
- post_install_message:
80
+ post_install_message:
80
81
  rdoc_options: []
81
82
  require_paths:
82
83
  - lib
@@ -91,8 +92,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
92
  - !ruby/object:Gem::Version
92
93
  version: '0'
93
94
  requirements: []
94
- rubygems_version: 3.0.3.1
95
- signing_key:
95
+ rubygems_version: 3.3.3
96
+ signing_key:
96
97
  specification_version: 4
97
98
  summary: Bootpay Ruby REST Client
98
99
  test_files: []