popbill 1.5.1 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e450dc1981d78100dbb09006545cec024e7f817b
4
- data.tar.gz: 5d9b65e971f7351f5a50e98aeeadcb0276ede515
3
+ metadata.gz: 3f7cc3d24260e8d0357184b85867f04f16a3040f
4
+ data.tar.gz: bd60c1eadec296a587fe95a566f62757a6c6388b
5
5
  SHA512:
6
- metadata.gz: db126168a555cc181bf2fffbfd02c365612d91771aa49770dc473555a81b80b057f85ad1de69be2dc393fa69fe26d54383810aabc9e97f186bfc5b2941ab0ec8
7
- data.tar.gz: 22c3284000fa4ba597e327a81f3e9103a74e5277703ba6edad1a671f65b12e85c3b11a77c195cf7fd9958e3c566d576cdfcb1250f21400d7fd91309d221e6350
6
+ metadata.gz: 1a52baf5909c94324c134b80f0c16564d3cdd5797672c0a4be3e43a0e4da8869eb9121176908453211c51889e7ecedc2f1c72e5a286d83cf04643f1491491e01
7
+ data.tar.gz: 81e639baea8a2932f9b8984b01a406366b53cb494da2533145d4457dfaee63f124ac3d6f9c803770ec552162885121585e771bab3829375865d91680452c370a
data/lib/popbill/fax.rb CHANGED
@@ -10,6 +10,7 @@ class FaxService < BaseService
10
10
  @instance.addScope("160")
11
11
  return @instance
12
12
  end
13
+
13
14
  private :new
14
15
  end
15
16
 
@@ -42,19 +43,19 @@ class FaxService < BaseService
42
43
  end
43
44
 
44
45
  def search(corpNum, sDate, eDate, state, reserveYN, senderOnly, page, perPage,
45
- order, userID = '')
46
+ order, userID = '')
46
47
  if corpNum.length != 10
47
- raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
48
+ raise PopbillException.new(-99999999, '사업자등록번호가 올바르지 않습니다.')
48
49
  end
49
50
  if sDate.to_s == ''
50
- raise PopbillException.new('-99999999', '시작일자가 입력되지 않았습니다.')
51
+ raise PopbillException.new(-99999999, '시작일자가 입력되지 않았습니다.')
51
52
  end
52
53
  if eDate.to_s == ''
53
- raise PopbillException.new('-99999999', '종료일자가 입력되지 않았습니다.')
54
+ raise PopbillException.new(-99999999, '종료일자가 입력되지 않았습니다.')
54
55
  end
55
56
 
56
57
  uri = "/FAX/Search?SDate=#{sDate}&EDate=#{eDate}"
57
- uri += "&State=" + state.join(',')
58
+ uri += "&State=" + state.join(',') if state.to_s != ''
58
59
  uri += "&ReserveYN=" + reserveYN
59
60
  uri += "&SenderOnly=" + senderOnly
60
61
  uri += "&Page=" + page.to_s
@@ -65,23 +66,23 @@ class FaxService < BaseService
65
66
  end
66
67
 
67
68
  def sendFax(corpNum, senderNum, senderName, receiverNum, receiverName, filePath,
68
- reserveDT = '', userID = '', adsYN = false, title = '')
69
+ reserveDT = '', userID = '', adsYN = false, title = '', requestNum = '')
69
70
  if corpNum.length != 10
70
71
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
71
72
  end
72
73
 
73
74
  receiver = [
74
- {
75
- "rcv" => receiverNum,
76
- "rcvnm" => receiverName,
77
- }
75
+ {
76
+ "rcv" => receiverNum,
77
+ "rcvnm" => receiverName,
78
+ }
78
79
  ]
79
80
 
80
- sendFax_multi(corpNum, senderNum, senderName, receiver, filePath, reserveDT, userID, adsYN, title)
81
+ sendFax_multi(corpNum, senderNum, senderName, receiver, filePath, reserveDT, userID, adsYN, title, requestNum)
81
82
  end
82
83
 
83
84
  def sendFax_multi(corpNum, senderNum, senderName, receivers, filePaths,
84
- reserveDT = '', userID = '', adsYN = false, title = '')
85
+ reserveDT = '', userID = '', adsYN = false, title = '', requestNum = '')
85
86
  if corpNum.length != 10
86
87
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
87
88
  end
@@ -93,6 +94,7 @@ class FaxService < BaseService
93
94
  postData["sndDT"] = reserveDT
94
95
  postData["rcvs"] = receivers
95
96
  postData["title"] = title
97
+ postData["requestNum"] = requestNum
96
98
 
97
99
  if adsYN
98
100
  postData["adsYN"] = adsYN
@@ -102,27 +104,26 @@ class FaxService < BaseService
102
104
  end
103
105
 
104
106
  def resendFax(corpNum, receiptNum, senderNum, senderName, receiveNum, receiveName,
105
- reserveDT = '', userID = '', title = '')
107
+ reserveDT = '', userID = '', title = '', requestNum = '')
106
108
  if receiptNum.to_s == ''
107
109
  raise PopbillException.new('-99999999', '팩스접수번호(receiptNum)가 입력되지 않았습니다.')
108
110
  end
109
111
 
110
112
  receiver = nil
111
-
112
113
  if receiveNum.to_s != '' || receiveName.to_s != ''
113
114
  receiver = [
114
- {
115
- "rcv" => receiveNum,
116
- "rcvnm" => receiveName,
117
- }
115
+ {
116
+ "rcv" => receiveNum,
117
+ "rcvnm" => receiveName,
118
+ }
118
119
  ]
119
120
  end
120
121
 
121
- resendFax_multi(corpNum, receiptNum, senderNum, senderName, receiver, reserveDT, userID, title)
122
+ resendFax_multi(corpNum, receiptNum, senderNum, senderName, receiver, reserveDT, userID, title, requestNum)
122
123
  end
123
124
 
124
- def resendFax_multi(corpNum, receiptNum, senderNum ='', senderName='', receivers = nil,
125
- reserveDT = '', userID = '', title = '')
125
+ def resendFax_multi(corpNum, receiptNum, senderNum = '', senderName = '', receivers = nil,
126
+ reserveDT = '', userID = '', title = '', requestNum = '')
126
127
  if corpNum.length != 10
127
128
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
128
129
  end
@@ -133,16 +134,59 @@ class FaxService < BaseService
133
134
  postData["sndDT"] = reserveDT
134
135
  postData["rcvs"] = receivers
135
136
  postData["title"] = title
137
+ postData["requestNum"] = requestNum
136
138
 
137
139
  postData = postData.to_json
138
140
 
139
141
  httppost("/FAX/#{receiptNum}", corpNum, postData, "", userID)['receiptNum']
140
142
  end
141
143
 
144
+ def resendFAXRN(corpNum, orgRequestNum, senderNum, senderName, receiveNum, receiveName,
145
+ reserveDT = '', userID = '', title = '', requestNum = '')
146
+
147
+ receiver = nil
148
+
149
+ if receiveNum.to_s != '' || receiveName.to_s != ''
150
+ receiver = [
151
+ {
152
+ "rcv" => receiveNum,
153
+ "rcvnm" => receiveName,
154
+ }
155
+ ]
156
+ end
157
+
158
+ resendFAXRN_multi(corpNum, orgRequestNum, senderNum, senderName, receiver, reserveDT, userID, title, requestNum)
159
+ end
160
+
161
+ def resendFAXRN_multi(corpNum, orgRequestNum, senderNum = '', senderName = '', receivers = nil,
162
+ reserveDT = '', userID = '', title = '', requestNum = '')
163
+ if corpNum.length != 10
164
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
165
+ end
166
+ if orgRequestNum.to_s == ''
167
+ raise PopbillException.new(-99999999, "원본 팩스 요청번호가 입력되지 않았습니다.")
168
+ end
169
+
170
+ postData = {}
171
+ postData["snd"] = senderNum
172
+ postData["sndnm"] = senderName
173
+ postData["sndDT"] = reserveDT
174
+ postData["rcvs"] = receivers
175
+ postData["title"] = title
176
+ postData["requestNum"] = requestNum
177
+
178
+ postData = postData.to_json
179
+
180
+ httppost("/FAX/Resend/#{orgRequestNum}", corpNum, postData, "", userID)['receiptNum']
181
+ end
182
+
142
183
  def getFaxDetail(corpNum, receiptNum, userID = '')
143
184
  if corpNum.length != 10
144
185
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
145
186
  end
187
+ if receiptNum.to_s == ''
188
+ raise PopbillException.new(-99999999, "접수번호(receiptNum)가 입력되지 않았습니다.")
189
+ end
146
190
 
147
191
  httpget("/FAX/#{receiptNum}", corpNum, userID)
148
192
  end
@@ -151,10 +195,35 @@ class FaxService < BaseService
151
195
  if corpNum.length != 10
152
196
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
153
197
  end
198
+ if receiptNum.to_s == ''
199
+ raise PopbillException.new(-99999999, "접수번호(receiptNum)가 입력되지 않았습니다.")
200
+ end
154
201
 
155
202
  httpget("/FAX/#{receiptNum}/Cancel", corpNum, userID)
156
203
  end
157
204
 
158
205
 
206
+ def getFaxDetailRN(corpNum, requestNum, userID = '')
207
+ if corpNum.length != 10
208
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
209
+ end
210
+ if requestNum.to_s == ''
211
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.")
212
+ end
213
+
214
+ httpget("/FAX/Get/#{requestNum}", corpNum, userID)
215
+ end
216
+
217
+
218
+ def cancelReserveRN(corpNum, requestNum, userID = '')
219
+ if corpNum.length != 10
220
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
221
+ end
222
+ if requestNum.to_s == ''
223
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.")
224
+ end
225
+
226
+ httpget("/FAX/Cancel/#{requestNum}", corpNum, userID)
227
+ end
159
228
 
160
229
  end # end of FaxService
@@ -0,0 +1,220 @@
1
+ # -* coding: utf-8 -*-
2
+ require_relative '../popbill.rb'
3
+
4
+ # 팝빌 카카오톡 API Service Implementation
5
+ class KakaoService < BaseService
6
+ class << self
7
+ def instance(linkID, secretKey)
8
+ super(linkID, secretKey)
9
+ @instance ||= new
10
+ @instance.addScope("153")
11
+ @instance.addScope("154")
12
+ @instance.addScope("155")
13
+ return @instance
14
+ end
15
+
16
+ private :new
17
+ end
18
+
19
+ def getURL(corpNum, togo, userID = '')
20
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
21
+
22
+ (togo == "SENDER") ?
23
+ httpget("/Message/?TG=#{togo}", corpNum, userID)['url'] :
24
+ httpget("/KakaoTalk/?TG=#{togo}", corpNum, userID)['url']
25
+ end
26
+
27
+ def listPlusFriendID(corpNum, userID = '')
28
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
29
+
30
+ httpget("/KakaoTalk/ListPlusFriendID", corpNum, userID)
31
+ end
32
+
33
+ def getSenderNumberList(corpNum, userID = '')
34
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
35
+
36
+ httpget("/Message/SenderNumber", corpNum, userID)
37
+ end
38
+
39
+ def listATSTemplate(corpNum, userID = '')
40
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
41
+
42
+ httpget("/KakaoTalk/ListATSTemplate", corpNum, userID)
43
+ end
44
+
45
+ def sendATS_one(corpNum, templateCode, snd, content, altContent, altSendType, sndDT, receiver, receiverName, requestNum = '', userID = '')
46
+ msg = [
47
+ {
48
+ "rcv" => receiver,
49
+ "rcvnm" => receiverName,
50
+ "msg" => content,
51
+ "altmsg" => altContent,
52
+ }
53
+ ]
54
+ sendATS_same(corpNum, templateCode, snd, "", "", altSendType, sndDT, msg, requestNum, userID)
55
+ end
56
+
57
+ def sendATS_multi(corpNum, templateCode, snd, altSendType, sndDT, msgs, requestNum = '', userID = '')
58
+ sendATS_same(corpNum, templateCode, snd, "", "", altSendType, sndDT, msgs, requestNum, userID)
59
+ end
60
+
61
+ def sendATS_same(corpNum, templateCode, snd, content, altContent, altSendType, sndDT, msgs, requestNum = '', userID = '')
62
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
63
+ raise PopbillException.new(-99999999, "알림톡 템플릿코드가 입력되지 않았습니다.") if templateCode.to_s == ''
64
+ raise PopbillException.new(-99999999, "발신번호가 입력되지 않았습니다.") if snd.to_s == ''
65
+
66
+ req = {}
67
+ req["templateCode"] = templateCode if templateCode.to_s != ''
68
+ req["snd"] = snd if snd.to_s != ''
69
+ req["content"] = content if content.to_s != ''
70
+ req["altContent"] = altContent if altContent.to_s != ''
71
+ req["altSendType"] = altSendType if altSendType.to_s != ''
72
+ req["sndDT"] = sndDT if sndDT.to_s != ''
73
+ req["requestNum"] = requestNum if requestNum.to_s != ''
74
+ req["msgs"] = msgs if msgs.to_s != ''
75
+
76
+ postData = req.to_json
77
+ httppost("/ATS", corpNum, postData, "", userID)
78
+ end
79
+
80
+ def sendFTS_one(corpNum, plusFriendID, snd, content, altContent, altSendType, sndDT, receiver, receiverName, btns, adsYN = false, requestNum = '', userID = '')
81
+ msg = [
82
+ {
83
+ "rcv" => receiver,
84
+ "rcvnm" => receiverName,
85
+ "msg" => content,
86
+ "altmsg" => altContent,
87
+ }
88
+ ]
89
+ sendFTS_same(corpNum, plusFriendID, snd, "", "", altSendType, sndDT, msg, btns, adsYN, requestNum, userID)
90
+ end
91
+
92
+ def sendFTS_multi(corpNum, plusFriendID, snd, altSendType, sndDT, msgs, btns, adsYN = false, requestNum = '', userID = '')
93
+ sendFTS_same(corpNum, plusFriendID, snd, "", "", altSendType, sndDT, msgs, btns, adsYN, requestNum, userID)
94
+ end
95
+
96
+ def sendFTS_same(corpNum, plusFriendID, snd, content, altContent, altSendType, sndDT, msgs, btns, adsYN = false, requestNum = '', userID = '')
97
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
98
+ raise PopbillException.new(-99999999, "플러스친구 아이디가 입력되지 않았습니다.") if plusFriendID.to_s == ''
99
+ raise PopbillException.new(-99999999, "발신번호가 입력되지 않았습니다.") if snd.to_s == ''
100
+
101
+ req = {}
102
+ req["plusFriendID"] = plusFriendID if plusFriendID.to_s != ''
103
+ req["snd"] = snd if snd.to_s != ''
104
+ req["content"] = content if content.to_s != ''
105
+ req["altContent"] = altContent if altContent.to_s != ''
106
+ req["altSendType"] = altSendType if altSendType.to_s != ''
107
+ req["sndDT"] = sndDT if sndDT.to_s != ''
108
+ req["msgs"] = msgs if msgs.to_s != ''
109
+ req["btns"] = btns if btns.to_s != ''
110
+ req["adsYN"] = adsYN if adsYN.to_s != ''
111
+ req["requestNum"] = requestNum if requestNum.to_s != ''
112
+
113
+ postData = req.to_json
114
+ httppost("/FTS", corpNum, postData, "", userID)
115
+ end
116
+
117
+ def sendFMS_one(corpNum, plusFriendID, snd, content, altContent, altSendType, sndDT, filePath, imageURL, receiver, receiverName, btns, adsYN = false, requestNum = '', userID = '')
118
+ msg = [
119
+ {
120
+ "rcv" => receiver,
121
+ "rcvnm" => receiverName,
122
+ "msg" => content,
123
+ "altmsg" => altContent,
124
+ }
125
+ ]
126
+ sendFMS_same(corpNum, plusFriendID, snd, "", "", altSendType, sndDT, filePath, imageURL, msg, btns, adsYN, requestNum, userID)
127
+ end
128
+
129
+ def sendFMS_multi(corpNum, plusFriendID, snd, altSendType, sndDT, filePath, imageURL, msgs, btns, adsYN = false, requestNum = '', userID = '')
130
+ sendFMS_same(corpNum, plusFriendID, snd, "", "", altSendType, sndDT, filePath, imageURL, msgs, btns, adsYN, requestNum, userID)
131
+ end
132
+
133
+ def sendFMS_same(corpNum, plusFriendID, snd, content, altContent, altSendType, sndDT, filePath, imageURL, msgs, btns, adsYN = false, requestNum = '', userID = '')
134
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
135
+ raise PopbillException.new(-99999999, "플러스친구 아이디가 입력되지 않았습니다.") if plusFriendID.to_s == ''
136
+ raise PopbillException.new(-99999999, "발신번호가 입력되지 않았습니다.") if snd.to_s == ''
137
+
138
+ req = {}
139
+ req["plusFriendID"] = plusFriendID if plusFriendID.to_s != ''
140
+ req["snd"] = snd if snd.to_s != ''
141
+ req["content"] = content if content.to_s != ''
142
+ req["altContent"] = altContent if altContent.to_s != ''
143
+ req["altSendType"] = altSendType if altSendType.to_s != ''
144
+ req["sndDT"] = sndDT if sndDT.to_s != ''
145
+ req["imageURL"] = imageURL if imageURL.to_s != ''
146
+ req["msgs"] = msgs if msgs.to_s != ''
147
+ req["btns"] = btns if btns.to_s != ''
148
+ req["adsYN"] = adsYN if adsYN.to_s != ''
149
+ req["requestNum"] = requestNum if requestNum.to_s != ''
150
+
151
+ httppostfile("/FMS", corpNum, req, [filePath], userID)
152
+ end
153
+
154
+ def cancelReserve(corpNum, receiptNum, userID = '')
155
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
156
+ raise PopbillException.new(-99999999, "접수번호(receiptNum)가 입력되지 않았습니다.") if receiptNum.to_s == ''
157
+
158
+ httpget("/KakaoTalk/#{receiptNum}/Cancel", corpNum, userID)
159
+ end
160
+
161
+ def cancelReserveRN(corpNum, requestNum, userID = '')
162
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
163
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.") if requestNum.to_s == ''
164
+
165
+ httpget("/KakaoTalk/Cancel/#{requestNum}", corpNum, userID)
166
+ end
167
+
168
+
169
+ def getMessages(corpNum, receiptNum, userID = '')
170
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
171
+ raise PopbillException.new(-99999999, "접수번호(receiptNum)가 입력되지 않았습니다.") if receiptNum.to_s == ''
172
+
173
+ httpget("/KakaoTalk/#{receiptNum}", corpNum, userID)
174
+ end
175
+
176
+ def getMessagesRN(corpNum, requestNum, userID = '')
177
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
178
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.") if requestNum.to_s == ''
179
+
180
+ httpget("/KakaoTalk/Get/#{requestNum}", corpNum, userID)
181
+ end
182
+
183
+ def search(corpNum, sDate, eDate, state, item, reserveYN, senderYN, page, perPage, order, userID = '')
184
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
185
+ raise PopbillException.new(-99999999, "시작일자가 입력되지 않았습니다.") if sDate.to_s == ''
186
+ raise PopbillException.new(-99999999, "종료일자가 입력되지 않았습니다.") if eDate.to_s == ''
187
+
188
+ uri = "/KakaoTalk/Search?SDate=#{sDate}&EDate=#{eDate}"
189
+ uri += "&State=" + state.join(',') if state.to_s != ''
190
+ uri += "&Item=" + item.join(',') if item.to_s != ''
191
+ uri += "&ReserveYN=" + reserveYN
192
+ uri += "&SenderYN=" + senderYN
193
+ uri += "&Page=" + page.to_s
194
+ uri += "&PerPage=" + perPage.to_s
195
+ uri += "&Order=" + order
196
+
197
+ httpget(URI.escape(uri), corpNum, userID)
198
+ end
199
+
200
+
201
+ def getUnitCost(corpNum, msgType, userID = '')
202
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
203
+
204
+ httpget("/KakaoTalk/UnitCost?Type=#{msgType}", corpNum, userID)
205
+ end
206
+
207
+ def getChargeInfo(corpNum, msgType, userID = '')
208
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.") if corpNum.length != 10
209
+
210
+ httpget("/KakaoTalk/ChargeInfo?Type=#{msgType}", corpNum, userID)
211
+ end
212
+
213
+ end
214
+
215
+
216
+ module KakaoMsgType
217
+ ATS = "ATS"
218
+ FTS = "FTS"
219
+ FMS = "FMS"
220
+ end
@@ -12,6 +12,7 @@ class MessageService < BaseService
12
12
  @instance.addScope("152")
13
13
  return @instance
14
14
  end
15
+
15
16
  private :new
16
17
  end
17
18
 
@@ -45,7 +46,7 @@ class MessageService < BaseService
45
46
 
46
47
 
47
48
  def sendMessage(msgType, corpNum, sender, senderName, subject, contents,
48
- messages, reserveDT, adsYN = false, userID = '')
49
+ messages, reserveDT, adsYN = false, userID = '', requestNum = '')
49
50
 
50
51
  if corpNum.length != 10
51
52
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
@@ -74,6 +75,9 @@ class MessageService < BaseService
74
75
  if adsYN
75
76
  req["adsYN"] = true
76
77
  end
78
+ if requestNum.to_s != ''
79
+ req["requestNum"] = requestNum
80
+ end
77
81
 
78
82
  postData = req.to_json
79
83
 
@@ -82,107 +86,108 @@ class MessageService < BaseService
82
86
 
83
87
 
84
88
  def sendSMS(corpNum, sender, senderName, receiver, receiverName, contents,
85
- reserveDT = '', adsYN = false, userID = '')
89
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
86
90
 
87
91
  messages = [
88
- {
89
- "snd" => sender,
90
- "sndName" => senderName,
91
- "rcv" => receiver,
92
- "rcvnm" => receiverName,
93
- "msg" => contents,
94
- }
92
+ {
93
+ "snd" => sender,
94
+ "sndName" => senderName,
95
+ "rcv" => receiver,
96
+ "rcvnm" => receiverName,
97
+ "msg" => contents,
98
+ }
95
99
  ]
96
100
  sendMessage("SMS", corpNum, '', '', '', '', messages, reserveDT,
97
- adsYN, userID
101
+ adsYN, userID, requestNum
98
102
  )
99
103
  end
100
104
 
101
105
  def sendSMS_multi(corpNum, sender, senderName, contents, messages, reserveDT = '',
102
- adsYN = false, userID = '')
106
+ adsYN = false, userID = '', requestNum = '')
103
107
 
104
108
  sendMessage("SMS", corpNum, sender, senderName, '', contents, messages, reserveDT,
105
- adsYN, userID
109
+ adsYN, userID, requestNum
106
110
  )
107
111
  end
108
112
 
109
113
 
110
114
  def sendLMS(corpNum, sender, senderName, receiver, receiverName, subject, contents,
111
- reserveDT = '', adsYN = false, userID = '')
115
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
112
116
 
113
117
  messages = [
114
- {
115
- "snd" => sender,
116
- "sndName" => senderName,
117
- "rcv" => receiver,
118
- "rcvnm" => receiverName,
119
- "msg" => contents,
120
- "sjt" => subject,
121
- }
118
+ {
119
+ "snd" => sender,
120
+ "sndName" => senderName,
121
+ "rcv" => receiver,
122
+ "rcvnm" => receiverName,
123
+ "msg" => contents,
124
+ "sjt" => subject,
125
+ }
122
126
  ]
123
127
 
124
128
  sendMessage("LMS", corpNum, '', '', '', '', messages, reserveDT,
125
- adsYN, userID
129
+ adsYN, userID, requestNum
126
130
  )
127
131
  end
128
132
 
129
- def sendXMS_multi(corpNum, sender, senderName, subject, contents, messages,
130
- reserveDT = '', adsYN = false, userID = '')
133
+ def sendLMS_multi(corpNum, sender, senderName, subject, contents, messages,
134
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
131
135
 
132
- sendMessage("XMS", corpNum, sender, senderName, subject, contents, messages,
133
- reserveDT, adsYN, userID
136
+ sendMessage("LMS", corpNum, sender, senderName, subject, contents, messages,
137
+ reserveDT, adsYN, userID, requestNum
134
138
  )
135
139
  end
136
140
 
141
+
137
142
  def sendXMS(corpNum, sender, senderName, receiver, receiverName, subject, contents,
138
- reserveDT = '', adsYN = false, userID = '')
143
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
139
144
 
140
145
  messages = [
141
- {
142
- "snd" => sender,
143
- "sndName" => senderName,
144
- "rcv" => receiver,
145
- "rcvnm" => receiverName,
146
- "msg" => contents,
147
- "sjt" => subject,
148
- }
146
+ {
147
+ "snd" => sender,
148
+ "sndName" => senderName,
149
+ "rcv" => receiver,
150
+ "rcvnm" => receiverName,
151
+ "msg" => contents,
152
+ "sjt" => subject,
153
+ }
149
154
  ]
150
155
 
151
156
  sendMessage("XMS", corpNum, '', '', '', '', messages, reserveDT,
152
- adsYN, userID
157
+ adsYN, userID, requestNum
153
158
  )
154
159
  end
155
160
 
156
- def sendLMS_multi(corpNum, sender, senderName, subject, contents, messages,
157
- reserveDT = '', adsYN = false, userID = '')
161
+ def sendXMS_multi(corpNum, sender, senderName, subject, contents, messages,
162
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
158
163
 
159
- sendMessage("LMS", corpNum, sender, senderName, subject, contents, messages,
160
- reserveDT, adsYN, userID
164
+ sendMessage("XMS", corpNum, sender, senderName, subject, contents, messages,
165
+ reserveDT, adsYN, userID, requestNum
161
166
  )
162
167
  end
163
168
 
164
169
 
165
170
  def sendMMS(corpNum, sender, senderName, receiver, receiverName, subject, contents,
166
- filePath, reserveDT = '', adsYN = false, userID = '')
171
+ filePath, reserveDT = '', adsYN = false, userID = '', requestNum = '')
167
172
 
168
173
  messages = [
169
- {
170
- "snd" => sender,
171
- "sndnm" => senderName,
172
- "rcv" => receiver,
173
- "rcvnm" => receiverName,
174
- "msg" => contents,
175
- "sjt" => subject,
176
- }
174
+ {
175
+ "snd" => sender,
176
+ "sndnm" => senderName,
177
+ "rcv" => receiver,
178
+ "rcvnm" => receiverName,
179
+ "msg" => contents,
180
+ "sjt" => subject,
181
+ }
177
182
  ]
178
183
 
179
184
  sendMMS_multi(corpNum, sender, senderName, subject, contents, messages, filePath,
180
- reserveDT, adsYN, userID
185
+ reserveDT, adsYN, userID, requestNum
181
186
  )
182
187
  end
183
188
 
184
189
  def sendMMS_multi(corpNum, sender, senderName, subject, contents, messages, filePath,
185
- reserveDT = '', adsYN = false, userID = '')
190
+ reserveDT = '', adsYN = false, userID = '', requestNum = '')
186
191
 
187
192
  if corpNum.length != 10
188
193
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
@@ -212,6 +217,10 @@ class MessageService < BaseService
212
217
  req["adsYN"] = true
213
218
  end
214
219
 
220
+ if requestNum.to_s != ''
221
+ req["requestNum"] = requestNum
222
+ end
223
+
215
224
  httppostfile("/MMS", corpNum, req, [filePath], userID)['receiptNum']
216
225
  end
217
226
 
@@ -226,6 +235,17 @@ class MessageService < BaseService
226
235
  httpget("/Message/#{receiptNum}", corpNum, userID)
227
236
  end
228
237
 
238
+ def getMessagesRN(corpNum, requestNum, userID = '')
239
+ if corpNum.length != 10
240
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
241
+ end
242
+ if requestNum.to_s == ''
243
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.")
244
+ end
245
+
246
+ httpget("/Message/Get/#{requestNum}", corpNum, userID)
247
+ end
248
+
229
249
  def cancelReserve(corpNum, receiptNum, userID = '')
230
250
  if corpNum.length != 10
231
251
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
@@ -237,6 +257,17 @@ class MessageService < BaseService
237
257
  httpget("/Message/#{receiptNum}/Cancel", corpNum, userID)
238
258
  end
239
259
 
260
+ def cancelReserveRN(corpNum, requestNum, userID = '')
261
+ if corpNum.length != 10
262
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
263
+ end
264
+ if requestNum.to_s == ''
265
+ raise PopbillException.new(-99999999, "요청번호(requestNum)가 입력되지 않았습니다.")
266
+ end
267
+
268
+ httpget("/Message/Cancel/#{requestNum}", corpNum, userID)
269
+ end
270
+
240
271
  def getURL(corpNum, togo, userID = '')
241
272
  if corpNum.length != 10
242
273
  raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
@@ -246,7 +277,7 @@ class MessageService < BaseService
246
277
  end
247
278
 
248
279
  def search(corpNum, sDate, eDate, state, item, reserveYN, senderYN, page, perPage,
249
- order, userID = '')
280
+ order, userID = '')
250
281
  if corpNum.length != 10
251
282
  raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
252
283
  end
@@ -269,6 +300,19 @@ class MessageService < BaseService
269
300
  httpget(URI.escape(uri), corpNum, userID)
270
301
  end
271
302
 
303
+ def getStates(corpNum, reciptNumList, userID = '')
304
+ if corpNum.length != 10
305
+ raise PopbillException.new(-99999999, "사업자등록번호가 올바르지 않습니다.")
306
+ end
307
+ unless reciptNumList.any?
308
+ raise PopbillException.new(-99999999, "접수번호 배열이 올바르지 않습니다.")
309
+ end
310
+
311
+ postData = reciptNumList.to_json
312
+
313
+ httppost("/Message/States", corpNum, postData, "", userID)
314
+
315
+ end
272
316
 
273
317
  end # end of MessageService
274
318
 
@@ -644,6 +644,20 @@ class TaxinvoiceService < BaseService
644
644
 
645
645
  httppost("/Taxinvoice/#{mgtKeyType}/#{mgtKey}/DetachStmt", corpNum, postData, "", userID)
646
646
  end
647
+
648
+ def assignMgtKey(corpNum, mgtKeyType, itemKey, mgtKey, userID = '')
649
+ if corpNum.length != 10
650
+ raise PopbillException.new('-99999999', '사업자등록번호가 올바르지 않습니다.')
651
+ end
652
+ if itemKey.to_s == ''
653
+ raise PopbillException.new('-99999999', '해당문서의 아이템키가 입력되지 않았습니다.')
654
+ end
655
+
656
+ String postDate = "MgtKey="+mgtKey
657
+
658
+ httppost("/Taxinvoice/#{itemKey}/#{mgtKeyType}", corpNum, postDate, "", userID, "application/x-www-form-urlencoded; charset=utf-8")
659
+ end
660
+
647
661
  end # end of TaxinvoiceService
648
662
 
649
663
  module MgtKeyType
data/lib/popbill.rb CHANGED
@@ -122,13 +122,19 @@ class BaseService
122
122
  end #end of httpget
123
123
 
124
124
  # Request HTTP Post
125
- def httppost(url, corpNum, postData, action = '', userID = '')
125
+ def httppost(url, corpNum, postData, action = '', userID = '', contentsType = '')
126
+
126
127
  headers = {
127
128
  "x-pb-version" => BaseService::POPBILL_APIVersion,
128
129
  "Accept-Encoding" => "gzip,deflate",
129
- "Content-Type" => "application/json; charset=utf8",
130
130
  }
131
131
 
132
+ if contentsType == ''
133
+ headers["Content-Type"] = "application/json; charset=utf8"
134
+ else
135
+ headers["Content-Type"] = contentsType
136
+ end
137
+
132
138
  if corpNum.to_s != ''
133
139
  headers["Authorization"] = "Bearer " + getSession_Token(corpNum)
134
140
  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.5.1
4
+ version: 1.6.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: 2017-12-05 00:00:00.000000000 Z
11
+ date: 2018-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkhub
@@ -36,6 +36,7 @@ files:
36
36
  - lib/popbill/fax.rb
37
37
  - lib/popbill/htCashbill.rb
38
38
  - lib/popbill/htTaxinvoice.rb
39
+ - lib/popbill/kakaotalk.rb
39
40
  - lib/popbill/message.rb
40
41
  - lib/popbill/statement.rb
41
42
  - lib/popbill/taxinvoice.rb