mollie-api-ruby 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.mdown +12 -0
- data/examples/1-new-payment.rb +1 -1
- data/examples/2-webhook-verification.rb +1 -1
- data/examples/4-ideal-payment.rb +1 -1
- data/examples/5-payments-history.rb +2 -2
- data/examples/6-list-activated-methods.rb +1 -1
- data/examples/7-refund-payment.rb +40 -0
- data/examples/app.rb +2 -1
- data/lib/Mollie/API/Client.rb +14 -6
- data/lib/Mollie/API/Exception.rb +3 -0
- data/lib/Mollie/API/Object/Method.rb +7 -6
- data/lib/Mollie/API/Object/Payment/Refund.rb +15 -0
- data/lib/Mollie/API/Resource/Base.rb +23 -9
- data/lib/Mollie/API/Resource/Payments/Refunds.rb +27 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1814d5f5f87cb8fe85890e2a1b7381045e5483a6
|
4
|
+
data.tar.gz: 25c77c32cda7f816ab3a67f6d0c7cb1804c7ee81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e356234410dbd7ddfce3878af51ea8d1e5599a2e46772e7bcb5c30d3b7c6dd33ef7bef7673a9e792eb607d370e913182676501208f04b3a385be3f424c612f4a
|
7
|
+
data.tar.gz: 57429e86b3b93ba8409ab5f5dc6a1175f9a0b02965d54e78773be744b59303953b04c36f4a00c7ae85d40cd1ebae988da628589f4a02584372c397c5b878a722
|
data/README.mdown
CHANGED
@@ -67,6 +67,17 @@ Retrieving a payment.
|
|
67
67
|
end
|
68
68
|
```
|
69
69
|
|
70
|
+
### Refunding payments ###
|
71
|
+
|
72
|
+
The API also supports refunding payments. Note that there is no confirmation and that all refunds are immediate and
|
73
|
+
definitive. Refunds are only supported for iDEAL, credit card and Bank Transfer payments. Other types of payments cannot
|
74
|
+
be refunded through our API at the moment.
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
payment = mollie.payments.get payment.id
|
78
|
+
refund = mollie.payments_refunds.with(payment).create
|
79
|
+
```
|
80
|
+
|
70
81
|
## Examples ##
|
71
82
|
|
72
83
|
The examples require [Sinatra](http://rubygems.org/gems/sinatra) so you will need to install that gem first. Afterwards simply run:
|
@@ -86,6 +97,7 @@ Contact: [www.mollie.nl](http://www.mollie.nl) — info@mollie.nl — +31 20-612
|
|
86
97
|
+ [More information about iDEAL via Mollie](https://www.mollie.nl/betaaldiensten/ideal/)
|
87
98
|
+ [More information about Creditcard via Mollie](https://www.mollie.nl/betaaldiensten/creditcard/)
|
88
99
|
+ [More information about Mister Cash via Mollie](https://www.mollie.nl/betaaldiensten/mistercash/)
|
100
|
+
+ [More information about Bank transfer via Mollie](https://www.mollie.nl/betaaldiensten/overboeking/)
|
89
101
|
+ [More information about PayPal via Mollie](https://www.mollie.nl/betaaldiensten/paypal/)
|
90
102
|
+ [More information about paysafecard via Mollie](https://www.mollie.nl/betaaldiensten/paysafecard/)
|
91
103
|
|
data/examples/1-new-payment.rb
CHANGED
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
11
|
#
|
12
12
|
mollie = Mollie::API::Client.new
|
13
|
-
mollie.setApiKey "
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
14
|
|
15
15
|
#
|
16
16
|
# Generate a unique order id for this example. It is important to include this unique attribute
|
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
11
|
#
|
12
12
|
mollie = Mollie::API::Client.new
|
13
|
-
mollie.setApiKey "
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
14
|
|
15
15
|
#
|
16
16
|
# Retrieve the payment's current state.
|
data/examples/4-ideal-payment.rb
CHANGED
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
11
|
#
|
12
12
|
mollie = Mollie::API::Client.new
|
13
|
-
mollie.setApiKey "
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
14
|
|
15
15
|
#
|
16
16
|
# First, let the customer pick the bank in a simple HTML form. This step is actually optional.
|
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
11
|
#
|
12
12
|
mollie = Mollie::API::Client.new
|
13
|
-
mollie.setApiKey "
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
14
|
|
15
15
|
#
|
16
16
|
# Get the all payments for this API key ordered by newest.
|
@@ -20,7 +20,7 @@ begin
|
|
20
20
|
$response.body = "Your API key has #{payments.totalCount} payments, last #{payments.count}:<br>"
|
21
21
|
|
22
22
|
payments.each { |payment|
|
23
|
-
$response.body << "€ #{payment.amount}, status: #{CGI.escapeHTML payment.status}<br>"
|
23
|
+
$response.body << "€ #{payment.amount}, status: #{CGI.escapeHTML payment.status} (#{CGI.escapeHTML payment.id})<br>"
|
24
24
|
}
|
25
25
|
rescue Mollie::API::Exception => e
|
26
26
|
$response.body << "API call failed: " << (CGI.escapeHTML e.message)
|
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
11
|
#
|
12
12
|
mollie = Mollie::API::Client.new
|
13
|
-
mollie.setApiKey "
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
14
|
|
15
15
|
#
|
16
16
|
# Get the all the activated methods for this API key.
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#
|
2
|
+
# Example 7 - How to refund a payment programmatically.
|
3
|
+
#
|
4
|
+
require File.expand_path "../lib/Mollie/API/Client", __dir__
|
5
|
+
|
6
|
+
begin
|
7
|
+
#
|
8
|
+
# Initialize the Mollie API library with your API key.
|
9
|
+
#
|
10
|
+
# See: https://www.mollie.nl/beheer/account/profielen/
|
11
|
+
#
|
12
|
+
mollie = Mollie::API::Client.new
|
13
|
+
mollie.setApiKey "test_bt7vvByF6jTcBR4dLuW66eNnHYNIJp"
|
14
|
+
|
15
|
+
#
|
16
|
+
# Retrieve the payment you want to refund from the API.
|
17
|
+
#
|
18
|
+
payment = mollie.payments.get "tr_dO6CPyCfoK"
|
19
|
+
|
20
|
+
#
|
21
|
+
# Refund the payment.
|
22
|
+
#
|
23
|
+
refund = mollie.payments_refunds.with(payment).create
|
24
|
+
|
25
|
+
$response.body << "The payment #{payment.id} is now refunded.<br>"
|
26
|
+
|
27
|
+
#
|
28
|
+
# Retrieve refunds on a payment.
|
29
|
+
#
|
30
|
+
refunds = mollie.payments_refunds.with(payment).all
|
31
|
+
|
32
|
+
refunds.each { |refund|
|
33
|
+
$response.body << '<br> Refund date: ' << (CGI.escapeHTML refund.refundedDatetime)
|
34
|
+
$response.body << '<br> Refunded: € ' << (CGI.escapeHTML refund.amountRefunded)
|
35
|
+
$response.body << '<br> Remaining: € ' << (CGI.escapeHTML refund.amountRemaining)
|
36
|
+
$response.body << '<br>'
|
37
|
+
}
|
38
|
+
rescue Mollie::API::Exception => e
|
39
|
+
$response.body << "API call failed: " << (CGI.escapeHTML e.message)
|
40
|
+
end
|
data/examples/app.rb
CHANGED
data/lib/Mollie/API/Client.rb
CHANGED
@@ -4,27 +4,30 @@ require "rest_client"
|
|
4
4
|
["Exception",
|
5
5
|
"Resource/Base",
|
6
6
|
"Resource/Payments",
|
7
|
+
"Resource/Payments/Refunds",
|
7
8
|
"Resource/Issuers",
|
8
9
|
"Resource/Methods",
|
9
10
|
"Object/Base",
|
10
11
|
"Object/List",
|
11
12
|
"Object/Payment",
|
13
|
+
"Object/Payment/Refund",
|
12
14
|
"Object/Issuer",
|
13
15
|
"Object/Method"].each {|file| require File.expand_path file, __dir__ }
|
14
16
|
|
15
17
|
module Mollie
|
16
18
|
module API
|
17
19
|
class Client
|
18
|
-
CLIENT_VERSION = "1.0
|
20
|
+
CLIENT_VERSION = "1.1.0"
|
19
21
|
API_ENDPOINT = "https://api.mollie.nl"
|
20
22
|
API_VERSION = "v1"
|
21
23
|
|
22
|
-
attr_reader :payments, :issuers, :methods
|
24
|
+
attr_reader :payments, :issuers, :methods, :payments_refunds
|
23
25
|
|
24
26
|
def initialize ()
|
25
|
-
@payments
|
26
|
-
@issuers
|
27
|
-
@methods
|
27
|
+
@payments = Mollie::API::Resource::Payments.new self
|
28
|
+
@issuers = Mollie::API::Resource::Issuers.new self
|
29
|
+
@methods = Mollie::API::Resource::Methods.new self
|
30
|
+
@payments_refunds = Mollie::API::Resource::Payments::Refunds.new self
|
28
31
|
|
29
32
|
@api_endpoint = API_ENDPOINT
|
30
33
|
@api_key = ""
|
@@ -88,7 +91,12 @@ module Mollie
|
|
88
91
|
raise e if response[:error].nil?
|
89
92
|
end
|
90
93
|
|
91
|
-
|
94
|
+
unless response[:error].nil?
|
95
|
+
exception = Mollie::API::Exception.new response[:error][:message]
|
96
|
+
exception.field = response[:error][:field] unless response[:error][:field].nil?
|
97
|
+
raise exception
|
98
|
+
end
|
99
|
+
|
92
100
|
response
|
93
101
|
end
|
94
102
|
|
data/lib/Mollie/API/Exception.rb
CHANGED
@@ -2,11 +2,12 @@ module Mollie
|
|
2
2
|
module API
|
3
3
|
module Object
|
4
4
|
class Method < Base
|
5
|
-
IDEAL
|
6
|
-
CREDITCARD
|
7
|
-
MISTERCASH
|
8
|
-
|
9
|
-
|
5
|
+
IDEAL = "ideal"
|
6
|
+
CREDITCARD = "creditcard"
|
7
|
+
MISTERCASH = "mistercash"
|
8
|
+
BANKTRANSFER = "banktransfer"
|
9
|
+
PAYPAL = "paypal"
|
10
|
+
PAYSAFECARD = "paysafecard"
|
10
11
|
|
11
12
|
attr_accessor :id,
|
12
13
|
:description,
|
@@ -23,4 +24,4 @@ module Mollie
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|
26
|
-
end
|
27
|
+
end
|
@@ -11,27 +11,41 @@ module Mollie
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def create (data = {})
|
14
|
-
|
15
|
-
|
14
|
+
request("POST", nil, data) { |response|
|
15
|
+
newResourceObject response
|
16
|
+
}
|
16
17
|
end
|
17
18
|
|
18
19
|
def get (id)
|
19
|
-
|
20
|
-
|
20
|
+
request("GET", id, {}) { |response|
|
21
|
+
newResourceObject response
|
22
|
+
}
|
21
23
|
end
|
22
24
|
|
23
25
|
def update (id, data = {})
|
24
|
-
|
25
|
-
|
26
|
+
request("POST", id, data) { |response|
|
27
|
+
newResourceObject response
|
28
|
+
}
|
26
29
|
end
|
27
30
|
|
28
31
|
def delete (id)
|
29
|
-
|
32
|
+
request "DELETE", id, {}
|
30
33
|
end
|
31
34
|
|
32
35
|
def all ()
|
33
|
-
|
34
|
-
|
36
|
+
request("GET", nil, {}) { |response|
|
37
|
+
Mollie::API::Object::List.new response, getResourceObject
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def newResourceObject (response)
|
42
|
+
getResourceObject.new response
|
43
|
+
end
|
44
|
+
|
45
|
+
def request (method, id = 0, data = {})
|
46
|
+
response = @client.performHttpCall method, getResourceName, id, data
|
47
|
+
|
48
|
+
yield(response) if block_given?
|
35
49
|
end
|
36
50
|
end
|
37
51
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
module Mollie
|
4
|
+
module API
|
5
|
+
module Resource
|
6
|
+
class Payments
|
7
|
+
class Refunds < Base
|
8
|
+
@payment_id = nil
|
9
|
+
|
10
|
+
def getResourceObject ()
|
11
|
+
Mollie::API::Object::Payment::Refund
|
12
|
+
end
|
13
|
+
|
14
|
+
def getResourceName ()
|
15
|
+
payment_id = URI::encode(@payment_id)
|
16
|
+
"payments/#{payment_id}/refunds"
|
17
|
+
end
|
18
|
+
|
19
|
+
def with (payment)
|
20
|
+
@payment_id = payment.id
|
21
|
+
self
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mollie-api-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rick Wong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- examples/4-ideal-payment.rb
|
56
56
|
- examples/5-payments-history.rb
|
57
57
|
- examples/6-list-activated-methods.rb
|
58
|
+
- examples/7-refund-payment.rb
|
58
59
|
- examples/app.rb
|
59
60
|
- examples/orders/.gitignore
|
60
61
|
- lib/Mollie/API/Client.rb
|
@@ -64,10 +65,12 @@ files:
|
|
64
65
|
- lib/Mollie/API/Object/List.rb
|
65
66
|
- lib/Mollie/API/Object/Method.rb
|
66
67
|
- lib/Mollie/API/Object/Payment.rb
|
68
|
+
- lib/Mollie/API/Object/Payment/Refund.rb
|
67
69
|
- lib/Mollie/API/Resource/Base.rb
|
68
70
|
- lib/Mollie/API/Resource/Issuers.rb
|
69
71
|
- lib/Mollie/API/Resource/Methods.rb
|
70
72
|
- lib/Mollie/API/Resource/Payments.rb
|
73
|
+
- lib/Mollie/API/Resource/Payments/Refunds.rb
|
71
74
|
- lib/Mollie/API/cacert.pem
|
72
75
|
- mollie.gemspec
|
73
76
|
homepage: https://github.com/mollie/mollie-api-ruby
|