coinpayments 0.0.2 → 0.0.3
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 +4 -4
- data/.travis.yml +4 -0
- data/README.md +18 -12
- data/Rakefile +3 -1
- data/coinpayments.gemspec +2 -2
- data/lib/coinpayments.rb +5 -0
- data/lib/coinpayments/configuration.rb +1 -1
- data/lib/coinpayments/version.rb +1 -1
- data/lib/generators/coinpayments/templates/coinpayments_initializer.rb +3 -3
- data/test/coinpayments_test.rb +17 -1
- data/test/fixtures/get_callback_address.yml +55 -0
- data/test/fixtures/get_withdrawal_info.yml +55 -0
- metadata +10 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc5cf6663ca02248fbceb9cdc104b41714f0bb6
|
4
|
+
data.tar.gz: 1c319813691953c48491e085c049c6950aa5f226
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 518199c56965c6f9c02dd70d9bf837e7ba253e508234f73d9bc50c88ccb15e0aff05a678b957ed32301bdcd7ff6894cacb8c7c2e7a7b2b53d559a16af7c23f1a
|
7
|
+
data.tar.gz: 22ce68d4a9696797f7b8dd044e95e478dbe0a93b0938d32feafccbb0b754f0f29bfe0f99d30af9312fcc8f0ed36c133d3e0a553de2e5b3439461514b29294ed6
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
# CoinPayments.net API
|
1
|
+
# CoinPayments.net API Client
|
2
|
+
[](https://badge.fury.io/rb/coinpayments) [](https://travis-ci.org/Salet/coinpayments) [](https://codeclimate.com/github/Salet/coinpayments)
|
2
3
|
|
3
|
-
|
4
|
+
[CoinPayments](https://www.coinpayments.net) | [API Documentation](https://www.coinpayments.net/merchant-tools-api) | [Usage](#usage)
|
5
|
+
|
6
|
+
CoinPayments.net is a payment gateway that can allow you to accept Bitcoin, Litecoin, Ether and over [50 other popular cryptocurrencies](https://www.coinpayments.net/supported-coins) directly on your website.
|
7
|
+
|
8
|
+
This gem will let you to easily communicate with their API directly from your Ruby application. Want to accept Doge, Dash, START, or other less popular cryptocurrency? Search no more!
|
4
9
|
|
5
10
|
## Installation
|
6
11
|
|
@@ -18,29 +23,30 @@ Or install it yourself as:
|
|
18
23
|
|
19
24
|
## Configuration
|
20
25
|
|
21
|
-
Before using this gem you have to
|
26
|
+
Before using this gem you will have to create an account on Coinpayments website. After that you can access your [Merchant ID](https://www.coinpayments.net/acct-settings) and generate [public/private API key pair](https://www.coinpayments.net/acct-api-keys) needed for this gem to work.
|
22
27
|
|
23
28
|
If you are using Rails, simply generate a new config file, like so:
|
24
29
|
|
25
30
|
$ rails generate coinpayments:install
|
26
31
|
|
27
|
-
Configuration file can now be accessed at config/initializers/coinpayments.rb
|
32
|
+
Configuration file can now be accessed at `config/initializers/coinpayments.rb`:
|
28
33
|
|
29
34
|
```
|
30
35
|
Coinpayments.configure do |config|
|
31
|
-
config.merchant_id
|
32
|
-
config.public_api_key
|
36
|
+
config.merchant_id = ''
|
37
|
+
config.public_api_key = ''
|
33
38
|
config.private_api_key = ''
|
34
39
|
end
|
35
40
|
```
|
36
41
|
|
37
42
|
## Usage
|
43
|
+
`Coinpayments` is a singleton class with method names mimicking the command names of [CP API](https://www.coinpayments.net/merchant-tools-api).
|
44
|
+
|
45
|
+
Common required fields are automatically appended to each call. Other of the required parameters must be passed in as method attributes. You can add some optional parameters too.
|
46
|
+
|
47
|
+
For your convenience response fields can be accessed as method calls.
|
38
48
|
|
39
|
-
|
40
|
-
- Main required fields are appended to each call you make automatically.
|
41
|
-
- Method required paramteres must be appended as method attributes.
|
42
|
-
- Optional paramteres can be appended as an option hash
|
43
|
-
- Call response is a Hashie::Mash instance, so you can access response hash parameters as method calls. For example, to quicly access BTC/USD exchange rate, use:
|
49
|
+
For example, to quickly access current BTC/USD exchange rate, use:
|
44
50
|
|
45
51
|
`Coinpayments.rates.USD.rate_btc`
|
46
52
|
|
@@ -52,7 +58,7 @@ end
|
|
52
58
|
|
53
59
|
- Check for cryptocurrencies you accept on your account:
|
54
60
|
|
55
|
-
`Coinpayments.rates(accepted: 1).delete_if {|
|
61
|
+
`Coinpayments.rates(accepted: 1).delete_if { |_k, v| v["accepted"] == 0 }.keys`
|
56
62
|
|
57
63
|
- Create a transaction for $10 that must be payed using BTC, and display an address to the user:
|
58
64
|
|
data/Rakefile
CHANGED
data/coinpayments.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "coinpayments"
|
8
8
|
spec.version = Coinpayments::VERSION
|
9
9
|
spec.authors = ["Przemysław Janowski"]
|
10
|
-
spec.email = ["
|
11
|
-
spec.summary = "
|
10
|
+
spec.email = ["p.janowski@outlook.com"]
|
11
|
+
spec.summary = "Ruby client for the CoinPayments.net API"
|
12
12
|
spec.homepage = "https://github.com/Salet/coinpayments"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
data/lib/coinpayments.rb
CHANGED
@@ -60,6 +60,11 @@ module Coinpayments
|
|
60
60
|
api_call(args)
|
61
61
|
end
|
62
62
|
|
63
|
+
def self.get_callback_address(currency, options = {})
|
64
|
+
args = { currency: currency }.merge!(options)
|
65
|
+
api_call(args)
|
66
|
+
end
|
67
|
+
|
63
68
|
def self.get_withdrawal_info(id)
|
64
69
|
args = { id: id }
|
65
70
|
api_call(args)
|
data/lib/coinpayments/version.rb
CHANGED
data/test/coinpayments_test.rb
CHANGED
@@ -49,4 +49,20 @@ class CoinpaymentsTest < Minitest::Test
|
|
49
49
|
assert r.respond_to?(:status_text)
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
|
+
def test_get_callback_address
|
54
|
+
VCR.use_cassette('get_callback_address') do
|
55
|
+
r = Coinpayments.get_callback_address('BTC')
|
56
|
+
assert r.kind_of?(Hash)
|
57
|
+
assert r.respond_to?(:address)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_get_withdrawal_info
|
62
|
+
VCR.use_cassette('get_withdrawal_info') do
|
63
|
+
r = Coinpayments.get_withdrawal_info('705565b8b8f068566fed1a71977ece30265c6e80cf7dfe854ab4a455701129bc')
|
64
|
+
assert r.kind_of?(Hash)
|
65
|
+
assert r.respond_to?(:status_text)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.coinpayments.net/api.php
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: version=1&key=ab62e52f47fb2e7032a3a678e8cfd66ed1e2beaa56edf0aa722d8fb15bd7afd0&cmd=get_callback_address¤cy=BTC
|
9
|
+
headers:
|
10
|
+
Hmac:
|
11
|
+
- 389fd0db5e417387dd86023408066ab10392a55a3271a010cc23bbc2b5a1cdb8c8dc410d8304aab6b164df12776066cbfade0e0cd9a7a8220d7bd8115a0f73aa
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 200
|
15
|
+
message: OK
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Wed, 10 Aug 2016 20:03:31 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Content-Length:
|
22
|
+
- '72'
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Set-Cookie:
|
26
|
+
- PHPSESSID=5c5pq7m5525sgdmdl6bb44dnn94jgn2ers0g4bevr3h7i5e4oh01; path=/; secure;
|
27
|
+
HttpOnly
|
28
|
+
- __cfduid=d73d7415d9e6270ef5be064e73c9891751470859410; expires=Thu, 10-Aug-17
|
29
|
+
20:03:30 GMT; path=/; domain=.coinpayments.net; HttpOnly
|
30
|
+
X-Powered-By:
|
31
|
+
- PHP/5.4.45-0+deb7u4
|
32
|
+
X-Frame-Options:
|
33
|
+
- SAMEORIGIN
|
34
|
+
Strict-Transport-Security:
|
35
|
+
- max-age=2592000
|
36
|
+
Expires:
|
37
|
+
- Thu, 19 Nov 1981 08:52:00 GMT
|
38
|
+
Cache-Control:
|
39
|
+
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
40
|
+
Pragma:
|
41
|
+
- no-cache
|
42
|
+
Content-Disposition:
|
43
|
+
- attachment; filename=coinpayments_api.json
|
44
|
+
X-Content-Type-Options:
|
45
|
+
- nosniff
|
46
|
+
Server:
|
47
|
+
- cloudflare-nginx
|
48
|
+
Cf-Ray:
|
49
|
+
- 2d060d34718446c8-WAW
|
50
|
+
body:
|
51
|
+
encoding: UTF-8
|
52
|
+
string: '{"error":"ok","result":{"address":"18ahwWe9N1x7iHdnQYDDBT4E1buB7fcKwo"}}'
|
53
|
+
http_version:
|
54
|
+
recorded_at: Wed, 10 Aug 2016 20:03:31 GMT
|
55
|
+
recorded_with: VCR 3.0.1
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.coinpayments.net/api.php
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: version=1&key=ab62e52f47fb2e7032a3a678e8cfd66ed1e2beaa56edf0aa722d8fb15bd7afd0&cmd=get_withdrawal_info&id=705565b8b8f068566fed1a71977ece30265c6e80cf7dfe854ab4a455701129bc
|
9
|
+
headers:
|
10
|
+
Hmac:
|
11
|
+
- e2d725237384a3c99249c72b379fb72371b97d3c3116ef14652c3aa421ba0332c9c5d3eef42214cdd98d31e8598ef98ee5191c601aed21068fd80b3c3a131761
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 200
|
15
|
+
message: OK
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Wed, 10 Aug 2016 20:09:36 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Content-Length:
|
22
|
+
- '197'
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Set-Cookie:
|
26
|
+
- PHPSESSID=lk1ev291daa5g7tns7kf3q4rq9ehngeg6emn0ji8d2phupmb3l41; path=/; secure;
|
27
|
+
HttpOnly
|
28
|
+
- __cfduid=d3baeb8f863a17477339aca69ccf1fc861470859775; expires=Thu, 10-Aug-17
|
29
|
+
20:09:35 GMT; path=/; domain=.coinpayments.net; HttpOnly
|
30
|
+
X-Powered-By:
|
31
|
+
- PHP/5.4.45-0+deb7u4
|
32
|
+
X-Frame-Options:
|
33
|
+
- SAMEORIGIN
|
34
|
+
Strict-Transport-Security:
|
35
|
+
- max-age=2592000
|
36
|
+
Expires:
|
37
|
+
- Thu, 19 Nov 1981 08:52:00 GMT
|
38
|
+
Cache-Control:
|
39
|
+
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
40
|
+
Pragma:
|
41
|
+
- no-cache
|
42
|
+
Content-Disposition:
|
43
|
+
- attachment; filename=coinpayments_api.json
|
44
|
+
X-Content-Type-Options:
|
45
|
+
- nosniff
|
46
|
+
Server:
|
47
|
+
- cloudflare-nginx
|
48
|
+
Cf-Ray:
|
49
|
+
- 2d06161d6e362af1-WAW
|
50
|
+
body:
|
51
|
+
encoding: UTF-8
|
52
|
+
string: '{"error":"ok","result":{"time_created":1391924372,"status":2,"status_text":"Complete","coin":"BTC","amount":40000000,"amountf":"0.40000000","send_address":"1BitcoinAddress","send_txid":"hex_txid"}}'
|
53
|
+
http_version:
|
54
|
+
recorded_at: Wed, 10 Aug 2016 20:09:36 GMT
|
55
|
+
recorded_with: VCR 3.0.1
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coinpayments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Przemysław Janowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -124,12 +124,13 @@ dependencies:
|
|
124
124
|
version: '0'
|
125
125
|
description:
|
126
126
|
email:
|
127
|
-
-
|
127
|
+
- p.janowski@outlook.com
|
128
128
|
executables: []
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".gitignore"
|
133
|
+
- ".travis.yml"
|
133
134
|
- Gemfile
|
134
135
|
- LICENSE.txt
|
135
136
|
- README.md
|
@@ -144,7 +145,9 @@ files:
|
|
144
145
|
- test/fixtures/balances.yml
|
145
146
|
- test/fixtures/create_transaction.yml
|
146
147
|
- test/fixtures/create_withdrawal.yml
|
148
|
+
- test/fixtures/get_callback_address.yml
|
147
149
|
- test/fixtures/get_tx_info.yml
|
150
|
+
- test/fixtures/get_withdrawal_info.yml
|
148
151
|
- test/fixtures/rates.yml
|
149
152
|
homepage: https://github.com/Salet/coinpayments
|
150
153
|
licenses:
|
@@ -166,15 +169,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
169
|
version: '0'
|
167
170
|
requirements: []
|
168
171
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.6.6
|
170
173
|
signing_key:
|
171
174
|
specification_version: 4
|
172
|
-
summary:
|
175
|
+
summary: Ruby client for the CoinPayments.net API
|
173
176
|
test_files:
|
174
177
|
- test/coinpayments_test.rb
|
175
178
|
- test/fixtures/balances.yml
|
176
179
|
- test/fixtures/create_transaction.yml
|
177
180
|
- test/fixtures/create_withdrawal.yml
|
181
|
+
- test/fixtures/get_callback_address.yml
|
178
182
|
- test/fixtures/get_tx_info.yml
|
183
|
+
- test/fixtures/get_withdrawal_info.yml
|
179
184
|
- test/fixtures/rates.yml
|
180
|
-
has_rdoc:
|