barocert 1.0.0 → 1.1.0

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: 7fb5994fffa66548e4c988072bd99d52e90501e370ee090591b426a1d69d0fae
4
- data.tar.gz: 5ed93b292b1ad6170a308acc3f85e2b73e86c7b6deb969034fe4ad57e0039490
3
+ metadata.gz: 9a9a32c383242f5463e1ee60e9854113670b0c4c75dbf398815e17d5f0b0339e
4
+ data.tar.gz: 629260bf762f566f4e540899f43317d8cd53b8cb931c6e909a558517a88ac3a4
5
5
  SHA512:
6
- metadata.gz: 1b85bd946e42896d01312c478293865b3087ba1b3f0ed3241cd37a7cb0e893af7fa9a0bdfab9d81868c873f5a1ce59854facbae22f255a72565d70587820b362
7
- data.tar.gz: 3ceb78927f35927f922318effc92de49a8f54b7d207c1cbf5afd5a522a2d135f74bae46c26ac5f65f2d76f52a067f9b5af98fbbfb43fa27835be252dea9a2985
6
+ metadata.gz: 5591835632af50fa867e22ec12384b3e2317fd73e0a3b489590ebc3502ce73a44fb938c3ce6b74d5c9337ef8953bda0ce8e7bcbfb0b30117016be7fdb11919bd
7
+ data.tar.gz: f9c5539e34d221338681868367915912597c1ab09bbfffc4682ea5315a2397f5b5072d991a5ba6af91faf78d0a21db79a34b2fd7016f46f0989f6ad637ad88ed
@@ -14,6 +14,7 @@ class KakaocertService < BarocertService
14
14
  @instance.addScope("402")
15
15
  @instance.addScope("403")
16
16
  @instance.addScope("404")
17
+ @instance.addScope("405")
17
18
  return @instance
18
19
  end
19
20
  private :new
@@ -79,18 +80,16 @@ class KakaocertService < BarocertService
79
80
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
80
81
  end
81
82
  if identity.nil?
82
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.s')
83
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
83
84
  end
84
- if identity["ci"].to_s == ''
85
- if identity["receiverHP"].to_s == ''
86
- raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
87
- end
88
- if identity["receiverName"].to_s == ''
89
- raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
90
- end
91
- if identity["receiverBirthday"].to_s == ''
92
- raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
93
- end
85
+ if identity["receiverHP"].to_s == ''
86
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
87
+ end
88
+ if identity["receiverName"].to_s == ''
89
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
90
+ end
91
+ if identity["receiverBirthday"].to_s == ''
92
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
94
93
  end
95
94
 
96
95
  if identity["reqTitle"].to_s == ''
@@ -166,18 +165,16 @@ class KakaocertService < BarocertService
166
165
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
167
166
  end
168
167
  if sign.nil?
169
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.s')
168
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
170
169
  end
171
- if sign["ci"].to_s == ''
172
- if sign["receiverHP"].to_s == ''
173
- raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
174
- end
175
- if sign["receiverName"].to_s == ''
176
- raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
177
- end
178
- if sign["receiverBirthday"].to_s == ''
179
- raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
180
- end
170
+ if sign["receiverHP"].to_s == ''
171
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
172
+ end
173
+ if sign["receiverName"].to_s == ''
174
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
175
+ end
176
+ if sign["receiverBirthday"].to_s == ''
177
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
181
178
  end
182
179
 
183
180
  if sign["reqTitle"].to_s == ''
@@ -255,18 +252,16 @@ class KakaocertService < BarocertService
255
252
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
256
253
  end
257
254
  if multiSign.nil?
258
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.s')
255
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
259
256
  end
260
- if multiSign["ci"].to_s == ''
261
- if multiSign["receiverHP"].to_s == ''
262
- raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
263
- end
264
- if multiSign["receiverName"].to_s == ''
265
- raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
266
- end
267
- if multiSign["receiverBirthday"].to_s == ''
268
- raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
269
- end
257
+ if multiSign["receiverHP"].to_s == ''
258
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
259
+ end
260
+ if multiSign["receiverName"].to_s == ''
261
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
262
+ end
263
+ if multiSign["receiverBirthday"].to_s == ''
264
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
270
265
  end
271
266
 
272
267
  if multiSign["reqTitle"].to_s == ''
@@ -349,18 +344,16 @@ class KakaocertService < BarocertService
349
344
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
350
345
  end
351
346
  if cms.nil?
352
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.s')
347
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
353
348
  end
354
- if cms["ci"].to_s == ''
355
- if cms["receiverHP"].to_s == ''
356
- raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
357
- end
358
- if cms["receiverName"].to_s == ''
359
- raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
360
- end
361
- if cms["receiverBirthday"].to_s == ''
362
- raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
363
- end
349
+ if cms["receiverHP"].to_s == ''
350
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
351
+ end
352
+ if cms["receiverName"].to_s == ''
353
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
354
+ end
355
+ if cms["receiverBirthday"].to_s == ''
356
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
364
357
  end
365
358
 
366
359
  if cms["reqTitle"].to_s == ''
@@ -443,6 +436,23 @@ class KakaocertService < BarocertService
443
436
 
444
437
  httppost("/KAKAO/CMS/#{clientCode}/#{receiptID}")
445
438
  end
439
+
440
+ def verifyLogin(clientCode, txID)
441
+ if clientCode.to_s == ''
442
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
443
+ end
444
+ if clientCode.is_i? == false
445
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
446
+ end
447
+ if clientCode.length != 12
448
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
449
+ end
450
+ if txID.to_s == ''
451
+ raise BarocertException.new('-99999999', '트랜잭션 아이디가 입력되지 않았습니다.')
452
+ end
453
+
454
+ httppost("/KAKAO/Login/#{clientCode}/#{txID}")
455
+ end
446
456
  end
447
457
 
448
458
  class String
@@ -0,0 +1,449 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../barocert.rb'
3
+ require 'openssl'
4
+ require 'base64'
5
+
6
+ # passcert API BaseService class
7
+ class PasscertService < BarocertService
8
+ # Generate Linkhub Class Singleton Instance
9
+ class << self
10
+ def instance(linkID, secretKey)
11
+ super(linkID, secretKey)
12
+ @instance ||= new
13
+ @instance.addScope("441")
14
+ @instance.addScope("442")
15
+ @instance.addScope("443")
16
+ @instance.addScope("444")
17
+ return @instance
18
+ end
19
+ private :new
20
+ end
21
+
22
+ def _encrypt(plaintext)
23
+ return aes256gcm(plaintext, @linkhub._secretKey)
24
+ end
25
+
26
+ def aes256gcm(plaintext, key)
27
+ iv = OpenSSL::Random.random_bytes(12)
28
+ cipher = OpenSSL::Cipher.new('aes-256-gcm')
29
+ cipher.encrypt
30
+ cipher.key = Base64.decode64(key)
31
+ cipher.iv = iv
32
+ ciphertext = cipher.update(plaintext) + cipher.final
33
+ return Base64.strict_encode64(iv + ciphertext + cipher.auth_tag)
34
+ end
35
+
36
+ def isNumber(str)
37
+ return str.is_i?
38
+ end
39
+
40
+ def isNullorEmptyTitle(tokens)
41
+ if tokens.nil?
42
+ return true
43
+ end
44
+ tokens.each{ |token|
45
+ if token.nil?
46
+ return true
47
+ end
48
+ if token["reqTitle"].to_s == ''
49
+ return true
50
+ end
51
+ }
52
+ false
53
+ end
54
+
55
+ def isNullorEmptyToken(tokens)
56
+ if tokens.nil?
57
+ return true
58
+ end
59
+ tokens.each{ |token|
60
+ if token.nil?
61
+ return true
62
+ end
63
+ if token["token"].to_s == ''
64
+ return true
65
+ end
66
+ }
67
+ false
68
+ end
69
+
70
+ def requestIdentity(clientCode, identity)
71
+
72
+ if clientCode.to_s == ''
73
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
74
+ end
75
+ if clientCode.is_i? == false
76
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
77
+ end
78
+ if clientCode.length != 12
79
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
80
+ end
81
+ if identity.nil?
82
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
83
+ end
84
+ if identity["receiverHP"].to_s == ''
85
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
86
+ end
87
+ if identity["receiverName"].to_s == ''
88
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
89
+ end
90
+ if identity["reqTitle"].to_s == ''
91
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
92
+ end
93
+ if identity["callCenterNum"].to_s == ''
94
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
95
+ end
96
+ if identity["expireIn"].to_s == ''
97
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
98
+ end
99
+ if identity["token"].to_s == ''
100
+ raise BarocertException.new('-99999999', '토큰 원문이 입력되지 않았습니다.')
101
+ end
102
+
103
+ httppost("/PASS/Identity/#{clientCode}", identity.to_json)
104
+ end
105
+
106
+ def getIdentityStatus(clientCode, receiptID)
107
+ puts receiptID
108
+ if clientCode.to_s == ''
109
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
110
+ end
111
+ if clientCode.is_i? == false
112
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
113
+ end
114
+ if clientCode.length != 12
115
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
116
+ end
117
+ if receiptID.to_s == ''
118
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
119
+ end
120
+ if receiptID.is_i? == false
121
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
122
+ end
123
+ if receiptID.length != 32
124
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
125
+ end
126
+
127
+ httpget("/PASS/Identity/#{clientCode}/#{receiptID}")
128
+ end
129
+
130
+ def verifyIdentity(clientCode, receiptID, identityVerify)
131
+ if clientCode.to_s == ''
132
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
133
+ end
134
+ if clientCode.is_i? == false
135
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
136
+ end
137
+ if clientCode.length != 12
138
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
139
+ end
140
+ if receiptID.to_s == ''
141
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
142
+ end
143
+ if receiptID.is_i? == false
144
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
145
+ end
146
+ if receiptID.length != 32
147
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
148
+ end
149
+ if identityVerify.nil?
150
+ raise BarocertException.new('-99999999', '본인인증 검증 요청 정보가 입력되지 않았습니다.')
151
+ end
152
+ if identityVerify["receiverHP"].to_s == ''
153
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
154
+ end
155
+ if identityVerify["receiverName"].to_s == ''
156
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
157
+ end
158
+
159
+ httppost("/PASS/Identity/#{clientCode}/#{receiptID}", identityVerify.to_json)
160
+ end
161
+
162
+ def requestSign(clientCode, sign)
163
+ if clientCode.to_s == ''
164
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
165
+ end
166
+ if clientCode.is_i? == false
167
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
168
+ end
169
+ if clientCode.length != 12
170
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
171
+ end
172
+ if sign.nil?
173
+ raise BarocertException.new('-99999999', '전자서명 요청정보가 입력되지 않았습니다.')
174
+ end
175
+ if sign["receiverHP"].to_s == ''
176
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
177
+ end
178
+ if sign["receiverName"].to_s == ''
179
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
180
+ end
181
+ if sign["reqTitle"].to_s == ''
182
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
183
+ end
184
+ if sign["callCenterNum"].to_s == ''
185
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
186
+ end
187
+ if sign["expireIn"].to_s == ''
188
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
189
+ end
190
+ if sign["token"].to_s == ''
191
+ raise BarocertException.new('-99999999', '토큰 원문이 입력되지 않았습니다.')
192
+ end
193
+ if sign["tokenType"].to_s == ''
194
+ raise BarocertException.new('-99999999', '원문 유형이 입력되지 않았습니다.')
195
+ end
196
+ httppost("/PASS/Sign/#{clientCode}", sign.to_json)
197
+ end
198
+
199
+ def getSignStatus(clientCode, receiptID)
200
+ if clientCode.to_s == ''
201
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
202
+ end
203
+ if clientCode.is_i? == false
204
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
205
+ end
206
+ if clientCode.length != 12
207
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
208
+ end
209
+ if receiptID.to_s == ''
210
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
211
+ end
212
+ if receiptID.is_i? == false
213
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
214
+ end
215
+ if receiptID.length != 32
216
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
217
+ end
218
+
219
+ httpget("/PASS/Sign/#{clientCode}/#{receiptID}")
220
+ end
221
+
222
+ def verifySign(clientCode, receiptID, signVerify)
223
+ if clientCode.to_s == ''
224
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
225
+ end
226
+ if clientCode.is_i? == false
227
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
228
+ end
229
+ if clientCode.length != 12
230
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
231
+ end
232
+ if receiptID.to_s == ''
233
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
234
+ end
235
+ if receiptID.is_i? == false
236
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
237
+ end
238
+ if receiptID.length != 32
239
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
240
+ end
241
+ if signVerify.nil?
242
+ raise BarocertException.new('-99999999', '전자서명 검증 요청 정보가 입력되지 않았습니다.')
243
+ end
244
+ if signVerify["receiverHP"].to_s == ''
245
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
246
+ end
247
+ if signVerify["receiverName"].to_s == ''
248
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
249
+ end
250
+
251
+ httppost("/PASS/Sign/#{clientCode}/#{receiptID}", signVerify.to_json)
252
+ end
253
+
254
+ def requestCMS(clientCode, cms)
255
+ if clientCode.to_s == ''
256
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
257
+ end
258
+ if clientCode.is_i? == false
259
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
260
+ end
261
+ if clientCode.length != 12
262
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
263
+ end
264
+ if cms.nil?
265
+ raise BarocertException.new('-99999999', '출금동의 서명요청 정보가 입력되지 않았습니다.')
266
+ end
267
+ if cms["receiverHP"].to_s == ''
268
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
269
+ end
270
+ if cms["receiverName"].to_s == ''
271
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
272
+ end
273
+ if cms["reqTitle"].to_s == ''
274
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
275
+ end
276
+ if cms["callCenterNum"].to_s == ''
277
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
278
+ end
279
+ if cms["expireIn"].to_s == ''
280
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
281
+ end
282
+ if cms["bankName"].to_s == ''
283
+ raise BarocertException.new('-99999999', '출금은행명이 입력되지 않았습니다.')
284
+ end
285
+ if cms["bankAccountNum"].to_s == ''
286
+ raise BarocertException.new('-99999999', '출금계좌번호가 입력되지 않았습니다.')
287
+ end
288
+ if cms["bankAccountName"].to_s == ''
289
+ raise BarocertException.new('-99999999', '출금계좌 예금주명이 입력되지 않았습니다.')
290
+ end
291
+ if cms["bankServiceType"].to_s == ''
292
+ raise BarocertException.new('-99999999', '출금 유형이 입력되지 않았습니다.')
293
+ end
294
+ httppost("/PASS/CMS/#{clientCode}", cms.to_json)
295
+ end
296
+
297
+ def getCMSStatus(clientCode, receiptID)
298
+ if clientCode.to_s == ''
299
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
300
+ end
301
+ if clientCode.is_i? == false
302
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
303
+ end
304
+ if clientCode.length != 12
305
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
306
+ end
307
+ if receiptID.to_s == ''
308
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
309
+ end
310
+ if receiptID.is_i? == false
311
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
312
+ end
313
+ if receiptID.length != 32
314
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
315
+ end
316
+
317
+ httpget("/PASS/CMS/#{clientCode}/#{receiptID}")
318
+ end
319
+
320
+ def verifyCMS(clientCode, receiptID, cmsVerify)
321
+ if clientCode.to_s == ''
322
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
323
+ end
324
+ if clientCode.is_i? == false
325
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
326
+ end
327
+ if clientCode.length != 12
328
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
329
+ end
330
+ if receiptID.to_s == ''
331
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
332
+ end
333
+ if receiptID.is_i? == false
334
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
335
+ end
336
+ if receiptID.length != 32
337
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
338
+ end
339
+ if cmsVerify.nil?
340
+ raise BarocertException.new('-99999999', '출금동의 검증 요청 정보가 입력되지 않았습니다.')
341
+ end
342
+ if cmsVerify["receiverHP"].to_s == ''
343
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
344
+ end
345
+ if cmsVerify["receiverName"].to_s == ''
346
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
347
+ end
348
+
349
+ httppost("/PASS/CMS/#{clientCode}/#{receiptID}", cmsVerify.to_json)
350
+ end
351
+
352
+ def requestLogin(clientCode, login)
353
+
354
+ if clientCode.to_s == ''
355
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
356
+ end
357
+ if clientCode.is_i? == false
358
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
359
+ end
360
+ if clientCode.length != 12
361
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
362
+ end
363
+ if login.nil?
364
+ raise BarocertException.new('-99999999', '간편로그인 서명요청 정보가 입력되지 않았습니다.s')
365
+ end
366
+ if login["receiverHP"].to_s == ''
367
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
368
+ end
369
+ if login["receiverName"].to_s == ''
370
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
371
+ end
372
+ if login["reqTitle"].to_s == ''
373
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
374
+ end
375
+ if login["callCenterNum"].to_s == ''
376
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
377
+ end
378
+ if login["expireIn"].to_s == ''
379
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
380
+ end
381
+ if login["token"].to_s == ''
382
+ raise BarocertException.new('-99999999', '토큰 원문이 입력되지 않았습니다.')
383
+ end
384
+
385
+ httppost("/PASS/Login/#{clientCode}", login.to_json)
386
+ end
387
+
388
+ def getLoginStatus(clientCode, receiptID)
389
+ puts receiptID
390
+ if clientCode.to_s == ''
391
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
392
+ end
393
+ if clientCode.is_i? == false
394
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
395
+ end
396
+ if clientCode.length != 12
397
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
398
+ end
399
+ if receiptID.to_s == ''
400
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
401
+ end
402
+ if receiptID.is_i? == false
403
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
404
+ end
405
+ if receiptID.length != 32
406
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
407
+ end
408
+
409
+ httpget("/PASS/Login/#{clientCode}/#{receiptID}")
410
+ end
411
+
412
+ def verifyLogin(clientCode, receiptID, loginVerify)
413
+ if clientCode.to_s == ''
414
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
415
+ end
416
+ if clientCode.is_i? == false
417
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
418
+ end
419
+ if clientCode.length != 12
420
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
421
+ end
422
+ if receiptID.to_s == ''
423
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
424
+ end
425
+ if receiptID.is_i? == false
426
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
427
+ end
428
+ if receiptID.length != 32
429
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
430
+ end
431
+ if loginVerify.nil?
432
+ raise BarocertException.new('-99999999', '간편로그인 검증 요청 정보가 입력되지 않았습니다.')
433
+ end
434
+ if loginVerify["receiverHP"].to_s == ''
435
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
436
+ end
437
+ if loginVerify["receiverName"].to_s == ''
438
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
439
+ end
440
+
441
+ httppost("/PASS/Login/#{clientCode}/#{receiptID}", loginVerify.to_json)
442
+ end
443
+ end
444
+
445
+ class String
446
+ def is_i?
447
+ !!(self =~ /^\d+$/)
448
+ end
449
+ end
data/lib/barocert.rb CHANGED
@@ -10,10 +10,10 @@ class BarocertService
10
10
  ServiceID_REAL = "BAROCERT"
11
11
  ServiceURL = "https://barocert.linkhub.co.kr"
12
12
  ServiceURL_Static = "https://static-barocert.linkhub.co.kr"
13
- APIVersion = "2.0"
13
+ APIVersion = "2.1"
14
14
  BOUNDARY = "==BAROCERT_RUBY_SDK=="
15
15
 
16
- attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useLocalTimeYN
16
+ attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useLocalTimeYN, :__ServiceURL
17
17
 
18
18
  # Generate Linkhub Class Singleton Instance
19
19
  class << self
@@ -25,13 +25,13 @@ class BarocertService
25
25
  @instance.ipRestrictOnOff = false
26
26
  @instance.useStaticIP = false
27
27
  @instance.useLocalTimeYN = true
28
+ @instance.__ServiceURL = ""
28
29
  return @instance
29
30
  end
30
31
 
31
32
  private :new
32
33
  end
33
34
 
34
-
35
35
  # add Service Scope array
36
36
  def addScope(scopeValue)
37
37
  @scopes.push(scopeValue)
@@ -49,11 +49,19 @@ class BarocertService
49
49
  @useLocalTimeYN = value
50
50
  end
51
51
 
52
+ def setServiceURL(value)
53
+ @__ServiceURL = value
54
+ end
55
+
52
56
  def getServiceURL()
53
- if @useStaticIP
54
- return ServiceURL_Static
57
+ if @__ServiceURL.nil? || @__ServiceURL == ""
58
+ if @useStaticIP
59
+ return ServiceURL_Static
60
+ else
61
+ return ServiceURL
62
+ end
55
63
  else
56
- return ServiceURL
64
+ return @__ServiceURL
57
65
  end
58
66
  end
59
67
 
@@ -139,11 +147,11 @@ class BarocertService
139
147
  date = @linkhub.getTime(@useStaticIP, false)
140
148
 
141
149
  hmacTarget = "POST\n"
142
- hmacTarget += url + "\n"
143
150
  if postData != nil
144
151
  hmacTarget += Base64.strict_encode64(Digest::SHA256.digest(postData)) + "\n"
145
152
  end
146
153
  hmacTarget += date + "\n"
154
+ hmacTarget += url + "\n"
147
155
 
148
156
  key = Base64.decode64(@linkhub._secretKey)
149
157
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barocert
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linkhub Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-03 00:00:00.000000000 Z
11
+ date: 2023-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkhub
@@ -25,13 +25,14 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.5.0
27
27
  description: barocert API SDK
28
- email: dev@linkhub.co.kr
28
+ email: code@linkhub.co.kr
29
29
  executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
33
  - lib/barocert.rb
34
34
  - lib/barocert/kakaocert.rb
35
+ - lib/barocert/passcert.rb
35
36
  homepage: https://github.com/barocert/barocert.ruby
36
37
  licenses:
37
38
  - MIT