kakaocert 1.1.0 → 2.50.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kakaocert.rb +73 -17
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90a00f9770791822df5f8c29c9d1d255e2ae73cd
4
- data.tar.gz: b13c0288772dc833b8084ffa37b07d0e24ae2d8a
3
+ metadata.gz: eb4536b30414fd61e4f5e0ab3c45d3a26dce8832
4
+ data.tar.gz: b86bf87d1ba36ac76999bdadef44bf1fcd1259a6
5
5
  SHA512:
6
- metadata.gz: 14cad51f034e087959b2a692181559b5fb3dfb310bd8ce89f45202d6e5d67265f66b69134fe3e9a656641bbfd4fbbc83adfab224c2eaccd86397de061bdd7304
7
- data.tar.gz: a28dc88109d7bb1dfe05af4d6a47f563fc1fa1d21c57e3c79fad3fc50ae3d9704a9f74044a05016479a62d2c61967b1bc99da2d7e36b6ad36bc33df7af4ee116
6
+ metadata.gz: 58ea2d93dec1e39e8c5fae0457b7a56613273fd1204c42d9e5bf9131049d191211b28ba1af5911ce28f2c3571cae5a04f39c4eada1b55cc0797a5e10d2f6e915
7
+ data.tar.gz: 8b6c1d004cea5142094dd728a9d91c9a42cb7f7a281d9873fc30cccaca855de76998ee044074f321ab587d13dd12041be4e091b90e01ed5c6151bc998f83c918
data/lib/kakaocert.rb CHANGED
@@ -13,11 +13,13 @@ require 'linkhub'
13
13
  class KakaocertService
14
14
 
15
15
  ServiceID_REAL = "KAKAOCERT"
16
- ServiceURL_REAL = "https://kakaocert-api.linkhub.co.kr"
17
- KAKAOCERT_APIVersion = "1.0"
16
+ KAKAOCERT_APIVersion = "2.0"
17
+ ServiceURL = "https://kakaocert-api.linkhub.co.kr"
18
+ ServiceURL_Static = "https://static-kakaocert-api.linkhub.co.kr"
19
+ ServiceURL_GA = "https://ga-kakaocert-api.linkhub.co.kr"
18
20
  BOUNDARY = "==KAKAOCERT_RUBY_SDK=="
19
21
 
20
- attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff
22
+ attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useGAIP
21
23
 
22
24
  # Generate Linkhub Class Singleton Instance
23
25
  class << self
@@ -27,6 +29,8 @@ class KakaocertService
27
29
  @instance.linkhub = Linkhub.instance(linkID, secretKey)
28
30
  @instance.scopes = ["member","310","320","330"]
29
31
  @instance.ipRestrictOnOff = true
32
+ @instance.useStaticIP = false
33
+ @instance.useGAIP = false
30
34
 
31
35
  return @instance
32
36
  end
@@ -44,6 +48,23 @@ class KakaocertService
44
48
  @ipRestrictOnOff = value
45
49
  end
46
50
 
51
+ def setUseStaticIP(value)
52
+ @useStaticIP = value
53
+ end
54
+
55
+ def setUseGAIP(value)
56
+ @useGAIP = value
57
+ end
58
+
59
+ def getServiceURL()
60
+ if @useGAIP
61
+ return ServiceURL_GA
62
+ elsif @useStaticIP
63
+ return ServiceURL_Static
64
+ else
65
+ return ServiceURL
66
+ end
67
+ end
47
68
 
48
69
  # Get Session Token by checking token-cached hash or token Request
49
70
  def getSession_Token(corpNum)
@@ -60,14 +81,14 @@ class KakaocertService
60
81
  else
61
82
  # Token's expireTime must use parse() because time format is hh:mm:ss.SSSZ
62
83
  expireTime = DateTime.parse(targetToken['expiration'])
63
- serverUTCTime = DateTime.strptime(@linkhub.getTime())
84
+ serverUTCTime = DateTime.strptime(@linkhub.getTime(@useStaticIP, @useGAIP))
64
85
  refresh = expireTime < serverUTCTime
65
86
  end
66
87
 
67
88
  if refresh
68
89
  begin
69
90
  # getSessionToken from Linkhub
70
- targetToken = @linkhub.getSessionToken(ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*")
91
+ targetToken = @linkhub.getSessionToken(ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*", @useStaticIP, @useGAIP)
71
92
 
72
93
  rescue LinkhubException => le
73
94
  raise KakaocertException.new(le.code, le.message)
@@ -102,7 +123,7 @@ class KakaocertService
102
123
  headers["x-pb-userid"] = userID
103
124
  end
104
125
 
105
- uri = URI(ServiceURL_REAL + url)
126
+ uri = URI(getServiceURL() + url)
106
127
  request = Net::HTTP.new(uri.host, 443)
107
128
  request.use_ssl = true
108
129
 
@@ -132,10 +153,10 @@ class KakaocertService
132
153
  "Accept-Encoding" => "gzip,deflate",
133
154
  }
134
155
 
135
- apiServerTime = @linkhub.getTime()
156
+ apiServerTime = @linkhub.getTime(@useStaticIP, @useGAIP)
136
157
 
137
158
  hmacTarget = "POST\n"
138
- hmacTarget += Base64.strict_encode64(Digest::MD5.digest(postData)) + "\n"
159
+ hmacTarget += Base64.strict_encode64(Digest::SHA256.digest(postData)) + "\n"
139
160
  hmacTarget += apiServerTime + "\n"
140
161
 
141
162
  hmacTarget += KAKAOCERT_APIVersion + "\n"
@@ -143,7 +164,7 @@ class KakaocertService
143
164
  key = Base64.decode64(@linkhub._secretKey)
144
165
 
145
166
  data = hmacTarget
146
- digest = OpenSSL::Digest.new("sha1")
167
+ digest = OpenSSL::Digest.new("sha256")
147
168
  hmac = Base64.strict_encode64(OpenSSL::HMAC.digest(digest, key, data))
148
169
 
149
170
  headers["x-kc-auth"] = @linkhub._linkID+' '+hmac
@@ -158,7 +179,7 @@ class KakaocertService
158
179
  headers["Authorization"] = "Bearer " + getSession_Token(corpNum)
159
180
 
160
181
 
161
- uri = URI(ServiceURL_REAL + url)
182
+ uri = URI(getServiceURL() + url)
162
183
 
163
184
  https = Net::HTTP.new(uri.host, 443)
164
185
  https.use_ssl = true
@@ -191,7 +212,7 @@ class KakaocertService
191
212
  if clientCode.to_s == ''
192
213
  raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
193
214
  end
194
- httppost("/SignToken/Request", clientCode, esignRequestInfo.to_json, "", "")["receiptId"]
215
+ httppost("/SignToken/Request", clientCode, esignRequestInfo.to_json, "", "")
195
216
  end
196
217
 
197
218
  def requestVerifyAuth(clientCode, verifyAuthRequestInfo)
@@ -201,7 +222,42 @@ class KakaocertService
201
222
  httppost("/SignIdentity/Request", clientCode, verifyAuthRequestInfo.to_json, "", "")["receiptId"]
202
223
  end
203
224
 
204
- def getCMSResult(clientCode, receiptID)
225
+ def getCMSState(clientCode, receiptID)
226
+ if clientCode.to_s == ''
227
+ raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
228
+ end
229
+ if receiptID.to_s == ''
230
+ raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
231
+ end
232
+
233
+ httpget("/SignDirectDebit/Status/#{receiptID}", clientCode, "")
234
+ end
235
+
236
+ def getVerifyAuthState(clientCode, receiptID)
237
+ if clientCode.to_s == ''
238
+ raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
239
+ end
240
+ if receiptID.to_s == ''
241
+ raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
242
+ end
243
+
244
+ httpget("/SignIdentity/Status/#{receiptID}", clientCode, "")
245
+ end
246
+
247
+ def getESignState(clientCode, receiptID)
248
+ if clientCode.to_s == ''
249
+ raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
250
+ end
251
+ if receiptID.to_s == ''
252
+ raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
253
+ end
254
+
255
+ uri = "/SignToken/Status/#{receiptID}"
256
+
257
+ httpget(uri, clientCode, "")
258
+ end
259
+
260
+ def verifyCMS(clientCode, receiptID)
205
261
  if clientCode.to_s == ''
206
262
  raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
207
263
  end
@@ -209,10 +265,10 @@ class KakaocertService
209
265
  raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
210
266
  end
211
267
 
212
- httpget("/SignDirectDebit/#{receiptID}", clientCode, "")
268
+ httpget("/SignDirectDebit/Verify/#{receiptID}", clientCode, "")
213
269
  end
214
270
 
215
- def getVerifyAuthResult(clientCode, receiptID)
271
+ def verifyAuth(clientCode, receiptID)
216
272
  if clientCode.to_s == ''
217
273
  raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
218
274
  end
@@ -220,10 +276,10 @@ class KakaocertService
220
276
  raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
221
277
  end
222
278
 
223
- httpget("/SignIdentity/#{receiptID}", clientCode, "")
279
+ httpget("/SignIdentity/Verify/#{receiptID}", clientCode, "")
224
280
  end
225
281
 
226
- def getESignResult(clientCode, receiptID, signature = '')
282
+ def verifyESign(clientCode, receiptID, signature = '')
227
283
  if clientCode.to_s == ''
228
284
  raise KakaocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
229
285
  end
@@ -231,7 +287,7 @@ class KakaocertService
231
287
  raise KakaocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
232
288
  end
233
289
 
234
- uri = "/SignToken/#{receiptID}"
290
+ uri = "/SignToken/Verify/#{receiptID}"
235
291
 
236
292
  if signature.to_s != ''
237
293
  uri += "/"+signature
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kakaocert
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.50.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: 2020-09-02 00:00:00.000000000 Z
11
+ date: 2021-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkhub
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.0
19
+ version: 1.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2.0
26
+ version: 1.4.0
27
27
  description: Kakaocert API SDK
28
28
  email: code@linkhub.co.kr
29
29
  executables: []