bootpay 1.2.0 → 3.1.0

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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -9
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +107 -21
  5. data/CODE_OF_CONDUCT.md +1 -1
  6. data/Gemfile +1 -3
  7. data/LICENSE.txt +1 -1
  8. data/README.md +309 -196
  9. data/Rakefile +3 -3
  10. data/bin/console +1 -1
  11. data/bootpay.gemspec +22 -20
  12. data/lib/bootpay/bootpay-rest-client.rb +51 -0
  13. data/lib/bootpay/concern/authenticate.rb +69 -0
  14. data/lib/bootpay/concern/cash_receipt.rb +83 -0
  15. data/lib/bootpay/concern/easy.rb +18 -0
  16. data/lib/bootpay/concern/escrow.rb +25 -0
  17. data/lib/bootpay/concern/payment.rb +126 -0
  18. data/lib/bootpay/concern/reseller.rb +97 -0
  19. data/lib/bootpay/concern/rest.rb +56 -0
  20. data/lib/bootpay/concern/sdk.rb +52 -0
  21. data/lib/bootpay/concern/seller.rb +15 -0
  22. data/lib/bootpay/concern/service.rb +15 -0
  23. data/lib/bootpay/concern/subscription.rb +211 -0
  24. data/lib/bootpay/concern/token.rb +33 -0
  25. data/lib/bootpay/concern/user_token.rb +23 -0
  26. data/lib/bootpay/concern/wallet.rb +20 -0
  27. data/lib/bootpay/concern/webhook.rb +18 -0
  28. data/lib/bootpay/concern.rb +35 -0
  29. data/lib/bootpay-backend-ruby.rb +6 -0
  30. data/lib/bootpay.rb +10 -66
  31. data/lib/bootpay_storage/bootpay-storage-rest-client.rb +46 -0
  32. data/lib/bootpay_storage/concern/csv.rb +18 -0
  33. data/lib/bootpay_storage/concern/image.rb +30 -0
  34. data/lib/bootpay_storage/concern/rest.rb +176 -0
  35. data/lib/bootpay_storage/concern/token.rb +9 -0
  36. data/lib/bootpay_storage/concern.rb +12 -0
  37. data/lib/bootpay_storage/response.rb +14 -0
  38. data/lib/bootpay_store/bootpay-store-rest-client.rb +62 -0
  39. data/lib/bootpay_store/concern/alimtalk_message.rb +67 -0
  40. data/lib/bootpay_store/concern/alimtalk_official.rb +63 -0
  41. data/lib/bootpay_store/concern/alimtalk_optout.rb +72 -0
  42. data/lib/bootpay_store/concern/alimtalk_send.rb +92 -0
  43. data/lib/bootpay_store/concern/alimtalk_sender.rb +105 -0
  44. data/lib/bootpay_store/concern/alimtalk_template.rb +215 -0
  45. data/lib/bootpay_store/concern/alimtalk_webhook.rb +84 -0
  46. data/lib/bootpay_store/concern/faq.rb +97 -0
  47. data/lib/bootpay_store/concern/inquiry.rb +138 -0
  48. data/lib/bootpay_store/concern/invoice.rb +102 -0
  49. data/lib/bootpay_store/concern/mall_setting.rb +385 -0
  50. data/lib/bootpay_store/concern/notice.rb +100 -0
  51. data/lib/bootpay_store/concern/order.rb +74 -0
  52. data/lib/bootpay_store/concern/order_subscription.rb +391 -0
  53. data/lib/bootpay_store/concern/payment.rb +119 -0
  54. data/lib/bootpay_store/concern/product.rb +175 -0
  55. data/lib/bootpay_store/concern/product_qna.rb +149 -0
  56. data/lib/bootpay_store/concern/product_review.rb +145 -0
  57. data/lib/bootpay_store/concern/rest.rb +139 -0
  58. data/lib/bootpay_store/concern/store.rb +31 -0
  59. data/lib/bootpay_store/concern/supervisor.rb +211 -0
  60. data/lib/bootpay_store/concern/token.rb +24 -0
  61. data/lib/bootpay_store/concern/user.rb +325 -0
  62. data/lib/bootpay_store/concern/user_group.rb +221 -0
  63. data/lib/bootpay_store/concern/webhook.rb +17 -0
  64. data/lib/bootpay_store/concern.rb +55 -0
  65. data/lib/bootpay_store/response.rb +14 -0
  66. data/lib/version.rb +9 -0
  67. metadata +82 -49
  68. data/.DS_Store +0 -0
  69. data/.env.example +0 -23
  70. data/lib/.DS_Store +0 -0
  71. data/lib/bootpay/.DS_Store +0 -0
  72. data/lib/bootpay/authentication.rb +0 -61
  73. data/lib/bootpay/automatic_transfer.rb +0 -56
  74. data/lib/bootpay/billing.rb +0 -157
  75. data/lib/bootpay/cancel.rb +0 -29
  76. data/lib/bootpay/cash_receipt.rb +0 -77
  77. data/lib/bootpay/commerce/cart.rb +0 -20
  78. data/lib/bootpay/commerce/category.rb +0 -39
  79. data/lib/bootpay/commerce/commerce_resource.rb +0 -196
  80. data/lib/bootpay/commerce/coupon.rb +0 -41
  81. data/lib/bootpay/commerce/invoice.rb +0 -46
  82. data/lib/bootpay/commerce/order.rb +0 -61
  83. data/lib/bootpay/commerce/order_cancel.rb +0 -52
  84. data/lib/bootpay/commerce/order_subscription.rb +0 -117
  85. data/lib/bootpay/commerce/order_subscription_adjustment.rb +0 -29
  86. data/lib/bootpay/commerce/order_subscription_bill.rb +0 -50
  87. data/lib/bootpay/commerce/order_subscription_request.rb +0 -60
  88. data/lib/bootpay/commerce/point.rb +0 -36
  89. data/lib/bootpay/commerce/product.rb +0 -63
  90. data/lib/bootpay/commerce/store.rb +0 -21
  91. data/lib/bootpay/commerce/user.rb +0 -75
  92. data/lib/bootpay/commerce/user_group.rb +0 -70
  93. data/lib/bootpay/easy.rb +0 -25
  94. data/lib/bootpay/escrow.rb +0 -24
  95. data/lib/bootpay/link.rb +0 -60
  96. data/lib/bootpay/naverpay.rb +0 -17
  97. data/lib/bootpay/payment_resource.rb +0 -31
  98. data/lib/bootpay/reseller.rb +0 -12
  99. data/lib/bootpay/rest.rb +0 -46
  100. data/lib/bootpay/submit.rb +0 -20
  101. data/lib/bootpay/token.rb +0 -33
  102. data/lib/bootpay/verification.rb +0 -55
  103. data/lib/bootpay/version.rb +0 -25
  104. data/lib/bootpay/wallet.rb +0 -56
  105. data/lib/bootpay_commerce.rb +0 -152
  106. /data/lib/{response.rb → bootpay/response.rb} +0 -0
@@ -0,0 +1,221 @@
1
+ module BootpayStore::Concern::UserGroup
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ # 등록된 User Group 정보를 가져온다
6
+ # Comment by GOSOMI
7
+ # @date: 2025-06-18
8
+ def user_groups(keyword: nil, page: 1, limit: 20, corporate_type: 2, idempotency_key: nil)
9
+ request(
10
+ uri: 'user-groups',
11
+ method: :get,
12
+ headers: {
13
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
14
+ 'Bootpay-Role' => 'user'
15
+ },
16
+ params:
17
+ {
18
+ keyword: keyword,
19
+ page: page,
20
+ limit: limit,
21
+ corporate_type: corporate_type
22
+ }.compact
23
+ )
24
+ end
25
+
26
+ # user group 정보를 가져온다
27
+ # Comment by GOSOMI
28
+ # @date: 2025-06-18
29
+ def lookup_user_group(user_group_id:, idempotency_key: nil)
30
+ request(
31
+ uri: "user-groups/#{user_group_id}",
32
+ method: :get,
33
+ headers: {
34
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
35
+ 'Bootpay-Role' => 'user'
36
+ }
37
+ )
38
+ end
39
+
40
+ # 새로운 User Group을 생성한다
41
+ # Comment by GOSOMI
42
+ # @date: 2025-06-18
43
+ def create_user_group(uid: nil, phone: nil, email: nil, address: nil, address_detail: nil, zipcode: nil,
44
+ corporate_type: nil, bank: nil, bank_code: nil, company_name: nil, business_number: nil,
45
+ registration_number: nil, business_type: nil, business_category: nil, ceo_name: nil, auth_company: nil,
46
+ manager_name: nil, manager_phone: nil, manager_email: nil, pccc: nil, use_subscription_aggregate_transaction: nil,
47
+ subscription_month_day: nil, subscription_week_day: nil, purchase_limit: nil, subscribed_limit: nil,
48
+ limit_message: nil, idempotency_key: nil)
49
+ request(
50
+ uri: 'user-groups',
51
+ method: :post,
52
+ headers: {
53
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
54
+ 'Bootpay-Role' => 'user'
55
+ },
56
+ payload:
57
+ {
58
+ uid: uid,
59
+ phone: phone,
60
+ email: email,
61
+ address: address,
62
+ address_detail: address_detail,
63
+ corporate_type: corporate_type,
64
+ bank: bank,
65
+ bank_code: bank_code,
66
+ zipcode: zipcode,
67
+ company_name: company_name,
68
+ business_number: business_number,
69
+ registration_number: registration_number,
70
+ business_type: business_type,
71
+ business_category: business_category,
72
+ ceo_name: ceo_name,
73
+ auth_company: auth_company,
74
+ manager_name: manager_name,
75
+ manager_phone: manager_phone,
76
+ manager_email: manager_email,
77
+ pccc: pccc,
78
+ use_subscription_aggregate_transaction: use_subscription_aggregate_transaction,
79
+ subscription_month_day: subscription_month_day,
80
+ subscription_week_day: subscription_week_day,
81
+ purchase_limit: purchase_limit,
82
+ subscribed_limit: subscribed_limit,
83
+ limit_message: limit_message
84
+ }.compact
85
+ )
86
+ end
87
+
88
+ # UserGroup 정보를 갱신한다
89
+ # Comment by GOSOMI
90
+ # @date: 2025-06-18
91
+ def update_user_group(user_group_id:, phone: nil, email: nil, address: nil, address_detail: nil, zipcode: nil,
92
+ corporate_type: nil, bank: nil, bank_code: nil, company_name: nil, business_number: nil,
93
+ registration_number: nil, business_type: nil, business_category: nil, ceo_name: nil, auth_company: nil,
94
+ manager_name: nil, manager_phone: nil, manager_email: nil, pccc: nil, use_subscription_aggregate_transaction: nil,
95
+ subscription_month_day: nil, subscription_week_day: nil, purchase_limit: nil, subscribed_limit: nil,
96
+ limit_message: nil, idempotency_key: nil)
97
+ request(
98
+ uri: "user-groups/#{user_group_id}",
99
+ method: :put,
100
+ headers: {
101
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
102
+ 'Bootpay-Role' => 'user'
103
+ },
104
+ payload:
105
+ {
106
+ phone: phone,
107
+ email: email,
108
+ address: address,
109
+ address_detail: address_detail,
110
+ corporate_type: corporate_type,
111
+ bank: bank,
112
+ bank_code: bank_code,
113
+ zipcode: zipcode,
114
+ company_name: company_name,
115
+ business_number: business_number,
116
+ registration_number: registration_number,
117
+ business_type: business_type,
118
+ business_category: business_category,
119
+ ceo_name: ceo_name,
120
+ auth_company: auth_company,
121
+ manager_name: manager_name,
122
+ manager_phone: manager_phone,
123
+ manager_email: manager_email,
124
+ pccc: pccc,
125
+ use_subscription_aggregate_transaction: use_subscription_aggregate_transaction,
126
+ subscription_month_day: subscription_month_day,
127
+ subscription_week_day: subscription_week_day,
128
+ purchase_limit: purchase_limit,
129
+ subscribed_limit: subscribed_limit,
130
+ limit_message: limit_message
131
+ }.compact
132
+ )
133
+ end
134
+
135
+ # UserGroup 정보를 삭제한다
136
+ # Comment by GOSOMI
137
+ # @date: 2025-06-19
138
+ def delete_user_group(user_group_id:, idempotency_key: nil)
139
+ request(
140
+ uri: "user-groups/#{user_group_id}",
141
+ method: :delete,
142
+ headers: {
143
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
144
+ 'Bootpay-Role' => 'user'
145
+ }
146
+ )
147
+ end
148
+
149
+ # 사용자 그룹에 사용자를 추가한다
150
+ def add_user_to_group(user_group_id:, user_id:, idempotency_key: nil)
151
+ request(
152
+ uri: "user-groups/#{user_group_id}/user",
153
+ method: :post,
154
+ headers: {
155
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
156
+ 'Bootpay-Role' => 'manager'
157
+ },
158
+ payload: { user_id: user_id }
159
+ )
160
+ end
161
+
162
+ # 사용자 그룹에서 사용자를 제거한다
163
+ def delete_user_from_group(user_group_id:, user_id:, idempotency_key: nil)
164
+ request(
165
+ uri: "user-groups/#{user_group_id}/user/#{user_id}",
166
+ method: :delete,
167
+ headers: {
168
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
169
+ 'Bootpay-Role' => 'manager'
170
+ }
171
+ )
172
+ end
173
+
174
+ # 그룹 구매한도를 설정한다 (PUT /v1/user-groups/:id/limit)
175
+ # @comment_by Claude (alfred)
176
+ # @date: 26-08-14
177
+ # ⚠️ update_user_group 으로는 한도가 절대 반영되지 않는다.
178
+ # user_groups_controller#update 가 use_limit/limit_message/limit_month_purchase/limit_week_purchase 를
179
+ # params.except! 로 명시적으로 제거하기 때문 — 한도는 이 전용 라우트로만 바뀐다.
180
+ # 서버 scope: manager:limit
181
+ def user_group_limit(user_group_id:, use_limit: nil, limit_month_purchase: nil,
182
+ limit_week_purchase: nil, limit_message: nil, idempotency_key: nil)
183
+ request(
184
+ uri: "user-groups/#{user_group_id}/limit",
185
+ method: :put,
186
+ headers: {
187
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
188
+ 'Bootpay-Role' => 'manager'
189
+ },
190
+ payload: {
191
+ use_limit: use_limit,
192
+ limit_month_purchase: limit_month_purchase,
193
+ limit_week_purchase: limit_week_purchase,
194
+ limit_message: limit_message
195
+ }.compact
196
+ )
197
+ end
198
+
199
+ # 그룹 구독 합산청구(정산주기) 설정을 변경한다 (PUT /v1/user-groups/:id/aggregate-transaction)
200
+ # @comment_by Claude (alfred)
201
+ # @date: 26-08-14
202
+ # update_user_group 에도 같은 이름의 인자가 있지만 서버는 이 전용 라우트에서만 처리한다.
203
+ def user_group_aggregate_transaction(user_group_id:, use_subscription_aggregate_transaction: nil,
204
+ subscription_month_day: nil, subscription_week_day: nil,
205
+ idempotency_key: nil)
206
+ request(
207
+ uri: "user-groups/#{user_group_id}/aggregate-transaction",
208
+ method: :put,
209
+ headers: {
210
+ 'Idempotency-Key' => idempotency_key.presence || SecureRandom.uuid,
211
+ 'Bootpay-Role' => 'manager'
212
+ },
213
+ payload: {
214
+ use_subscription_aggregate_transaction: use_subscription_aggregate_transaction,
215
+ subscription_month_day: subscription_month_day,
216
+ subscription_week_day: subscription_week_day
217
+ }.compact
218
+ )
219
+ end
220
+ end
221
+ end
@@ -0,0 +1,17 @@
1
+ module BootpayStore::Concern::Webhook
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ # 테스트 웹훅을 발송한다 (POST /v1/test-webhooks)
6
+ # @comment_by Claude (alfred)
7
+ # @date: 26-03-05
8
+ def send_test_webhook(header_content_type: nil)
9
+ request(
10
+ uri: 'webhook/test',
11
+ payload: {
12
+ header_content_type: header_content_type
13
+ }.compact
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,55 @@
1
+ module BootpayStore
2
+ module Concern
3
+ require_relative 'concern/alimtalk_message'
4
+ require_relative 'concern/alimtalk_official'
5
+ require_relative 'concern/alimtalk_optout'
6
+ require_relative 'concern/alimtalk_send'
7
+ require_relative 'concern/alimtalk_sender'
8
+ require_relative 'concern/alimtalk_template'
9
+ require_relative 'concern/alimtalk_webhook'
10
+ require_relative 'concern/faq'
11
+ require_relative 'concern/inquiry'
12
+ require_relative 'concern/invoice'
13
+ require_relative 'concern/mall_setting'
14
+ require_relative 'concern/notice'
15
+ require_relative 'concern/order'
16
+ require_relative 'concern/order_subscription'
17
+ require_relative 'concern/payment'
18
+ require_relative 'concern/product'
19
+ require_relative 'concern/product_qna'
20
+ require_relative 'concern/product_review'
21
+ require_relative 'concern/rest'
22
+ require_relative 'concern/supervisor'
23
+ require_relative 'concern/token'
24
+ require_relative 'concern/user'
25
+ require_relative 'concern/user_group'
26
+ require_relative 'concern/store'
27
+ require_relative 'concern/webhook'
28
+
29
+ include AlimtalkMessage
30
+ include AlimtalkOfficial
31
+ include AlimtalkOptout
32
+ include AlimtalkSend
33
+ include AlimtalkSender
34
+ include AlimtalkTemplate
35
+ include AlimtalkWebhook
36
+ include Faq
37
+ include Inquiry
38
+ include Invoice
39
+ include MallSetting
40
+ include Notice
41
+ include Order
42
+ include OrderSubscription
43
+ include Payment
44
+ include Product
45
+ include ProductQna
46
+ include ProductReview
47
+ include Rest
48
+ include Supervisor
49
+ include Token
50
+ include User
51
+ include UserGroup
52
+ include Store
53
+ include Webhook
54
+ end
55
+ end
@@ -0,0 +1,14 @@
1
+ module BootpayStore
2
+ class Response
3
+ attr_reader :data
4
+
5
+ def initialize(success = true, data = {})
6
+ @success = success
7
+ @data = data
8
+ end
9
+
10
+ def success?
11
+ @success
12
+ end
13
+ end
14
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bootpay
4
+ VERSION = "3.1.0"
5
+
6
+ # 구 이름(`bootpay-backend-ruby`) 시절 gemspec·코드가 참조하던 상수.
7
+ # 값이 갈리지 않도록 VERSION 을 그대로 가리킨다.
8
+ V2_VERSION = VERSION
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - bootpay
7
+ - gosomi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-14 00:00:00.000000000 Z
11
+ date: 2026-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,15 +38,27 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: 결제검증 및 취소 등의 기능 연동을 위한 bootpay ruby 플러그인 입니다.
41
+ - !ruby/object:Gem::Dependency
42
+ name: addressable
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: 부트페이 공식 Ruby 서버사이드 모듈입니다. 결제조회, 취소, 빌링키 결제시 사용됩니다.
42
56
  email:
43
- - bootpay.co.kr@gmail.com
57
+ - gosomi@bootpay.co.kr
44
58
  executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
48
- - ".DS_Store"
49
- - ".env.example"
50
62
  - ".gitignore"
51
63
  - ".rspec"
52
64
  - CHANGELOG.md
@@ -58,49 +70,70 @@ files:
58
70
  - bin/console
59
71
  - bin/setup
60
72
  - bootpay.gemspec
61
- - lib/.DS_Store
73
+ - lib/bootpay-backend-ruby.rb
62
74
  - lib/bootpay.rb
63
- - lib/bootpay/.DS_Store
64
- - lib/bootpay/authentication.rb
65
- - lib/bootpay/automatic_transfer.rb
66
- - lib/bootpay/billing.rb
67
- - lib/bootpay/cancel.rb
68
- - lib/bootpay/cash_receipt.rb
69
- - lib/bootpay/commerce/cart.rb
70
- - lib/bootpay/commerce/category.rb
71
- - lib/bootpay/commerce/commerce_resource.rb
72
- - lib/bootpay/commerce/coupon.rb
73
- - lib/bootpay/commerce/invoice.rb
74
- - lib/bootpay/commerce/order.rb
75
- - lib/bootpay/commerce/order_cancel.rb
76
- - lib/bootpay/commerce/order_subscription.rb
77
- - lib/bootpay/commerce/order_subscription_adjustment.rb
78
- - lib/bootpay/commerce/order_subscription_bill.rb
79
- - lib/bootpay/commerce/order_subscription_request.rb
80
- - lib/bootpay/commerce/point.rb
81
- - lib/bootpay/commerce/product.rb
82
- - lib/bootpay/commerce/store.rb
83
- - lib/bootpay/commerce/user.rb
84
- - lib/bootpay/commerce/user_group.rb
85
- - lib/bootpay/easy.rb
86
- - lib/bootpay/escrow.rb
87
- - lib/bootpay/link.rb
88
- - lib/bootpay/naverpay.rb
89
- - lib/bootpay/payment_resource.rb
90
- - lib/bootpay/reseller.rb
91
- - lib/bootpay/rest.rb
92
- - lib/bootpay/submit.rb
93
- - lib/bootpay/token.rb
94
- - lib/bootpay/verification.rb
95
- - lib/bootpay/version.rb
96
- - lib/bootpay/wallet.rb
97
- - lib/bootpay_commerce.rb
98
- - lib/response.rb
99
- homepage: http://www.bootpay.co.kr
75
+ - lib/bootpay/bootpay-rest-client.rb
76
+ - lib/bootpay/concern.rb
77
+ - lib/bootpay/concern/authenticate.rb
78
+ - lib/bootpay/concern/cash_receipt.rb
79
+ - lib/bootpay/concern/easy.rb
80
+ - lib/bootpay/concern/escrow.rb
81
+ - lib/bootpay/concern/payment.rb
82
+ - lib/bootpay/concern/reseller.rb
83
+ - lib/bootpay/concern/rest.rb
84
+ - lib/bootpay/concern/sdk.rb
85
+ - lib/bootpay/concern/seller.rb
86
+ - lib/bootpay/concern/service.rb
87
+ - lib/bootpay/concern/subscription.rb
88
+ - lib/bootpay/concern/token.rb
89
+ - lib/bootpay/concern/user_token.rb
90
+ - lib/bootpay/concern/wallet.rb
91
+ - lib/bootpay/concern/webhook.rb
92
+ - lib/bootpay/response.rb
93
+ - lib/bootpay_storage/bootpay-storage-rest-client.rb
94
+ - lib/bootpay_storage/concern.rb
95
+ - lib/bootpay_storage/concern/csv.rb
96
+ - lib/bootpay_storage/concern/image.rb
97
+ - lib/bootpay_storage/concern/rest.rb
98
+ - lib/bootpay_storage/concern/token.rb
99
+ - lib/bootpay_storage/response.rb
100
+ - lib/bootpay_store/bootpay-store-rest-client.rb
101
+ - lib/bootpay_store/concern.rb
102
+ - lib/bootpay_store/concern/alimtalk_message.rb
103
+ - lib/bootpay_store/concern/alimtalk_official.rb
104
+ - lib/bootpay_store/concern/alimtalk_optout.rb
105
+ - lib/bootpay_store/concern/alimtalk_send.rb
106
+ - lib/bootpay_store/concern/alimtalk_sender.rb
107
+ - lib/bootpay_store/concern/alimtalk_template.rb
108
+ - lib/bootpay_store/concern/alimtalk_webhook.rb
109
+ - lib/bootpay_store/concern/faq.rb
110
+ - lib/bootpay_store/concern/inquiry.rb
111
+ - lib/bootpay_store/concern/invoice.rb
112
+ - lib/bootpay_store/concern/mall_setting.rb
113
+ - lib/bootpay_store/concern/notice.rb
114
+ - lib/bootpay_store/concern/order.rb
115
+ - lib/bootpay_store/concern/order_subscription.rb
116
+ - lib/bootpay_store/concern/payment.rb
117
+ - lib/bootpay_store/concern/product.rb
118
+ - lib/bootpay_store/concern/product_qna.rb
119
+ - lib/bootpay_store/concern/product_review.rb
120
+ - lib/bootpay_store/concern/rest.rb
121
+ - lib/bootpay_store/concern/store.rb
122
+ - lib/bootpay_store/concern/supervisor.rb
123
+ - lib/bootpay_store/concern/token.rb
124
+ - lib/bootpay_store/concern/user.rb
125
+ - lib/bootpay_store/concern/user_group.rb
126
+ - lib/bootpay_store/concern/webhook.rb
127
+ - lib/bootpay_store/response.rb
128
+ - lib/version.rb
129
+ homepage: https://www.bootpay.ai
100
130
  licenses:
101
131
  - MIT
102
132
  metadata:
103
- homepage_uri: http://www.bootpay.co.kr
133
+ homepage_uri: https://www.bootpay.ai
134
+ source_code_uri: https://github.com/bootpay/backend-ruby/tree/2-x-development
135
+ changelog_uri: https://github.com/bootpay/backend-ruby/blob/2-x-development/CHANGELOG.md
136
+ documentation_uri: https://developers.bootpay.ai
104
137
  post_install_message:
105
138
  rdoc_options: []
106
139
  require_paths:
@@ -109,15 +142,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
142
  requirements:
110
143
  - - ">="
111
144
  - !ruby/object:Gem::Version
112
- version: 2.4.0
145
+ version: '0'
113
146
  required_rubygems_version: !ruby/object:Gem::Requirement
114
147
  requirements:
115
148
  - - ">="
116
149
  - !ruby/object:Gem::Version
117
150
  version: '0'
118
151
  requirements: []
119
- rubygems_version: 3.5.11
152
+ rubygems_version: 3.4.10
120
153
  signing_key:
121
154
  specification_version: 4
122
- summary: Bootpay server side plugin for ruby
155
+ summary: Bootpay Ruby REST Client
123
156
  test_files: []
data/.DS_Store DELETED
Binary file
data/.env.example DELETED
@@ -1,23 +0,0 @@
1
- # Bootpay server SDK example/test credentials
2
- BOOTPAY_ENV=production
3
-
4
- # PG 인증 방식: new (client_key/secret_key, default) 또는 legacy (application_id/private_key)
5
- BOOTPAY_AUTH_MODE=new
6
-
7
- # PG API - recommended client_key/secret_key
8
- BOOTPAY_PG_CLIENT_KEY_PROD=OdKci2s0ux9iyFWsgYHdKw
9
- BOOTPAY_PG_SECRET_KEY_PROD=L15AxIjXxGwFj9xe7NUUOt9VPHqP-CvyXJuK-FqMHto=
10
- BOOTPAY_PG_CLIENT_KEY_DEV=K1Xok7RzFxbT7zMBmiBXNw
11
- BOOTPAY_PG_SECRET_KEY_DEV=vcd_5OXoQAxTA8JSg2VGaSnwmQPkd8DgQ6xiyL6QkyE=
12
-
13
- # PG API - legacy application_id/private_key (호환성 검증용)
14
- BOOTPAY_PG_APPLICATION_ID_PROD=5b8f6a4d396fa665fdc2b5ea
15
- BOOTPAY_PG_PRIVATE_KEY_PROD=rm6EYECr6aroQVG2ntW0A6LpWnkTgP4uQ3H18sDDUYw=
16
- BOOTPAY_PG_APPLICATION_ID_DEV=59bfc738e13f337dbd6ca48a
17
- BOOTPAY_PG_PRIVATE_KEY_DEV=pDc0NwlkEX3aSaHTp/PPL/i8vn5E/CqRChgyEp/gHD0=
18
-
19
- # Commerce API
20
- BOOTPAY_COMMERCE_CLIENT_KEY_PROD=K1Xok7RzFxbT7zMBmiBXNw
21
- BOOTPAY_COMMERCE_SECRET_KEY_PROD=vcd_5OXoQAxTA8JSg2VGaSnwmQPkd8DgQ6xiyL6QkyE=
22
- BOOTPAY_COMMERCE_CLIENT_KEY_DEV=ZYEi9d93uIaQFEuxXEZfyQ
23
- BOOTPAY_COMMERCE_SECRET_KEY_DEV=j8ONDlZQVHgAWq52g97pGNCqxahGatyZKuC2O09r9MM=
data/lib/.DS_Store DELETED
Binary file
Binary file
@@ -1,61 +0,0 @@
1
- module Bootpay::Authentication
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- # 본인인증 요청 (SMS / PASS)
6
- # NodeJS: POST request/authentication
7
- def request_authentication(authentication_id: nil, pg: nil, method: nil, username: nil,
8
- identity_no: nil, carrier: nil, phone: nil, client_ip: nil,
9
- order_name: nil, site_url: nil, authenticate_type: nil,
10
- extra: nil, user: nil, metadata: nil)
11
- raise 'authentication_id 값을 입력해주세요.' if authentication_id.blank?
12
- raise 'pg 값을 입력해주세요.' if pg.blank?
13
- raise 'method 값을 입력해주세요.' if method.blank?
14
- raise 'username 값을 입력해주세요.' if username.blank?
15
- raise 'identity_no 값을 입력해주세요.' if identity_no.blank?
16
- raise 'carrier 값을 입력해주세요.' if carrier.blank?
17
- raise 'phone 값을 입력해주세요.' if phone.blank?
18
- raise 'client_ip 값을 입력해주세요.' if client_ip.blank?
19
- raise 'order_name 값을 입력해주세요.' if order_name.blank?
20
- request(
21
- uri: 'request/authentication',
22
- payload: {
23
- authentication_id: authentication_id,
24
- pg: pg,
25
- method: method,
26
- username: username,
27
- identity_no: identity_no,
28
- carrier: carrier,
29
- phone: phone,
30
- client_ip: client_ip,
31
- order_name: order_name,
32
- site_url: site_url,
33
- authenticate_type: authenticate_type,
34
- extra: extra,
35
- user: user,
36
- metadata: metadata
37
- }.compact
38
- )
39
- end
40
-
41
- # 본인인증 확인 (OTP 입력)
42
- # NodeJS: POST authenticate/confirm
43
- def confirm_authentication(receipt_id, otp: nil)
44
- raise 'receipt_id 값을 입력해주세요.' if receipt_id.blank?
45
- request(
46
- uri: 'authenticate/confirm',
47
- payload: { receipt_id: receipt_id, otp: otp }.compact
48
- )
49
- end
50
-
51
- # 본인인증 SMS 재발송
52
- # NodeJS: POST authenticate/realarm
53
- def realarm_authentication(receipt_id)
54
- raise 'receipt_id 값을 입력해주세요.' if receipt_id.blank?
55
- request(
56
- uri: 'authenticate/realarm',
57
- payload: { receipt_id: receipt_id }
58
- )
59
- end
60
- end
61
- end
@@ -1,56 +0,0 @@
1
- module Bootpay::AutomaticTransfer
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- # 자동이체 빌링키 발급 요청
6
- # NodeJS: POST request/subscribe/automatic-transfer
7
- def request_subscribe_automatic_transfer_billing_key(
8
- pg: nil, order_name: nil, subscription_id: nil,
9
- auth_type: nil, username: nil, bank_name: nil, bank_account: nil, identity_no: nil,
10
- method: nil, cash_receipt_type: nil, cash_receipt_identity_no: nil,
11
- phone: nil, price: nil, tax_free: nil,
12
- extra: nil, user: nil, metadata: nil
13
- )
14
- raise 'pg 값을 입력해주세요.' if pg.blank?
15
- raise 'order_name 값을 입력해주세요.' if order_name.blank?
16
- raise 'subscription_id 값을 입력해주세요.' if subscription_id.blank?
17
- raise 'auth_type 값을 입력해주세요.' if auth_type.blank?
18
- raise 'username 값을 입력해주세요.' if username.blank?
19
- raise 'bank_name 값을 입력해주세요.' if bank_name.blank?
20
- raise 'bank_account 값을 입력해주세요.' if bank_account.blank?
21
- raise 'identity_no 값을 입력해주세요.' if identity_no.blank?
22
- request(
23
- uri: 'request/subscribe/automatic-transfer',
24
- payload: {
25
- pg: pg,
26
- order_name: order_name,
27
- subscription_id: subscription_id,
28
- auth_type: auth_type, # ARS | 간편인증
29
- username: username,
30
- bank_name: bank_name,
31
- bank_account: bank_account,
32
- identity_no: identity_no,
33
- method: method,
34
- cash_receipt_type: cash_receipt_type, # 소득공제 | 지출증빙
35
- cash_receipt_identity_no: cash_receipt_identity_no,
36
- phone: phone,
37
- price: price,
38
- tax_free: tax_free,
39
- extra: extra,
40
- user: user,
41
- metadata: metadata
42
- }.compact
43
- )
44
- end
45
-
46
- # 자동이체 빌링키 발급 완료
47
- # NodeJS: POST request/subscribe/automatic-transfer/publish
48
- def publish_automatic_transfer_billing_key(receipt_id)
49
- raise 'receipt_id 값을 입력해주세요.' if receipt_id.blank?
50
- request(
51
- uri: 'request/subscribe/automatic-transfer/publish',
52
- payload: { receipt_id: receipt_id }
53
- )
54
- end
55
- end
56
- end