popbill 1.12.0 → 1.16.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.
- checksums.yaml +4 -4
- data/lib/popbill.rb +23 -7
- data/lib/popbill/accountCheck.rb +48 -0
- data/lib/popbill/easyFinBank.rb +277 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bfb35ee55f47c39313b772f5c2989a036568c87
|
4
|
+
data.tar.gz: e5c7df56dd0c1390397df455dae91ce91d81b363
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 964b15e2850c1c085ce3922e43ec5479331497e25fd698e8d5e281fb9484048b7237b5a62a3268a153339e04415e706bed4a91f936839f7f724872c526840319
|
7
|
+
data.tar.gz: d85e2d027ad6d182ffaf3c88213037a45d19ba4f355f59ae48f9d7a865452425ba2831b4b0c7837e6434cf14d54acf6727b00b0bf3e5870ede620cbe4e645b91
|
data/lib/popbill.rb
CHANGED
@@ -11,10 +11,13 @@ class BaseService
|
|
11
11
|
ServiceID_TEST = "POPBILL_TEST"
|
12
12
|
ServiceURL_REAL = "https://popbill.linkhub.co.kr"
|
13
13
|
ServiceURL_TEST = "https://popbill-test.linkhub.co.kr"
|
14
|
+
ServiceURL_GA_REAL = "https://ga-popbill.linkhub.co.kr"
|
15
|
+
ServiceURL_GA_TEST = "https://ga-popbill-test.linkhub.co.kr"
|
16
|
+
|
14
17
|
POPBILL_APIVersion = "1.0"
|
15
18
|
BOUNDARY = "==POPBILL_RUBY_SDK=="
|
16
19
|
|
17
|
-
attr_accessor :token_table, :scopes, :isTest, :linkhub, :ipRestrictOnOff
|
20
|
+
attr_accessor :token_table, :scopes, :isTest, :linkhub, :ipRestrictOnOff, :useStaticIP
|
18
21
|
|
19
22
|
# Generate Linkhub Class Singleton Instance
|
20
23
|
class << self
|
@@ -24,6 +27,7 @@ class BaseService
|
|
24
27
|
@instance.linkhub = Linkhub.instance(linkID, secretKey)
|
25
28
|
@instance.scopes = ["member"]
|
26
29
|
@instance.ipRestrictOnOff = true
|
30
|
+
@instance.useStaticIP = false
|
27
31
|
|
28
32
|
return @instance
|
29
33
|
end
|
@@ -45,8 +49,17 @@ class BaseService
|
|
45
49
|
@ipRestrictOnOff = value
|
46
50
|
end
|
47
51
|
|
52
|
+
def setUseStaticIP(value)
|
53
|
+
@useStaticIP = value
|
54
|
+
end
|
55
|
+
|
48
56
|
def getServiceURL()
|
49
|
-
|
57
|
+
if @useStaticIP
|
58
|
+
return @isTest ? BaseService::ServiceURL_GA_TEST : BaseService::ServiceURL_GA_REAL
|
59
|
+
else
|
60
|
+
return @isTest ? BaseService::ServiceURL_TEST : BaseService::ServiceURL_REAL
|
61
|
+
end
|
62
|
+
|
50
63
|
end
|
51
64
|
|
52
65
|
def getServiceID()
|
@@ -68,7 +81,7 @@ class BaseService
|
|
68
81
|
else
|
69
82
|
# Token's expireTime must use parse() because time format is hh:mm:ss.SSSZ
|
70
83
|
expireTime = DateTime.parse(targetToken['expiration'])
|
71
|
-
serverUTCTime = DateTime.strptime(@linkhub.getTime())
|
84
|
+
serverUTCTime = DateTime.strptime(@linkhub.getTime(@useStaticIP))
|
72
85
|
refresh = expireTime < serverUTCTime
|
73
86
|
end
|
74
87
|
|
@@ -76,7 +89,7 @@ class BaseService
|
|
76
89
|
begin
|
77
90
|
# getSessionToken from Linkhub
|
78
91
|
targetToken = @linkhub.getSessionToken(
|
79
|
-
@isTest ? ServiceID_TEST : ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*")
|
92
|
+
@isTest ? ServiceID_TEST : ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*", @useStaticIP)
|
80
93
|
|
81
94
|
rescue LinkhubException => le
|
82
95
|
raise PopbillException.new(le.code, le.message)
|
@@ -112,6 +125,7 @@ class BaseService
|
|
112
125
|
end
|
113
126
|
|
114
127
|
uri = URI(getServiceURL() + url)
|
128
|
+
|
115
129
|
request = Net::HTTP.new(uri.host, 443)
|
116
130
|
request.use_ssl = true
|
117
131
|
|
@@ -224,6 +238,7 @@ class BaseService
|
|
224
238
|
# Add the file Data
|
225
239
|
|
226
240
|
uri = URI(getServiceURL() + url)
|
241
|
+
|
227
242
|
https = Net::HTTP.new(uri.host, 443)
|
228
243
|
https.use_ssl = true
|
229
244
|
Net::HTTP::Post.new(uri)
|
@@ -284,6 +299,7 @@ class BaseService
|
|
284
299
|
# Add the file Data
|
285
300
|
|
286
301
|
uri = URI(getServiceURL() + url)
|
302
|
+
|
287
303
|
https = Net::HTTP.new(uri.host, 443)
|
288
304
|
https.use_ssl = true
|
289
305
|
Net::HTTP::Post.new(uri)
|
@@ -310,7 +326,7 @@ class BaseService
|
|
310
326
|
end
|
311
327
|
|
312
328
|
begin
|
313
|
-
@linkhub.getBalance(getSession_Token(corpNum), getServiceID())
|
329
|
+
@linkhub.getBalance(getSession_Token(corpNum), getServiceID(), @useStaticIP)
|
314
330
|
rescue LinkhubException => le
|
315
331
|
raise PopbillException.new(le.code, le.message)
|
316
332
|
end
|
@@ -323,7 +339,7 @@ class BaseService
|
|
323
339
|
end
|
324
340
|
|
325
341
|
begin
|
326
|
-
@linkhub.getPartnerBalance(getSession_Token(corpNum), getServiceID())
|
342
|
+
@linkhub.getPartnerBalance(getSession_Token(corpNum), getServiceID(), @useStaticIP)
|
327
343
|
rescue LinkhubException => le
|
328
344
|
raise PopbillException.new(le.code, le.message)
|
329
345
|
end
|
@@ -336,7 +352,7 @@ class BaseService
|
|
336
352
|
end
|
337
353
|
|
338
354
|
begin
|
339
|
-
@linkhub.getPartnerURL(getSession_Token(corpNum), getServiceID(), togo)
|
355
|
+
@linkhub.getPartnerURL(getSession_Token(corpNum), getServiceID(), togo, @useStaticIP)
|
340
356
|
rescue LinkhubException => le
|
341
357
|
raise PopbillException.new(le.code, le.message)
|
342
358
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require_relative '../popbill.rb'
|
3
|
+
|
4
|
+
# 팝빌 예금주조회 API Service Implementation
|
5
|
+
class AccountCheckService < BaseService
|
6
|
+
class << self
|
7
|
+
def instance(linkID, secretKey)
|
8
|
+
super(linkID, secretKey)
|
9
|
+
@instance ||= new
|
10
|
+
@instance.addScope("182")
|
11
|
+
return @instance
|
12
|
+
end
|
13
|
+
private :new
|
14
|
+
end
|
15
|
+
|
16
|
+
def getChargeInfo(corpNum, userID = '')
|
17
|
+
if corpNum.length != 10
|
18
|
+
raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
|
19
|
+
end
|
20
|
+
httpget("/EasyFin/AccountCheck/ChargeInfo", corpNum, userID)
|
21
|
+
end
|
22
|
+
|
23
|
+
def getUnitCost(corpNum, userID = '')
|
24
|
+
if corpNum.length != 10
|
25
|
+
raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
|
26
|
+
end
|
27
|
+
httpget("/EasyFin/AccountCheck/UnitCost", corpNum, userID)['unitCost']
|
28
|
+
end
|
29
|
+
|
30
|
+
def checkAccountInfo(corpNum, bankCode, accountNumber, userID = '')
|
31
|
+
if corpNum.length != 10
|
32
|
+
raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
|
33
|
+
end
|
34
|
+
if bankCode.to_s == ''
|
35
|
+
raise PopbillException.new(-99999999, '기관코드가 입력되지 않았습니다.')
|
36
|
+
end
|
37
|
+
|
38
|
+
if accountNumber.to_s == ''
|
39
|
+
raise PopbillException.new(-99999999, '계좌번호가 입력되지 않았습니다.')
|
40
|
+
end
|
41
|
+
|
42
|
+
uri = "/EasyFin/AccountCheck?c=#{bankCode}&n=#{accountNumber}"
|
43
|
+
|
44
|
+
httppost(uri, corpNum, "", "", userID)
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end # end of FaxService
|
@@ -0,0 +1,277 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require_relative '../popbill.rb'
|
3
|
+
|
4
|
+
# 팝빌 계좌조회 API Service Implementation
|
5
|
+
class EasyFinBankService < BaseService
|
6
|
+
class << self
|
7
|
+
def instance(linkID, secretKey)
|
8
|
+
super(linkID, secretKey)
|
9
|
+
@instance ||= new
|
10
|
+
@instance.addScope("180")
|
11
|
+
return @instance
|
12
|
+
end
|
13
|
+
private :new
|
14
|
+
end
|
15
|
+
|
16
|
+
def registBankAccount(corpNum, bankAccountInfo, userID = "")
|
17
|
+
if corpNum.length != 10
|
18
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
19
|
+
end
|
20
|
+
|
21
|
+
if bankAccountInfo["BankCode"].to_s == ''
|
22
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
23
|
+
end
|
24
|
+
|
25
|
+
if bankAccountInfo["BankCode"].length != 4
|
26
|
+
raise PopbillException.new('-99999999', '은행코드가 올바르지 않습니다.')
|
27
|
+
end
|
28
|
+
|
29
|
+
if bankAccountInfo["AccountNumber"].to_s == ''
|
30
|
+
raise PopbillException.new('-99999999', '은행 계좌번호가 입력되지 않았습니다.')
|
31
|
+
end
|
32
|
+
|
33
|
+
uri = "/EasyFin/Bank/BankAccount/Regist"
|
34
|
+
|
35
|
+
if bankAccountInfo["UsePeriod"].to_s != ''
|
36
|
+
uri += "?UsePeriod=" + bankAccountInfo["UsePeriod"]
|
37
|
+
end
|
38
|
+
|
39
|
+
httppost(uri, corpNum, bankAccountInfo.to_json, "", userID)
|
40
|
+
end
|
41
|
+
|
42
|
+
def updateBankAccount(corpNum, bankAccountInfo, userID = "")
|
43
|
+
if corpNum.length != 10
|
44
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
45
|
+
end
|
46
|
+
|
47
|
+
if bankAccountInfo["BankCode"].to_s == ''
|
48
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
49
|
+
end
|
50
|
+
|
51
|
+
if bankAccountInfo["BankCode"].length != 4
|
52
|
+
raise PopbillException.new('-99999999', '은행코드가 올바르지 않습니다.')
|
53
|
+
end
|
54
|
+
|
55
|
+
if bankAccountInfo["AccountNumber"].to_s == ''
|
56
|
+
raise PopbillException.new('-99999999', '은행 계좌번호가 입력되지 않았습니다.')
|
57
|
+
end
|
58
|
+
|
59
|
+
uri = "/EasyFin/Bank/BankAccount/#{bankAccountInfo["BankCode"]}/#{bankAccountInfo["AccountNumber"]}/Update"
|
60
|
+
|
61
|
+
httppost(uri, corpNum, bankAccountInfo.to_json, "", userID)
|
62
|
+
end
|
63
|
+
|
64
|
+
def closeBankAccount(corpNum, bankCode, accountNumber, closeType, userID = "")
|
65
|
+
if corpNum.length != 10
|
66
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
67
|
+
end
|
68
|
+
|
69
|
+
if bankCode.to_s == ''
|
70
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
71
|
+
end
|
72
|
+
|
73
|
+
if bankCode.length != 4
|
74
|
+
raise PopbillException.new('-99999999', '은행코드가 올바르지 않습니다.')
|
75
|
+
end
|
76
|
+
|
77
|
+
if accountNumber.to_s == ''
|
78
|
+
raise PopbillException.new('-99999999', '은행 계좌번호가 입력되지 않았습니다.')
|
79
|
+
end
|
80
|
+
|
81
|
+
if closeType.to_s == ''
|
82
|
+
raise PopbillException.new('-99999999', '정액제 해지유형이 입력되지 않았습니다.')
|
83
|
+
end
|
84
|
+
|
85
|
+
uri = "/EasyFin/Bank/BankAccount/Close/?BankCode=#{bankCode}&AccountNumber=#{accountNumber}&CloseType=#{closeType}"
|
86
|
+
|
87
|
+
httppost(URI.escape(uri), corpNum, "", "", userID)
|
88
|
+
end
|
89
|
+
|
90
|
+
def revokeCloseBankAccount(corpNum, bankCode, accountNumber, userID = "")
|
91
|
+
if corpNum.length != 10
|
92
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
93
|
+
end
|
94
|
+
|
95
|
+
if bankCode.to_s == ''
|
96
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
97
|
+
end
|
98
|
+
|
99
|
+
if bankCode.length != 4
|
100
|
+
raise PopbillException.new('-99999999', '은행코드가 올바르지 않습니다.')
|
101
|
+
end
|
102
|
+
|
103
|
+
if accountNumber.to_s == ''
|
104
|
+
raise PopbillException.new('-99999999', '은행 계좌번호가 입력되지 않았습니다.')
|
105
|
+
end
|
106
|
+
|
107
|
+
uri = "/EasyFin/Bank/BankAccount/RevokeClose/?BankCode=#{bankCode}&AccountNumber=#{accountNumber}"
|
108
|
+
|
109
|
+
httppost(uri, corpNum, "", "", userID)
|
110
|
+
end
|
111
|
+
|
112
|
+
def getBankAccountInfo(corpNum, bankCode, accountNumber, userID = "")
|
113
|
+
if corpNum.length != 10
|
114
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
115
|
+
end
|
116
|
+
|
117
|
+
if bankCode.to_s == ''
|
118
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
119
|
+
end
|
120
|
+
|
121
|
+
if bankCode.length != 4
|
122
|
+
raise PopbillException.new('-99999999', '은행코드가 올바르지 않습니다.')
|
123
|
+
end
|
124
|
+
|
125
|
+
if accountNumber.to_s == ''
|
126
|
+
raise PopbillException.new('-99999999', '은행 계좌번호가 입력되지 않았습니다.')
|
127
|
+
end
|
128
|
+
|
129
|
+
uri = "/EasyFin/Bank/BankAccount/#{bankCode}/#{accountNumber}"
|
130
|
+
|
131
|
+
httpget(uri, corpNum, userID)
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
def getChargeInfo(corpNum, userID = "")
|
136
|
+
if corpNum.length != 10
|
137
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
138
|
+
end
|
139
|
+
httpget("/EasyFin/Bank/ChargeInfo", corpNum, userID)
|
140
|
+
end
|
141
|
+
|
142
|
+
def getBankAccountMgtURL(corpNum, userID = "")
|
143
|
+
if corpNum.length != 10
|
144
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
145
|
+
end
|
146
|
+
|
147
|
+
httpget("/EasyFin/Bank?TG=BankAccount", corpNum, userID)['url']
|
148
|
+
end
|
149
|
+
|
150
|
+
def listBankAccount(corpNum, userID = "")
|
151
|
+
if corpNum.length != 10
|
152
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
153
|
+
end
|
154
|
+
|
155
|
+
httpget("/EasyFin/Bank/ListBankAccount", corpNum, userID)
|
156
|
+
end
|
157
|
+
|
158
|
+
def requestJob(corpNum, bankCode, accountNumber, sDate, eDate, userID = "")
|
159
|
+
if corpNum.length != 10
|
160
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
161
|
+
end
|
162
|
+
if bankCode.to_s == ''
|
163
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
164
|
+
end
|
165
|
+
if accountNumber.to_s == ''
|
166
|
+
raise PopbillException.new('-99999999', '계좌번호가 입력되지 않았습니다.')
|
167
|
+
end
|
168
|
+
if sDate.to_s == ''
|
169
|
+
raise PopbillException.new('-99999999', '시작일자가 입력되지 않았습니다.')
|
170
|
+
end
|
171
|
+
if eDate.to_s == ''
|
172
|
+
raise PopbillException.new('-99999999', '종료일자가 입력되지 않았습니다.')
|
173
|
+
end
|
174
|
+
|
175
|
+
uri = "/EasyFin/Bank/BankAccount?BankCode=#{bankCode}&AccountNumber=#{accountNumber}&SDate=#{sDate}&EDate=#{eDate}"
|
176
|
+
|
177
|
+
httppost(uri, corpNum, "", "", userID)['jobID']
|
178
|
+
end
|
179
|
+
|
180
|
+
def getJobState(corpNum, jobID, userID = "")
|
181
|
+
if corpNum.length != 10
|
182
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
183
|
+
end
|
184
|
+
if jobID.to_s == ''
|
185
|
+
raise PopbillException.new('-99999999', '작업아이디(jobID)가 입력되지 않았습니다.')
|
186
|
+
end
|
187
|
+
|
188
|
+
httpget("/EasyFin/Bank/#{jobID}/State", corpNum, userID)
|
189
|
+
end
|
190
|
+
|
191
|
+
def listActiveJob(corpNum, userID = "")
|
192
|
+
if corpNum.length != 10
|
193
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
194
|
+
end
|
195
|
+
|
196
|
+
httpget("/EasyFin/Bank/JobList", corpNum, userID)
|
197
|
+
end
|
198
|
+
|
199
|
+
def search(corpNum, jobID, tradeType, searchString, page, perPage, order, userID = '')
|
200
|
+
if corpNum.length != 10
|
201
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
202
|
+
end
|
203
|
+
if jobID.length != 18
|
204
|
+
raise PopbillException.new('-99999999', '작업아이디(jobID)가 올바르지 않습니다.')
|
205
|
+
end
|
206
|
+
|
207
|
+
uri = "/EasyFin/Bank/#{jobID}"
|
208
|
+
uri += "?TradeType=" + tradeType.join(',')
|
209
|
+
uri += "&Page=" + page.to_s
|
210
|
+
uri += "&PerPage=" + perPage.to_s
|
211
|
+
uri += "&Order=" + order
|
212
|
+
|
213
|
+
if searchString.to_s != ''
|
214
|
+
uri += "&SearchString=" + searchString
|
215
|
+
end
|
216
|
+
|
217
|
+
httpget(URI.escape(uri), corpNum, userID)
|
218
|
+
end
|
219
|
+
|
220
|
+
def summary(corpNum, jobID, tradeType, searchString, userID = '')
|
221
|
+
if corpNum.length != 10
|
222
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
223
|
+
end
|
224
|
+
if jobID.length != 18
|
225
|
+
raise PopbillException.new('-99999999', '작업아이디(jobID)가 올바르지 않습니다.')
|
226
|
+
end
|
227
|
+
|
228
|
+
uri = "/EasyFin/Bank/#{jobID}/Summary"
|
229
|
+
uri += "?TradeType=" + tradeType.join(',')
|
230
|
+
|
231
|
+
if searchString.to_s != ''
|
232
|
+
uri += "&SearchString=" + searchString
|
233
|
+
end
|
234
|
+
|
235
|
+
httpget(URI.escape(uri), corpNum, userID)
|
236
|
+
end
|
237
|
+
|
238
|
+
def saveMemo(corpNum, tid, memo, userID = "")
|
239
|
+
if corpNum.length != 10
|
240
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
241
|
+
end
|
242
|
+
if tid.to_s == ''
|
243
|
+
raise PopbillException.new('-99999999', '거래내역 아이디가 입력되지 않았습니다.')
|
244
|
+
end
|
245
|
+
|
246
|
+
|
247
|
+
uri = "/EasyFin/Bank/SaveMemo?TID=#{tid}&Memo=#{memo}"
|
248
|
+
|
249
|
+
httppost(uri, corpNum, "", "", userID)
|
250
|
+
end
|
251
|
+
|
252
|
+
def getFlatRatePopUpURL(corpNum, userID = "")
|
253
|
+
if corpNum.length != 10
|
254
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
255
|
+
end
|
256
|
+
|
257
|
+
httpget("/EasyFin/Bank?TG=CHRG", corpNum, userID)['url']
|
258
|
+
end
|
259
|
+
|
260
|
+
def getFlatRateState(corpNum, bankCode, accountNumber, userID = "")
|
261
|
+
if corpNum.length != 10
|
262
|
+
raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
|
263
|
+
end
|
264
|
+
|
265
|
+
if bankCode.to_s == ''
|
266
|
+
raise PopbillException.new('-99999999', '은행코드가 입력되지 않았습니다.')
|
267
|
+
end
|
268
|
+
if accountNumber.to_s == ''
|
269
|
+
raise PopbillException.new('-99999999', '계좌번호가 입력되지 않았습니다.')
|
270
|
+
end
|
271
|
+
|
272
|
+
httpget("/EasyFin/Bank/Contract/#{bankCode}/#{accountNumber}", corpNum, userID)
|
273
|
+
end
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: popbill
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.16.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-
|
11
|
+
date: 2020-07-15 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.
|
19
|
+
version: 1.3.1
|
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.
|
26
|
+
version: 1.3.1
|
27
27
|
description: Popbill API SDK
|
28
28
|
email: code@linkhub.co.kr
|
29
29
|
executables: []
|
@@ -31,8 +31,10 @@ extensions: []
|
|
31
31
|
extra_rdoc_files: []
|
32
32
|
files:
|
33
33
|
- lib/popbill.rb
|
34
|
+
- lib/popbill/accountCheck.rb
|
34
35
|
- lib/popbill/cashbill.rb
|
35
36
|
- lib/popbill/closedown.rb
|
37
|
+
- lib/popbill/easyFinBank.rb
|
36
38
|
- lib/popbill/fax.rb
|
37
39
|
- lib/popbill/htCashbill.rb
|
38
40
|
- lib/popbill/htTaxinvoice.rb
|