netpay_ecommerce_ruby 1.0.1

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: d1b6718d532dccec16b2f1b864391a7f40b7893405f0981da8e3e3dcb11effe2
4
+ data.tar.gz: db874620ef506fdf45aea4c33a46a49f4303474e5f9f1af062252d418af87450
5
+ SHA512:
6
+ metadata.gz: 7b1e794a8323b3bd5b9e2c854760d429f2389ccd315c5ce6a7f1e51b81338f7aae13c08b30641896d624bfb26ff4afc871cc1dc004d7272f6a85db0dd9e78408
7
+ data.tar.gz: 5d1cd42c9eb55a807e7ae36d570870bb2f60d97b7c49b2aa9a4d1c0f00d010074c8c3e758502a53e2f635b3acbffaeea5bf9433a02810c11c0737bf237775246
@@ -0,0 +1,24 @@
1
+ #encoding: UTF-8
2
+ require "netpay_ecommerce_ruby/version"
3
+ require "netpay_ecommerce_ruby/ecommerce_service"
4
+ require "netpay_ecommerce_ruby/netpay_config"
5
+
6
+ module NetpayEcommerce
7
+ class Error < StandardError; end
8
+ def self.send options
9
+ # Send request to netpay ecommerce.
10
+ #
11
+ # Example:
12
+ # >> NetpayEcommerce.send({ service: "login", body: body})
13
+ # => "200"
14
+ #
15
+ # Arguments availables in the option:
16
+ # service: (String)
17
+ # body: (Object or Json)
18
+ # prd_mode: (Boolean, default is false)
19
+ # token: (String)
20
+ # transport: define the format of body, default is a ruby hash(Json)
21
+
22
+ EcommerceService::Request.new(options).send
23
+ end
24
+ end
@@ -0,0 +1,51 @@
1
+ #encoding: UTF-8
2
+ require 'net/http'
3
+ require "uri"
4
+ require "json"
5
+ require "netpay_ecommerce_ruby/helpers/helper_config"
6
+ require "netpay_ecommerce_ruby/helpers/helper_service"
7
+
8
+ module EcommerceService
9
+ class Request
10
+ def initialize options = {}
11
+ @service = options.fetch(:service, 'NONE').upcase
12
+ @body = options.fetch(:body, nil)
13
+ prd_mode = options.fetch(:prd_mode, false)
14
+ if prd_mode
15
+ @host = NetpayConfig::HOST_PRD
16
+ else
17
+ @host = NetpayConfig::HOST_CERT
18
+ end
19
+ @token = options.fetch(:token, false)
20
+ @transport = options.fetch(:transport_method, nil)
21
+ end
22
+
23
+ def send
24
+ response_service, is_valid = HelperConfig::Config.endpointAction @service
25
+ if is_valid
26
+ instance_service = HelperService::Service.new(
27
+ {
28
+ service_name: response_service[:service_name],
29
+ method: response_service[:method],
30
+ security_token: response_service[:security_token],
31
+ host: @host,
32
+ body: @body,
33
+ token: @token,
34
+ transport_method: @transport
35
+ }
36
+ )
37
+ response_service = instance_service.send_request
38
+ end
39
+ self.format_response(response_service, is_valid)
40
+ end
41
+
42
+ def format_response response, valid
43
+ if valid
44
+ response
45
+ else
46
+ [response, false]
47
+ end
48
+ end
49
+
50
+ end
51
+ end
@@ -0,0 +1,14 @@
1
+ #encoding: UTF-8
2
+ require "netpay_ecommerce_ruby/service_dictionary"
3
+
4
+ module HelperConfig
5
+ class Config
6
+ def self.endpointAction service
7
+ if ServiceDictionary.const_defined? service
8
+ [(ServiceDictionary.const_get service.upcase), true]
9
+ else
10
+ [{ response: "Service name is invalid." }, false]
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,83 @@
1
+ #encoding: UTF-8
2
+ require "netpay_ecommerce_ruby/service_dictionary"
3
+
4
+ module HelperService
5
+ class Service
6
+
7
+ def initialize options
8
+ @endpoint = options.fetch(:service_name, nil)
9
+ @method = options.fetch(:method, nil)
10
+ @security = options.fetch(:security_token, false)
11
+ @host = options.fetch(:host, nil)
12
+ @body = options.fetch(:body, nil)
13
+ @token = options.fetch(:token, nil)
14
+ @transport = options.fetch(:transport_method, nil)
15
+ end
16
+
17
+ def send_request
18
+ self.send @method
19
+ end
20
+
21
+ def get
22
+ uri = URI("#{@host}#{@endpoint}#{@body}")
23
+ http = Net::HTTP.new(uri.host, uri.port)
24
+
25
+ if uri.scheme == 'https'
26
+ http.use_ssl = true
27
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
28
+ end
29
+
30
+ request = Net::HTTP::Get.new(uri)
31
+ request["authorization"] = @token
32
+ request["Content-Type"] = 'application/json; charset=utf-8'
33
+ request["accept"] = 'application/json'
34
+
35
+ response = http.request(request)
36
+
37
+ if ("200".."299").to_a.include? response.code
38
+ [JSON.parse(response.body), response.code]
39
+ elsif ("400".."499").to_a.include? response.code
40
+ [JSON.parse(response.body), response.code]
41
+ end
42
+ end
43
+
44
+ def post
45
+ url = URI("#{@host}#{@endpoint}")
46
+
47
+ http = Net::HTTP.new(url.host, url.port)
48
+
49
+ if url.scheme == 'https'
50
+ http.use_ssl = true
51
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
52
+ end
53
+
54
+ request = Net::HTTP::Post.new(url)
55
+ request["Content-Type"] = 'application/json; charset=utf-8'
56
+ request["Accept"] = 'application/json'
57
+ if @security
58
+ request["authorization"] = @token
59
+ end
60
+ if @transport == "json"
61
+ request.body = @body
62
+ else
63
+ if @body.class == Hash
64
+ request.body = @body.to_json
65
+ else
66
+ request.body = @body
67
+ end
68
+ end
69
+
70
+ response = http.request(request)
71
+
72
+ if ("200".."299").to_a.include? response.code
73
+ [JSON.parse(response.body), response.code]
74
+ elsif ("400".."499").to_a.include? response.code
75
+ [JSON.parse(response.body), response.code]
76
+ end
77
+ end
78
+
79
+ def delete
80
+
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,4 @@
1
+ module NetpayConfig
2
+ HOST_PRD = "https://cert.netpay.com.mx"
3
+ HOST_CERT = "https://cert.netpay.com.mx"
4
+ end
@@ -0,0 +1,17 @@
1
+ #encoding: UTF-8
2
+ module ServiceDictionary
3
+ V1_LOGIN = { service_name: '/gateway-ecommerce/v1/auth/bearerlogin', method: "post", security_token: false }
4
+ V1_CREATE_API_KEY = { service_name: '/gateway-ecommerce/v1/store/store-api-key', method: "post", security_token: true }
5
+ V1_CREATE_TOKEN_CARD = { service_name: '/gateway-ecommerce/v1/token-card', method: 'post', security_token: true }
6
+ V1_CREATE_CUSTOMER_CARDS = { service_name: '/gateway-ecommerce/v1/token-card/customer-tokens', method: "post", security_token: true }
7
+ V1_RISK_MANAGER = { service_name: '/gateway-ecommerce/v1/risk-manager/token-card', method: "post", security_token: true }
8
+ V1_DESICION_MANAGER = { service_name: '/gateway-ecommerce/v1/decision-manager', method: "post", security_token: true }
9
+ V1_DELETE_TOKEN_CARD = { service_name: '/gateway-ecommerce/v1/token-card/delete', method: "post", security_token: true }
10
+ V1_TRANSACTION_CANCELLATION = { service_name: '/gateway-ecommerce/v1/transaction/refund', method: "post", security_token: true }
11
+ V1_TRANSACTION_CHARGE = { service_name: '/gateway-ecommerce/v1/transaction/charge', method: "post", security_token: true }
12
+
13
+ V1_STORE_INFO = { service_name: '/gateway-ecommerce/v1/store/store-info', method: "get", security_token: true }
14
+ V1_TRANSACTION_STATUS = { service_name: '/gateway-ecommerce/v1/transaction-report/transaction/', method: "get", security_token: true }
15
+
16
+ V2_CHECKOUT = { service_name: '/gateway-ecommerce/v2/checkout', method: "post", security_token: true }
17
+ end
@@ -0,0 +1,3 @@
1
+ module NetpayEcommerceRuby
2
+ VERSION = "1.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: netpay_ecommerce_ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Uriel Molina
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-05-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.5.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.5.0
55
+ description: SDK for connect to Netpay Ecommerce.
56
+ email:
57
+ - uriel85@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/netpay_ecommerce_ruby.rb
63
+ - lib/netpay_ecommerce_ruby/ecommerce_service.rb
64
+ - lib/netpay_ecommerce_ruby/helpers/helper_config.rb
65
+ - lib/netpay_ecommerce_ruby/helpers/helper_service.rb
66
+ - lib/netpay_ecommerce_ruby/netpay_config.rb
67
+ - lib/netpay_ecommerce_ruby/service_dictionary.rb
68
+ - lib/netpay_ecommerce_ruby/version.rb
69
+ homepage: https://github.com/netpay-ecommerce/netpay_ecommerce_ruby
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubygems_version: 3.0.3
89
+ signing_key:
90
+ specification_version: 4
91
+ summary: SDK for connect to Netpay Ecommerce.
92
+ test_files: []