epayco-sdk-ruby 0.0.7

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 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