cubepay 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.
@@ -0,0 +1,26 @@
1
+ require 'net/https'
2
+ require 'json'
3
+ require 'openssl'
4
+
5
+ module Cubepay
6
+ class HttpRequest
7
+
8
+ def initialize(url)
9
+ @url = url
10
+ end
11
+
12
+ def get_response(method, params)
13
+ begin
14
+ uri = URI.parse(@url + method)
15
+ res = Net::HTTP.post_form(uri, params)
16
+ result = JSON.parse(res.body)
17
+ rescue SocketError, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse,
18
+ Net::HTTPHeaderSyntaxError, Net::ProtocolError, OpenSSL::SSL::SSLError => e
19
+ result = {"status" => 500, "data" => "#{e.class} - #{e.message}"}
20
+ end
21
+
22
+ return result
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,41 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ require 'digest'
4
+ require 'cgi'
5
+
6
+ module Cubepay
7
+ class Signature
8
+
9
+ def initialize(client_id, client_secret)
10
+ @client_id = client_id
11
+ @client_secret = client_secret
12
+ end
13
+
14
+ def get_params_with_signature(params)
15
+ params["client_id"] = @client_id
16
+ params["sign"] = generate_signature(params)
17
+
18
+ return params
19
+ end
20
+
21
+ def generate_signature(params)
22
+ if !params['sign'].nil?
23
+ params.delete('sign')
24
+ end
25
+ sort_params = params.sort_by { |key, value| key }
26
+ string = CGI.unescape(URI.encode_www_form(sort_params) + "&client_secret=" + @client_secret)
27
+
28
+ return Digest::SHA256.hexdigest(string).upcase
29
+ end
30
+
31
+ def verify_signature(params)
32
+ client_sign = params["sign"]
33
+ params.delete('sign')
34
+
35
+ server_sign = generate_signature(params)
36
+
37
+ return client_sign == server_sign
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,3 @@
1
+ module Cubepay
2
+ VERSION = "1.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cubepay
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - CubepayIO
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-10-03 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.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
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.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.0'
55
+ description: A third-party cryptocurrency payment gateway. Make it easy for receiving
56
+ cryptocurrency! More information at https://cubepay.io.
57
+ email:
58
+ - service@cubepay.io
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".idea/cubepay-ruby.iml"
65
+ - ".idea/inspectionProfiles/Project_Default.xml"
66
+ - ".idea/misc.xml"
67
+ - ".idea/modules.xml"
68
+ - ".idea/vcs.xml"
69
+ - ".idea/workspace.xml"
70
+ - ".travis.yml"
71
+ - CODE_OF_CONDUCT.md
72
+ - Gemfile
73
+ - LICENSE.txt
74
+ - README.md
75
+ - Rakefile
76
+ - bin/console
77
+ - bin/setup
78
+ - cubepay.gemspec
79
+ - example/_config.rb
80
+ - example/do_payment.rb
81
+ - example/do_payment_by_coin_id.rb
82
+ - example/get_coin_list.rb
83
+ - example/get_fiat_list.rb
84
+ - example/query_payment.rb
85
+ - lib/cubepay.rb
86
+ - lib/cubepay/client.rb
87
+ - lib/cubepay/http_request.rb
88
+ - lib/cubepay/signature.rb
89
+ - lib/cubepay/version.rb
90
+ homepage: https://cubepay.io
91
+ licenses:
92
+ - MIT
93
+ metadata: {}
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 2.7.7
111
+ signing_key:
112
+ specification_version: 4
113
+ summary: CubePay API library for Ruby, a third-party cryptocurrency payment gateway.
114
+ test_files: []