epayco-sdk-ruby 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 97054c161b4a8cb6fe9503344bfc44fc3aac5f647d9ed8b1748d12dbcbc787a1
4
+ data.tar.gz: f31b781866f6cd26d992d4389c5e51ded45ee338431fc38ae62de39375973eb6
5
+ SHA512:
6
+ metadata.gz: b8ddefd1d1e5fb968a971ef3c995572924c9bc7ce3aaf81f3d01b2877cacf9678538e21db787cdf618a20c05ba8c1fff761fd52b2a946cb28c7412c4c4dbf82f
7
+ data.tar.gz: f5d30fb8531153110e3c35efacd2293f255be2b1d6c92499d0d559cf6282e06183acef15e21a50d14c74cdbcaa606cfa551a1d2a6b09506b0061080f26b2495e
data/bin/epayco-sdk ADDED
@@ -0,0 +1 @@
1
+ #!/usr/bin/env ruby
@@ -0,0 +1,2 @@
1
+ # Describe global library
2
+ require File.dirname(__FILE__) + '/epayco-sdk'
data/lib/epayco-sdk.rb ADDED
@@ -0,0 +1,187 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'openssl'
4
+ require 'base64'
5
+ require 'open-uri'
6
+ require 'socket'
7
+ require_relative 'epayco-sdk/resources'
8
+
9
+ module Epayco
10
+
11
+ # Set custom error
12
+ class Error < StandardError
13
+ include Enumerable
14
+ attr_accessor :errors
15
+
16
+ # Get code, lang and show custom error
17
+ def initialize code, lang
18
+ file = open("https://s3-us-west-2.amazonaws.com/epayco/message_api/errors.json").read
19
+ data_hash = JSON.parse(file)
20
+ super data_hash[code][lang]
21
+ @errors = errors
22
+ end
23
+
24
+ def each
25
+ @errors.each { |e| yield *e.first }
26
+ end
27
+ end
28
+
29
+ # Endpoints
30
+ @api_base = 'https://api.secure.payco.co'
31
+ @api_base_secure = 'https://secure.payco.co'
32
+
33
+ # Init sdk parameters
34
+ class << self
35
+ attr_accessor :apiKey, :privateKey, :lang, :test
36
+ end
37
+
38
+ # Eject request and show response or error
39
+ def self.request(method, url, extra=nil, params={}, headers={}, switch, cashdata, sp, dt)
40
+ method = method.to_sym
41
+
42
+ if !apiKey || !privateKey || !lang
43
+ raise Error.new('100', lang)
44
+ end
45
+
46
+ payload = JSON.generate(params) if method == :post || method == :patch
47
+ params = nil unless method == :get
48
+
49
+ # Switch secure or api
50
+ if switch
51
+ if method == :post || method == :patch
52
+ if cashdata
53
+ enc = encrypt_aes(payload, true)
54
+ payload = enc.to_json
55
+ else
56
+ enc = encrypt_aes(payload, false)
57
+ payload = enc.to_json
58
+ end
59
+ end
60
+ url = @api_base_secure + url
61
+ else
62
+ if method == :post || method == :patch
63
+ rb_hash = JSON.parse(payload)
64
+ if dt
65
+ payload = rb_hash.to_json
66
+ else
67
+ rb_hash["test"] = test ? "TRUE" : "FALSE"
68
+ rb_hash["ip"] = local_ip
69
+ payload = rb_hash.to_json
70
+ end
71
+ end
72
+ url = @api_base + url
73
+ end
74
+
75
+ if sp
76
+ headers = {
77
+ :content_type => 'multipart/form-data'
78
+ }.merge(headers)
79
+
80
+ options = {
81
+ :headers => headers,
82
+ :user => apiKey,
83
+ :method => method,
84
+ :url => url,
85
+ :payload => payload
86
+ }
87
+ else
88
+ headers = {
89
+ :params => params,
90
+ :content_type => 'application/json',
91
+ :type => 'sdk'
92
+ }.merge(headers)
93
+
94
+ options = {
95
+ :headers => headers,
96
+ :user => apiKey,
97
+ :method => method,
98
+ :url => url,
99
+ :payload => payload
100
+ }
101
+
102
+ end
103
+ # Open library rest client
104
+ begin
105
+ #puts options
106
+ #abort("Message goes here 1")
107
+ response = execute_request(options)
108
+ return {} if response.code == 204 and method == :delete
109
+ JSON.parse(response.body, :symbolize_names => true)
110
+ rescue RestClient::Exception => e
111
+ handle_errors e
112
+ end
113
+ end
114
+
115
+ private
116
+
117
+ # Get response successful
118
+ def self.execute_request(options)
119
+ RestClient::Request.execute(options)
120
+ end
121
+
122
+ # Get response with errors
123
+ def self.handle_errors exception
124
+ body = JSON.parse exception.http_body
125
+ raise Error.new(exception.to_s, body['errors'])
126
+ end
127
+
128
+ def self.local_ip
129
+ orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true
130
+ UDPSocket.open do |s|
131
+ s.connect '64.233.187.99', 1
132
+ s.addr.last
133
+ end
134
+ ensure
135
+ Socket.do_not_reverse_lookup = orig
136
+ end
137
+
138
+ def self.encrypt_aes(data, cashdata)
139
+
140
+ sandbox = Epayco.test ? "TRUE" : "FALSE"
141
+ @tags = JSON.parse(data)
142
+ @seted = {}
143
+ if cashdata
144
+ @tags.each {
145
+ |key, value|
146
+ @seted[lang_key(key)] = value
147
+ }
148
+ @seted["ip"] = local_ip
149
+ @seted["enpruebas"] = encrypt(sandbox, Epayco.privateKey)
150
+ else
151
+ @tags.each {
152
+ |key, value|
153
+ @seted[lang_key(key)] = encrypt(value, Epayco.privateKey)
154
+ }
155
+ @seted["ip"] = encrypt(local_ip, Epayco.privateKey)
156
+ @seted["enpruebas"] = encrypt(sandbox, Epayco.privateKey)
157
+ end
158
+
159
+
160
+
161
+
162
+ @seted["public_key"] = Epayco.apiKey
163
+ @seted["i"] = Base64.encode64("0000000000000000")
164
+ @seted["lenguaje"] = "ruby"
165
+ @seted["p"] = ""
166
+ return @seted
167
+ end
168
+
169
+ def self.encrypt(str, key)
170
+ cipher = OpenSSL::Cipher.new('AES-128-CBC')
171
+ cipher.encrypt
172
+ iv = "0000000000000000"
173
+ cipher.iv = iv
174
+ cipher.key = key.byteslice(0, cipher.key_len)
175
+ str = iv + str
176
+ data = cipher.update(str) + cipher.final
177
+ Base64.urlsafe_encode64(data)
178
+ end
179
+
180
+ # Traslate secure petitions
181
+ def self.lang_key key
182
+ file = File.read(File.dirname(__FILE__) + '/keylang.json')
183
+ data_hash = JSON.parse(file)
184
+ data_hash[key]
185
+ end
186
+
187
+ end
@@ -0,0 +1,159 @@
1
+ module Epayco
2
+ module Operations
3
+ module ClassMethods
4
+
5
+ private
6
+
7
+ # Action create
8
+ def create params={}, extra=nil
9
+ dt=false
10
+ if self.url == "token"
11
+ url = "/v1/tokens"
12
+ elsif self.url == "customers"
13
+ url = "/payment/v1/customer/create"
14
+ elsif self.url == "plan"
15
+ url = "/recurring/v1/plan/create"
16
+ elsif self.url == "subscriptions"
17
+ url = "/recurring/v1/subscription/create"
18
+ elsif self.url == "bank"
19
+ url = "/restpagos/pagos/debitos.json"
20
+ elsif self.url == "safetypay"
21
+ cashdata = false
22
+ sp = true
23
+ url = "/restpagos/pagos/safetypays.json"
24
+ elsif self.url == "cash"
25
+ if extra == "efecty"
26
+ url = "/restpagos/v2/efectivo/efecty"
27
+ cashdata = true
28
+ elsif extra == "baloto"
29
+ url = "/restpagos/v2/efectivo/baloto"
30
+ cashdata = true
31
+ elsif extra == "gana"
32
+ url = "/restpagos/v2/efectivo/gana"
33
+ cashdata = true
34
+ elsif extra == "redservi"
35
+ url = "/restpagos/v2/efectivo/redservi"
36
+ cashdata = true
37
+ elsif extra == "puntored"
38
+ url = "/restpagos/v2/efectivo/puntored"
39
+ cashdata = true
40
+ else
41
+ raise Error.new('109', Epayco.lang)
42
+ end
43
+ elsif self.url == "charge"
44
+ url = "/payment/v1/charge/create"
45
+ end
46
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
47
+ end
48
+
49
+ # Action retrieve from id
50
+ def get uid, params={}, extra=nil
51
+ switch = self.switch;
52
+ cashdata=false
53
+ sp=false
54
+ dt=false
55
+ if self.url == "customers"
56
+ url = "/payment/v1/customer/" + Epayco.apiKey + "/" + uid + "/"
57
+ elsif self.url == "plan"
58
+ url = "/recurring/v1/plan/" + Epayco.apiKey + "/" + uid + "/"
59
+ elsif self.url == "subscriptions"
60
+ url = "/recurring/v1/subscription/" + uid + "/" + Epayco.apiKey + "/"
61
+ elsif self.url == "bank"
62
+ url = "/restpagos/pse/transactioninfomation.json?transactionID=" + uid + "&public_key=" + Epayco.apiKey
63
+ switch = true
64
+ elsif self.url == "cash" || self.url == "charge"
65
+ url = "/restpagos/transaction/response.json?ref_payco=" + uid + "&public_key=" + Epayco.apiKey
66
+ switch = true
67
+ end
68
+ Epayco.request :get, url, extra, params, switch, cashdata, sp, dt
69
+ end
70
+
71
+ # Action update
72
+ def update uid, params={}, extra=nil
73
+ cashdata=false
74
+ sp=false
75
+ dt=false
76
+ if self.url == "customers"
77
+ url = "/payment/v1/customer/edit/" + Epayco.apiKey + "/" + uid + "/"
78
+ end
79
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
80
+ end
81
+
82
+ # Action update token
83
+ def updatetoken params={}, extra=nil
84
+ if self.url == "customers"
85
+ url = "/payment/v1/customer/reasign/card/default"
86
+ cashdata = false
87
+ sp = false
88
+ dt = true
89
+ end
90
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
91
+ end
92
+
93
+ def delatetetoken params={}, extra=nil
94
+ if self.url == "customers"
95
+ url = "/v1/remove/token"
96
+ cashdata = false
97
+ sp = false
98
+ dt = true
99
+ end
100
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
101
+ end
102
+
103
+ # Action retrieve all documents from user
104
+ def list params={}, extra=nil
105
+ cashdata=false
106
+ sp=false
107
+ dt=false
108
+ if self.url == "customers"
109
+ url = "/payment/v1/customers/" + Epayco.apiKey + "/"
110
+ elsif self.url == "plan"
111
+ url = "/recurring/v1/plans/" + Epayco.apiKey + "/"
112
+ elsif self.url == "subscriptions"
113
+ url = "/recurring/v1/subscriptions/" + Epayco.apiKey
114
+ end
115
+ Epayco.request :get, url, extra, params, self.switch, cashdata, sp, dt
116
+ end
117
+
118
+ # Remove data from api
119
+ def delete uid, params={}, extra=nil
120
+ cashdata=false
121
+ sp=false
122
+ dt=false
123
+ if self.url == "plan"
124
+ url = "/recurring/v1/plan/remove/" + Epayco.apiKey + "/" + uid + "/"
125
+ end
126
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
127
+ end
128
+
129
+ # Cance subscription
130
+ def cancel uid, params={}, extra=nil
131
+ cashdata=false
132
+ sp=false
133
+ dt=false
134
+ params["id"] = uid
135
+ params["public_key"] = Epayco.apiKey
136
+ if self.url == "subscriptions"
137
+ url = "/recurring/v1/subscription/cancel"
138
+ end
139
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
140
+ end
141
+
142
+ def charge params={}, extra=nil
143
+ cashdata=false
144
+ sp=false
145
+ dt=false
146
+ if self.url == "subscriptions"
147
+ url = "/payment/v1/charge/subscription/create"
148
+ end
149
+ Epayco.request :post, url, extra, params, self.switch, cashdata, sp, dt
150
+ end
151
+
152
+ end
153
+
154
+ # Export methods
155
+ def self.included(base)
156
+ base.extend(ClassMethods)
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,54 @@
1
+ require_relative 'operations'
2
+
3
+ module Epayco
4
+ class Resource
5
+ include Operations
6
+
7
+ # Def url endpoint
8
+ def self.url id=nil
9
+ self.name.split('::').last.downcase
10
+ end
11
+
12
+ # Case switch secure or api
13
+ def self.switch
14
+ self.url == "bank" || self.url == "cash" ? true : false
15
+ end
16
+
17
+
18
+ end
19
+
20
+ # Resources and CRUD
21
+
22
+ class Token < Resource
23
+ public_class_method :create
24
+ end
25
+
26
+ class Customers < Resource
27
+ public_class_method :create, :get, :list, :update, :updatetoken, :delatetetoken
28
+ end
29
+
30
+ class Plan < Resource
31
+ public_class_method :create, :get, :list, :delete
32
+ end
33
+
34
+ class Subscriptions < Resource
35
+ public_class_method :create, :get, :list, :cancel, :charge
36
+ end
37
+
38
+ class Bank < Resource
39
+ public_class_method :create, :get
40
+ end
41
+
42
+ class Cash < Resource
43
+ public_class_method :create, :get
44
+ end
45
+
46
+ class Charge < Resource
47
+ public_class_method :create, :get
48
+ end
49
+
50
+ class Safetypay < Resource
51
+ public_class_method :create
52
+ end
53
+
54
+ end
data/lib/keylang.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "bank": "banco",
3
+ "invoice": "factura",
4
+ "description": "descripcion",
5
+ "value": "valor",
6
+ "tax": "iva",
7
+ "tax_base": "baseiva",
8
+ "currency": "moneda",
9
+ "type_person": "tipo_persona",
10
+ "doc_type": "tipo_doc",
11
+ "doc_number": "documento",
12
+ "name": "nombres",
13
+ "last_name": "apellidos",
14
+ "email": "email",
15
+ "country": "pais",
16
+ "department": "depto",
17
+ "city": "ciudad",
18
+ "phone": "telefono",
19
+ "cell_phone": "celular",
20
+ "address": "direccion",
21
+ "ip": "ip",
22
+ "url_response": "url_respuesta",
23
+ "url_confirmation": "url_confirmacion",
24
+ "method_confirmation": "metodoconfirmacion",
25
+ "end_date": "fechaexpiracion"
26
+ }
@@ -0,0 +1,123 @@
1
+
2
+ module Epayco
3
+ @mock_rest_client = nil
4
+
5
+ def self.mock_rest_client=(mock_client)
6
+ @mock_rest_client = mock_client
7
+ end
8
+ end
9
+
10
+ def credit_info
11
+ {
12
+ "card[number]" => "4575623182290326",
13
+ "card[exp_year]" => "2017",
14
+ "card[exp_month]" => "07",
15
+ "card[cvc]" => "123"
16
+ }
17
+ end
18
+
19
+ def customer_info
20
+ {
21
+ token_card: "eXj5Wdqgj7xzvC7AR",
22
+ name: "Joe Doe",
23
+ email: "joe@payco.co",
24
+ phone: "3005234321",
25
+ default: true
26
+ }
27
+ end
28
+
29
+ def update_customer_info
30
+ {
31
+ name: "Juan"
32
+ }
33
+ end
34
+
35
+ def plan_info
36
+ {
37
+ id_plan: "coursereact",
38
+ name: "Course react js",
39
+ description: "Course react and redux",
40
+ amount: 30000,
41
+ currency: "cop",
42
+ interval: "month",
43
+ interval_count: 1,
44
+ trial_days: 30
45
+ }
46
+ end
47
+
48
+ def subscription_info
49
+ {
50
+ id_plan: "coursereact",
51
+ customer: "A6ZGiJ6rgxK5RB2WT",
52
+ token_card: "eXj5Wdqgj7xzvC7AR",
53
+ doc_type: "CC",
54
+ doc_number: "5234567"
55
+ }
56
+ end
57
+
58
+ def pse_info
59
+ {
60
+ bank: "1007",
61
+ invoice: "1472050778",
62
+ description: "Pago pruebas",
63
+ value: "10000",
64
+ tax: "0",
65
+ tax_base: "0",
66
+ currency: "COP",
67
+ type_person: "0",
68
+ doc_type: "CC",
69
+ doc_number: "10358519",
70
+ name: "PRUEBAS",
71
+ last_name: "PAYCO",
72
+ email: "no-responder@payco.co",
73
+ country: "CO",
74
+ cell_phone: "3010000001",
75
+ ip: "186.116.10.133",
76
+ url_response: "https:/secure.payco.co/restpagos/testRest/endpagopse.php",
77
+ url_confirmation: "https:/secure.payco.co/restpagos/testRest/endpagopse.php",
78
+ method_confirmation: "GET",
79
+ }
80
+ end
81
+
82
+ def cash_info
83
+ {
84
+ invoice: "1472050778",
85
+ description: "Pago pruebas",
86
+ value: "20000",
87
+ tax: "0",
88
+ tax_base: "0",
89
+ currency: "COP",
90
+ type_person: "0",
91
+ doc_type: "CC",
92
+ doc_number: "10358519",
93
+ name: "PRUEBAS",
94
+ last_name: "PAYCO",
95
+ email: "test@mailinator.com",
96
+ cell_phone: "3010000001",
97
+ end_date: "2017-12-05",
98
+ ip: "186.116.10.133",
99
+ url_response: "https:/secure.payco.co/restpagos/testRest/endpagopse.php",
100
+ url_confirmation: "https:/secure.payco.co/restpagos/testRest/endpagopse.php",
101
+ method_confirmation: "GET",
102
+ }
103
+ end
104
+
105
+ def payment_info
106
+ {
107
+ token_card: "eXj5Wdqgj7xzvC7AR",
108
+ customer_id: "A6ZGiJ6rgxK5RB2WT",
109
+ doc_type: "CC",
110
+ doc_number: "1035851980",
111
+ name: "John",
112
+ last_name: "Doe",
113
+ email: "example@email.com",
114
+ ip: "192.198.2.114",
115
+ bill: "OR-1234",
116
+ description: "Test Payment",
117
+ value: "116000",
118
+ tax: "16000",
119
+ tax_base: "100000",
120
+ currency: "COP",
121
+ dues: "12"
122
+ }
123
+ end
data/tests/testing.rb ADDED
@@ -0,0 +1,209 @@
1
+ require File.expand_path("../lib/epayco", File.dirname(__FILE__))
2
+ require File.expand_path("test_helper", File.dirname(__FILE__))
3
+
4
+ require "cutest"
5
+ require "mocha/api"
6
+ include Mocha::API
7
+
8
+ prepare do
9
+ Epayco.apiKey = '491d6a0b6e992cf924edd8d3d088aff1'
10
+ Epayco.privateKey = '268c8e0162990cf2ce97fa7ade2eff5a'
11
+ Epayco.lang = 'ES'
12
+ Epayco.test = true
13
+ end
14
+
15
+ setup do
16
+ Epayco.mock_rest_client = mock
17
+ end
18
+
19
+ test "create token" do |mock|
20
+ begin
21
+ token = Epayco::Token.create credit_info
22
+ assert(token)
23
+ rescue Epayco::Error => e
24
+ puts e
25
+ end
26
+ end
27
+
28
+ # Customers
29
+
30
+ test "create customer" do |mock|
31
+ begin
32
+ customer = Epayco::Customers.create customer_info
33
+ assert(customer)
34
+ rescue Epayco::Error => e
35
+ puts e
36
+ end
37
+ end
38
+
39
+ test "retrieve customer" do |mock|
40
+ begin
41
+ customer = Epayco::Customers.get "123"
42
+ assert(customer)
43
+ rescue Epayco::Error => e
44
+ puts e
45
+ end
46
+ end
47
+
48
+ test "list customers" do |mock|
49
+ begin
50
+ customer = Epayco::Customers.list
51
+ assert(customer)
52
+ rescue Epayco::Error => e
53
+ puts e
54
+ end
55
+ end
56
+
57
+ test "update customer" do |mock|
58
+ begin
59
+ customer = Epayco::Customers.update "123", update_customer_info
60
+ assert(customer)
61
+ rescue Epayco::Error => e
62
+ puts e
63
+ end
64
+ end
65
+
66
+ # Plan
67
+
68
+ test "create plan" do |mock|
69
+ begin
70
+ plan = Epayco::Plan.create plan_info
71
+ assert(plan)
72
+ rescue Epayco::Error => e
73
+ puts e
74
+ end
75
+ end
76
+
77
+ test "retrieve plan" do |mock|
78
+ begin
79
+ plan = Epayco::Plan.get "coursereact"
80
+ assert(plan)
81
+ rescue Epayco::Error => e
82
+ puts e
83
+ end
84
+ end
85
+
86
+ test "list plan" do |mock|
87
+ begin
88
+ plan = Epayco::Plan.list
89
+ assert(plan)
90
+ rescue Epayco::Error => e
91
+ puts e
92
+ end
93
+ end
94
+
95
+ test "remove plan" do |mock|
96
+ begin
97
+ plan = Epayco::Plan.delete "coursereact"
98
+ assert(plan)
99
+ rescue Epayco::Error => e
100
+ puts e
101
+ end
102
+ end
103
+
104
+ # Subscriptions
105
+
106
+ test "create subscription" do |mock|
107
+ begin
108
+ sub = Epayco::Subscriptions.create subscription_info
109
+ assert(sub)
110
+ rescue Epayco::Error => e
111
+ puts e
112
+ end
113
+ end
114
+
115
+ test "charge subscription" do |mock|
116
+ begin
117
+ sub = Epayco::Subscriptions.charge subscription_info
118
+ assert(sub)
119
+ rescue Epayco::Error => e
120
+ puts e
121
+ end
122
+ end
123
+
124
+ test "retrieve subscriptions" do |mock|
125
+ begin
126
+ sub = Epayco::Subscriptions.get "123"
127
+ assert(sub)
128
+ rescue Epayco::Error => e
129
+ puts e
130
+ end
131
+ end
132
+
133
+ test "list subscriptions" do |mock|
134
+ begin
135
+ sub = Epayco::Subscriptions.list
136
+ assert(sub)
137
+ rescue Epayco::Error => e
138
+ puts e
139
+ end
140
+ end
141
+
142
+ test "cancel subscriptions" do |mock|
143
+ begin
144
+ sub = Epayco::Subscriptions.cancel "123"
145
+ assert(sub)
146
+ rescue Epayco::Error => e
147
+ puts e
148
+ end
149
+ end
150
+
151
+ # PSE
152
+
153
+ test "create pse" do |mock|
154
+ begin
155
+ pse = Epayco::Bank.create pse_info
156
+ assert(pse)
157
+ rescue Epayco::Error => e
158
+ puts e
159
+ end
160
+ end
161
+
162
+ test "retrieve pse" do |mock|
163
+ begin
164
+ pse = Epayco::Bank.get "123"
165
+ assert(pse)
166
+ rescue Epayco::Error => e
167
+ puts e
168
+ end
169
+ end
170
+
171
+ # Cash
172
+
173
+ test "create cash" do |mock|
174
+ begin
175
+ cash = Epayco::Cash.create cash_info, "efecty"
176
+ assert(cash)
177
+ rescue Epayco::Error => e
178
+ puts e
179
+ end
180
+ end
181
+
182
+ test "retrieve cash" do |mock|
183
+ begin
184
+ cash = Epayco::Cash.get "123"
185
+ assert(cash)
186
+ rescue Epayco::Error => e
187
+ puts e
188
+ end
189
+ end
190
+
191
+ # Payment
192
+
193
+ test "create payment" do |mock|
194
+ begin
195
+ pay = Epayco::Charge.create payment_info
196
+ assert(pay)
197
+ rescue Epayco::Error => e
198
+ puts e
199
+ end
200
+ end
201
+
202
+ test "retrieve payment" do |mock|
203
+ begin
204
+ pay = Epayco::Charge.get "123"
205
+ assert(pay)
206
+ rescue Epayco::Error => e
207
+ puts e
208
+ end
209
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: epayco-sdk-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Epayco development team
8
+ - Ricardo Saldarriaga
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-02-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rest-client
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.1'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: json
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: cutest
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.2'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.2'
56
+ - !ruby/object:Gem::Dependency
57
+ name: mocha
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.1'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.1'
70
+ description: |-
71
+ API to interact with Epayco
72
+ https://epayco.co
73
+ email:
74
+ - ricardo.saldarriaga@payco.co
75
+ executables:
76
+ - epayco-sdk
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - bin/epayco-sdk
81
+ - lib/epayco-sdk-ruby.rb
82
+ - lib/epayco-sdk.rb
83
+ - lib/epayco-sdk/operations.rb
84
+ - lib/epayco-sdk/resources.rb
85
+ - lib/keylang.json
86
+ - tests/test_helper.rb
87
+ - tests/testing.rb
88
+ homepage: https://epayco.co/
89
+ licenses:
90
+ - MIT
91
+ metadata: {}
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubygems_version: 3.0.3
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Ruby wrapper for Epayco API
111
+ test_files:
112
+ - tests/testing.rb
113
+ - tests/test_helper.rb