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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.idea/cubepay-ruby.iml +13 -0
- data/.idea/inspectionProfiles/Project_Default.xml +6 -0
- data/.idea/misc.xml +7 -0
- data/.idea/modules.xml +8 -0
- data/.idea/vcs.xml +6 -0
- data/.idea/workspace.xml +586 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +43 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/cubepay.gemspec +38 -0
- data/example/_config.rb +9 -0
- data/example/do_payment.rb +32 -0
- data/example/do_payment_by_coin_id.rb +35 -0
- data/example/get_coin_list.rb +6 -0
- data/example/get_fiat_list.rb +6 -0
- data/example/query_payment.rb +11 -0
- data/lib/cubepay.rb +1 -0
- data/lib/cubepay/client.rb +113 -0
- data/lib/cubepay/http_request.rb +26 -0
- data/lib/cubepay/signature.rb +41 -0
- data/lib/cubepay/version.rb +3 -0
- metadata +114 -0
@@ -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
|
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: []
|