epayco-sdk-ruby 1.0.2 → 1.0.4

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
  SHA256:
3
- metadata.gz: 8bebb3bfca80a5a06ff0ce6668e05b5b5ffd6d5890c70543757ea56d603e6554
4
- data.tar.gz: 1f431b3afc2fb1a23b321ee2f9ae0c78b156bd4db97d7cb0f50d46ba200609f5
3
+ metadata.gz: e5fdea20dfc03d7d2f77eb62c941eac12addc85419781bd7ae5858f4c7801fb5
4
+ data.tar.gz: d9c8224aa718b3dee2d13f895b2eb1494a50ec8e64bedb63ee47aa3eb491a649
5
5
  SHA512:
6
- metadata.gz: 7bd850836aae1957d6cccbb9594b0acae9fced30d03567d717d42d28ca0a13a8e9b9cf78b049803ce96160f87be27827ef41070acb06bf2d2439440a2f8f994e
7
- data.tar.gz: 54e8c8ad6411c580d56386418e6eda683ec6a7e24c670d84b4bb6c558cc9f909e398f00378eafcb949178632b89b7a35c61d46557f607047b009c371dd865703
6
+ metadata.gz: 36630ff1b469337c61697659809cebb7959fb3c4bf3342dde65b48b507f93306ce4e2538d4a451355e6d483f8dccf177306cf7d80723e55492917641942f8e58
7
+ data.tar.gz: 7513632302083abdd219d1dd04f7f0bbf243e51fb7cd97cde9de387d80a534c3342021ff9f7ee403f60d3b65b8f86bf380f57ab69c3592cd9a2b09ac627728ff
@@ -7,6 +7,8 @@ module Epayco
7
7
  # Action create
8
8
  def create params={}, extra=nil
9
9
  dt=false
10
+ apify = false
11
+ cashdata = false
10
12
  if self.url == "token"
11
13
  url = "/v1/tokens"
12
14
  elsif self.url == "customers"
@@ -18,39 +20,36 @@ module Epayco
18
20
  elsif self.url == "bank"
19
21
  url = "/restpagos/pagos/debitos.json"
20
22
  elsif self.url == "safetypay"
21
- cashdata = false
22
- sp = true
23
- url = "/restpagos/pagos/safetypays.json"
23
+ apify = true
24
+ url = "/payment/process/safetypay"
24
25
  elsif self.url == "cash"
26
+ cashdata = true
25
27
  if extra == "efecty"
26
28
  url = "/restpagos/v2/efectivo/efecty"
27
- cashdata = true
28
29
  elsif extra == "baloto"
29
30
  url = "/restpagos/v2/efectivo/baloto"
30
- cashdata = true
31
31
  elsif extra == "gana"
32
32
  url = "/restpagos/v2/efectivo/gana"
33
- cashdata = true
34
33
  elsif extra == "redservi"
35
34
  url = "/restpagos/v2/efectivo/redservi"
36
- cashdata = true
37
35
  elsif extra == "puntored"
38
36
  url = "/restpagos/v2/efectivo/puntored"
39
- cashdata = true
40
37
  else
41
38
  raise Error.new('109', Epayco.lang)
42
39
  end
43
40
  elsif self.url == "charge"
44
41
  url = "/payment/v1/charge/create"
42
+ elsif self.url == "daviplata"
43
+ url = "/payment/process/daviplata"
44
+ apify = true
45
45
  end
46
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
46
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify
47
47
  end
48
48
 
49
49
  # Action retrieve from id
50
50
  def get uid, params={}, extra=nil
51
51
  switch = self.switch;
52
52
  cashdata=false
53
- sp=false
54
53
  dt=false
55
54
  if self.url == "customers"
56
55
  url = "/payment/v1/customer/" + Epayco.apiKey + "/" + uid + "/"
@@ -65,18 +64,17 @@ module Epayco
65
64
  url = "/restpagos/transaction/response.json?ref_payco=" + uid + "&public_key=" + Epayco.apiKey
66
65
  switch = true
67
66
  end
68
- Epayco.request :get, url, extra, params, switch, cashdata, sp, dt
67
+ Epayco.request :get, url, extra, params, switch, cashdata, dt, apify = false
69
68
  end
70
69
 
71
70
  # Action update
72
71
  def update uid, params={}, extra=nil
73
72
  cashdata=false
74
- sp=false
75
73
  dt=false
76
74
  if self.url == "customers"
77
75
  url = "/payment/v1/customer/edit/" + Epayco.apiKey + "/" + uid + "/"
78
76
  end
79
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
77
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
80
78
  end
81
79
 
82
80
  # Action update token
@@ -84,36 +82,42 @@ module Epayco
84
82
  if self.url == "customers"
85
83
  url = "/payment/v1/customer/reasign/card/default"
86
84
  cashdata = false
87
- sp = false
88
85
  dt = true
89
86
  end
90
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
87
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
91
88
  end
92
89
 
93
90
  def delatetetoken params={}, extra=nil
94
91
  if self.url == "customers"
95
92
  url = "/v1/remove/token"
96
93
  cashdata = false
97
- sp = false
98
94
  dt = true
99
95
  end
100
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
96
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
101
97
  end
102
98
 
103
99
  def addtoken params={}, extra=nil
104
100
  if self.url == "customers"
105
101
  url = "/v1/customer/add/token"
106
102
  cashdata = false
107
- sp = false
108
103
  dt = true
109
104
  end
110
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
105
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
106
+ end
107
+
108
+ def getCustomer type, uid, extra=nil
109
+ if self.url == "customers"
110
+ url = "/payment/v1/customer/find?" + type + "=" + uid
111
+ puts url
112
+ cashdata = false
113
+ dt = true
114
+ end
115
+ Epayco.request :get, url, extra, {}, switch, cashdata, dt, apify = false
111
116
  end
112
117
 
113
118
  # Action retrieve all documents from user
114
119
  def list params={}, extra=nil
115
120
  cashdata=false
116
- sp=false
117
121
  dt=false
118
122
  if self.url == "customers"
119
123
  url = "/payment/v1/customers/" + Epayco.apiKey + "/"
@@ -124,43 +128,52 @@ module Epayco
124
128
  elsif self.url == "bank"
125
129
  url = "/restpagos/pse/bancos.json?public_key=" + Epayco.apiKey
126
130
  end
127
- Epayco.request :get, url, extra, params, self.switch, cashdata, sp, dt
131
+ Epayco.request :get, url, extra, params, self.switch, cashdata, dt, apify = false
128
132
  end
129
133
 
130
134
  # Remove data from api
131
135
  def delete uid, params={}, extra=nil
132
136
  cashdata=false
133
- sp=false
134
137
  dt=false
135
138
  if self.url == "plan"
136
139
  url = "/recurring/v1/plan/remove/" + Epayco.apiKey + "/" + uid
137
140
  end
138
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
141
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
139
142
  end
140
143
 
141
144
  # Cance subscription
142
145
  def cancel uid, params={}, extra=nil
143
146
  cashdata=false
144
- sp=false
145
147
  dt=false
146
148
  params["id"] = uid
147
149
  params["public_key"] = Epayco.apiKey
148
150
  if self.url == "subscriptions"
149
151
  url = "/recurring/v1/subscription/cancel"
150
152
  end
151
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
153
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
152
154
  end
153
155
 
154
156
  def charge params={}, extra=nil
155
157
  cashdata=false
156
- sp=false
157
158
  dt=false
158
159
  if self.url == "subscriptions"
159
160
  url = "/payment/v1/charge/subscription/create"
160
161
  end
161
- Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
162
+ Epayco.request :post, url, extra, params, self.switch, cashdata, dt, apify = false
162
163
  end
163
164
 
165
+ def confirm params={}
166
+ cashdata=false
167
+ dt=false
168
+ apify=true
169
+ if self.url == "daviplata"
170
+ url = "/payment/confirm/daviplata"
171
+ end
172
+ Epayco.request :post, url, nil, params, self.switch, cashdata, dt, apify
173
+
174
+ end
175
+
176
+
164
177
  end
165
178
 
166
179
  # Export methods
@@ -24,7 +24,7 @@ module Epayco
24
24
  end
25
25
 
26
26
  class Customers < Resource
27
- public_class_method :create, :get, :list, :update, :updatetoken, :delatetetoken, :addtoken
27
+ public_class_method :create, :get, :list, :update, :updatetoken, :delatetetoken, :addtoken, :getCustomer
28
28
  end
29
29
 
30
30
  class Plan < Resource
@@ -51,4 +51,8 @@ module Epayco
51
51
  public_class_method :create
52
52
  end
53
53
 
54
+ class Daviplata < Resource
55
+ public_class_method :create, :confirm
56
+ end
57
+
54
58
  end
data/lib/epayco.rb CHANGED
@@ -15,20 +15,27 @@ module Epayco
15
15
 
16
16
  # Get code, lang and show custom error
17
17
  def initialize code, lang
18
- file = open("https://s3-us-west-2.amazonaws.com/epayco/message_api/errors.json").read
18
+ file = open("https://multimedia.epayco.co/message-api/errors.json").read
19
19
  data_hash = JSON.parse(file)
20
- super data_hash[code][lang]
21
- @errors = errors
20
+ error = "Error"
21
+ if(data_hash[code.to_s])
22
+ error = [data_hash[code.to_s][lang]]
23
+ else
24
+ error = [code, lang]
25
+ end
26
+ super error
27
+ @errors = error
22
28
  end
23
29
 
24
30
  def each
25
- @errors.each { |e| yield *e.first }
31
+ @errors.each { |e| yield *e }
26
32
  end
27
33
  end
28
34
 
29
35
  # Endpoints
30
36
  @api_base = 'https://api.secure.payco.co'
31
37
  @api_base_secure = 'https://secure.payco.co'
38
+ @api_base_apify = "https://apify.epayco.co"
32
39
 
33
40
  # Init sdk parameters
34
41
  class << self
@@ -36,11 +43,11 @@ module Epayco
36
43
  end
37
44
 
38
45
  # Eject request and show response or error
39
- def self.request(method, url, extra=nil, params={}, headers={}, switch, cashdata, sp, dt)
46
+ def self.request(method, url, extra=nil, params={}, headers={}, switch, cashdata, dt, apify)
40
47
  method = method.to_sym
41
48
 
42
- auth = authent(apiKey ,privateKey)
43
- bearer_token = 'Bearer '+ auth[:bearer_token]
49
+ auth = authent(apiKey, privateKey, apify, lang)
50
+ bearer_token = 'Bearer '+ (auth[:bearer_token] || auth[:token])
44
51
 
45
52
  if !apiKey || !privateKey || !lang
46
53
  raise Error.new('100', lang)
@@ -49,8 +56,23 @@ module Epayco
49
56
  payload = JSON.generate(params) if method == :post || method == :patch
50
57
  params = nil unless method == :get
51
58
 
52
- # Switch secure or api
53
- if switch
59
+ # Switch secure or api or apify
60
+ if apify
61
+ @tags = JSON.parse(payload)
62
+ seted = {}
63
+ file = File.read(File.dirname(__FILE__) + '/keylang_apify.json')
64
+ data_hash = JSON.parse(file)
65
+ @tags.each {
66
+ |key, value|
67
+ if data_hash[key]
68
+ seted[data_hash[key]] = value
69
+ else
70
+ seted[key] = value
71
+ end
72
+ }
73
+ payload = seted.to_json
74
+ url = @api_base_apify + url
75
+ elsif switch
54
76
  if method == :post || method == :patch
55
77
  if cashdata
56
78
  enc = encrypt_aes(payload, true)
@@ -75,36 +97,23 @@ module Epayco
75
97
  url = @api_base + url
76
98
  end
77
99
 
78
- if sp
79
- headers = {
80
- :content_type => 'multipart/form-data'
81
- }.merge(headers)
82
-
83
- options = {
84
- :headers => headers,
85
- :user => apiKey,
86
- :method => method,
87
- :url => url,
88
- :payload => payload
89
- }
90
- else
91
- headers = {
92
- :params => params,
93
- :content_type => 'application/json',
94
- :type => 'sdk-jwt',
95
- :lang => 'RUBY',
96
- :Authorization => bearer_token,
97
- }.merge(headers)
100
+
101
+ headers = {
102
+ :params => params,
103
+ :content_type => 'application/json',
104
+ :type => 'sdk-jwt',
105
+ :lang => 'RUBY',
106
+ :Authorization => bearer_token,
107
+ }.merge(headers)
98
108
 
99
- options = {
100
- :headers => headers,
101
- :user => apiKey,
102
- :method => method,
103
- :url => url,
104
- :payload => payload
105
- }
109
+ options = {
110
+ :headers => headers,
111
+ :user => apiKey,
112
+ :method => method,
113
+ :url => url,
114
+ :payload => payload
115
+ }
106
116
 
107
- end
108
117
  # Open library rest client
109
118
  begin
110
119
  #puts options
@@ -190,30 +199,36 @@ module Epayco
190
199
  data_hash[key]
191
200
  end
192
201
 
193
-
194
- def self.authent(apiKey, privateKey)
202
+ def self.authent(apiKey, privateKey, apify, lang)
195
203
  @parmas = {}
196
204
  @parmas["public_key"] = apiKey
197
205
  @parmas["private_key"] = privateKey
206
+
198
207
  headers = {
199
208
  # :params => @parmas,
200
209
  :Accept => 'application/json',
201
210
  :content_type => 'application/json',
202
211
  :type => 'sdk'
203
- }
212
+ }
213
+ url = 'https://api.secure.payco.co/v1/auth/login'
214
+ if(apify)
215
+ headers[:Authorization] = "Basic " + Base64.strict_encode64(apiKey + ":" + privateKey)
216
+ url = 'https://apify.epayco.co/login'
217
+ end
204
218
  payload = @parmas.to_json
205
219
  options = {
206
220
  :headers => headers,
207
221
  :user => apiKey,
208
222
  :method => 'post',
209
- :url => 'https://api.secure.payco.co/v1/auth/login',
210
- :payload => payload
223
+ :url => url,
224
+ :payload => if apify then nil else payload end
211
225
  }
212
-
213
226
  begin
214
227
  response = execute_request(options)
215
228
  return {} if response.code == 204 and method == :delete
216
- JSON.parse(response.body, :symbolize_names => true)
229
+ body = JSON.parse(response.body, :symbolize_names => true)
230
+ return body if body[:bearer_token] || body[:token]
231
+ raise Error.new("104", lang)
217
232
  rescue RestClient::Exception => e
218
233
  handle_errors e
219
234
  end
data/lib/keylang.json CHANGED
@@ -22,7 +22,8 @@
22
22
  "ip": "ip",
23
23
  "url_response": "url_respuesta",
24
24
  "url_confirmation": "url_confirmacion",
25
- "method_confirmation": "metodoconfirmacion",
25
+ "method_confirmation": "method_confirmation",
26
+ "metodoconfirmacion": "metodoconfirmacion",
26
27
  "end_date": "fechaexpiracion",
27
28
  "splitpayment": "splitpayment",
28
29
  "split_app_id": "split_app_id",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epayco-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Epayco development team
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-10-21 00:00:00.000000000 Z
13
+ date: 2023-03-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -106,8 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.7.6
109
+ rubygems_version: 3.2.3
111
110
  signing_key:
112
111
  specification_version: 4
113
112
  summary: Ruby wrapper for Epayco API