spree_mollie_gateway 1.0.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ca6618e67badd341146be123e4067e78b77c3e4c58690abe454cc3afd168474
4
- data.tar.gz: a802ba3b1c7e476e382dd1e337a095ae4d85575c353a2180344613f19fcff728
3
+ metadata.gz: 0d2156752574cb481cd69757a94a6d70d0cf9866842674e12b02c63fcb1363b9
4
+ data.tar.gz: 41ed49883da8d4ea6e63270e0d0f80eaf2e32616f2df5b6ea4d17d1c281cf945
5
5
  SHA512:
6
- metadata.gz: 92aebe0917980d074309baf7d6569cb456045504bd642f03b03b03290fdccb4273ae65b07b5f17cf68b7c94bbd6e954521cced2f444278a179d1e11702cf4c66
7
- data.tar.gz: d407ac8b945b46308bce1a22065d96c6965d1951834c7c1fc1a450c2fa71920dac35f7ee22c4b781dac93dd050996a82dbc9a690a9c2fa65c03728ec46cb89d5
6
+ metadata.gz: 6b5a7cf8173bb01270ac9c69cb8f6d236332a9ef6241093a5e7694f8afc894a9a0f66891cb52f8977733d270cab3585c03512c470414134d968a1a0683579cd2
7
+ data.tar.gz: b71cd573a473148c54cd2da0d1145955212e38fc4e56b407d24673aa189b7cf5275863c1b7daf16d8c6b75094edba8363c2c79ec671fcf139ab7243e2c078626
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
- gem 'mollie-api-ruby', '~> 3.1.4'
5
+ gem 'mollie-api-ruby', '~> 4.0.0'
6
6
 
7
7
  # Specify your gem's dependencies in spree_mollie_gateway.gemspec
8
8
  gemspec
data/README.md CHANGED
@@ -15,11 +15,16 @@ Please go to the [signup page](https://www.mollie.com/signup) to create a new Mo
15
15
  3. [Installation](#installation)
16
16
  4. [Configuring Mollie Gateway](#configuring-mollie-gateway)
17
17
  5. [API endpoints](#api-endpoints)
18
+ 6. [Upgrading](#upgrading)
19
+ 6. [API documentation](#api-documentation)
20
+ 6. [Want to help us make our API client even better?](#want-to-help-us-make-our-api-client-even-better)
18
21
  6. [License](#license)
22
+ 7. [Support](#support)
19
23
 
20
24
  ## Features
21
25
 
22
26
  * Support for all available Mollie payment methods.
27
+ * Multicurrency payments
23
28
  * Support for [one-click payments](https://www.mollie.com/en/features/checkout).
24
29
  * Fast in-house support. You will always be helped by someone who knows our products intimately.
25
30
  * Multiple translations: English and Dutch.
@@ -60,9 +65,40 @@ bundle exec rails g spree_mollie_gateway:install
60
65
  7. Save and you're done!
61
66
 
62
67
  ## API endpoints
63
- This gateway comes with a couple of API endpoints which seamlessly integrate with the Spree API.
68
+ This gateway comes with a couple of API endpoints which seamlessly integrate with the [Spree API](https://guides.spreecommerce.org/api/).
64
69
 
65
- <a href="docs/api">Overview of available API endpoints.</a>
70
+ - <a href="docs/api">Overview of available API endpoints.</a>
71
+
72
+ ## Upgrading
73
+
74
+ - <a href="docs/migration_v1_x.md">Migration from v1.x</a>
75
+
76
+ ## API documentation
77
+
78
+ If you wish to learn more about our API, please visit the [Mollie API Documentation](https://docs.mollie.com).
79
+
80
+ ## Want to help us make our API client even better?
81
+
82
+ Want to help us make our API client even better? We take [pull requests](https://github.com/mollie/mollie-api-ruby/pulls?utf8=%E2%9C%93&q=is%3Apr), sure. But how would you like to contribute to a technology oriented organization? Mollie is hiring developers and system engineers. [Check out our vacancies](https://jobs.mollie.com/) or [get in touch](mailto:recruitment@mollie.com).
66
83
 
67
84
  ## License
68
- BSD (Berkeley Software Distribution) License. Copyright (c) 2014-2018, Mollie B.V.
85
+ [BSD (Berkeley Software Distribution) License](https://opensource.org/licenses/bsd-license.php). Copyright (c) 2014-2018, Mollie B.V.
86
+
87
+ ## Support
88
+ Contact: [www.mollie.com](https://www.mollie.com) — info@mollie.com — +31 20-612 88 55
89
+
90
+ + [More information about iDEAL via Mollie](https://www.mollie.com/en/payments/ideal/)
91
+ + [More information about Credit card via Mollie](https://www.mollie.com/en/payments/credit-card/)
92
+ + [More information about Bancontact via Mollie](https://www.mollie.com/en/payments/bancontact/)
93
+ + [More information about SOFORT Banking via Mollie](https://www.mollie.com/en/payments/sofort/)
94
+ + [More information about SEPA Bank transfer via Mollie](https://www.mollie.com/en/payments/bank-transfer/)
95
+ + [More information about SEPA Direct debit via Mollie](https://www.mollie.com/en/payments/direct-debit/)
96
+ + [More information about Bitcoin via Mollie](https://www.mollie.com/en/payments/bitcoin/)
97
+ + [More information about PayPal via Mollie](https://www.mollie.com/en/payments/paypal/)
98
+ + [More information about KBC/CBC Payment Button via Mollie](https://www.mollie.com/en/payments/kbc-cbc/)
99
+ + [More information about Belfius Direct Net via Mollie](https://www.mollie.com/en/payments/belfius)
100
+ + [More information about paysafecard via Mollie](https://www.mollie.com/en/payments/paysafecard/)
101
+ + [More information about ING Home’Pay via Mollie](https://www.mollie.com/en/payments/ing-homepay/)
102
+ + [More information about Gift cards via Mollie](https://www.mollie.com/en/payments/gift-cards)
103
+ + [More information about EPS via Mollie](https://www.mollie.com/en/payments/eps)
104
+ + [More information about Giropay via Mollie](https://www.mollie.com/en/payments/giropay)
@@ -4,10 +4,17 @@ module Spree
4
4
  class MollieController < BaseController
5
5
  def methods
6
6
  mollie = Spree::PaymentMethod.find_by_type 'Spree::Gateway::MollieGateway'
7
- payment_methods = mollie.available_payment_methods
7
+ payment_methods = mollie.available_methods(methods_params).map {
8
+ |method| method.attributes
9
+ }
8
10
 
9
11
  render json: payment_methods
10
12
  end
13
+
14
+ private
15
+ def methods_params
16
+ params.permit(:amount => [:currency, :value])
17
+ end
11
18
  end
12
19
  end
13
20
  end
@@ -36,18 +36,18 @@ module Spree
36
36
  end
37
37
 
38
38
  # Create a new Mollie payment.
39
- def create_transaction(money_in_cents, source, gateway_options)
39
+ def create_transaction(money, source, gateway_options)
40
40
  MollieLogger.debug("About to create payment for order #{gateway_options[:order_id]}")
41
41
 
42
42
  begin
43
43
  mollie_payment = ::Mollie::Payment.create(
44
- prepare_payment_params(money_in_cents, source, gateway_options)
44
+ prepare_payment_params(money, source, gateway_options)
45
45
  )
46
46
  MollieLogger.debug("Payment #{mollie_payment.id} created for order #{gateway_options[:order_id]}")
47
47
 
48
48
  source.status = mollie_payment.status
49
49
  source.payment_id = mollie_payment.id
50
- source.payment_url = mollie_payment.payment_url
50
+ source.payment_url = mollie_payment.checkout_url
51
51
  source.save!
52
52
  ActiveMerchant::Billing::Response.new(true, 'Payment created')
53
53
  rescue Mollie::Exception => e
@@ -67,14 +67,17 @@ module Spree
67
67
  customer
68
68
  end
69
69
 
70
- def prepare_payment_params(money_in_cents, source, gateway_options)
70
+ def prepare_payment_params(money, source, gateway_options)
71
71
  spree_routes = ::Spree::Core::Engine.routes.url_helpers
72
72
  order_number = gateway_options[:order_id]
73
73
  customer_id = gateway_options[:customer_id]
74
- amount = money_in_cents / 100.0
74
+ currency = gateway_options[:currency]
75
75
 
76
76
  order_params = {
77
- amount: amount,
77
+ amount: {
78
+ value: money.to_s,
79
+ currency: currency
80
+ },
78
81
  description: "Spree Order: #{order_number}",
79
82
  redirectUrl: spree_routes.mollie_validate_payment_mollie_url(
80
83
  order_number: order_number,
@@ -84,23 +87,31 @@ module Spree
84
87
  order_number: order_number,
85
88
  host: get_preference(:hostname)
86
89
  ),
87
- method: source.payment_method_name,
88
90
  metadata: {
89
91
  order_id: order_number
90
92
  },
91
93
  api_key: get_preference(:api_key),
92
94
  }
93
95
 
94
- source.issuer.present?
95
- order_params.merge! ({
96
- issuer: source.issuer
97
- })
96
+ if source.try(:payment_method_name).present?
97
+ order_params.merge! ({
98
+ method: source.payment_method_name,
99
+ })
100
+ end
101
+
102
+ if source.try(:issuer).present?
103
+ order_params.merge! ({
104
+ issuer: source.issuer
105
+ })
106
+ end
98
107
 
99
108
  if customer_id.present?
100
- if source.payment_method_name.match(Regexp.union([::Mollie::Method::BITCOIN, ::Mollie::Method::BANKTRANSFER, ::Mollie::Method::GIFTCARD]))
101
- order_params.merge! ({
102
- billingEmail: gateway_options[:email]
103
- })
109
+ if source.try(:payment_method_name).present?
110
+ if source.payment_method_name.match(Regexp.union([::Mollie::Method::BITCOIN, ::Mollie::Method::BANKTRANSFER, ::Mollie::Method::GIFTCARD]))
111
+ order_params.merge! ({
112
+ billingEmail: gateway_options[:email]
113
+ })
114
+ end
104
115
  end
105
116
 
106
117
  if Spree::Gateway::MollieGateway.allow_one_click_payments?
@@ -120,18 +131,22 @@ module Spree
120
131
 
121
132
  # Create a new Mollie refund
122
133
  def credit(credit_cents, payment_id, options)
123
- order_number = options[:originator].try(:payment).try(:order).try(:number)
134
+ order = options[:originator].try(:payment).try(:order)
135
+ order_number = order.try(:number)
136
+ order_currency = order.try(:currency)
124
137
  MollieLogger.debug("Starting refund for order #{order_number}")
125
138
 
126
139
  begin
127
- amount = credit_cents / 100.0
128
140
  Mollie::Payment::Refund.create(
129
141
  payment_id: payment_id,
130
- amount: amount,
142
+ amount: {
143
+ value: order.display_total.money.to_s,
144
+ currency: order_currency
145
+ },
131
146
  description: "Refund Spree Order ID: #{order_number}",
132
147
  api_key: get_preference(:api_key)
133
148
  )
134
- MollieLogger.debug("Successfully refunded #{amount} for order #{order_number}")
149
+ MollieLogger.debug("Successfully refunded #{order.display_total} for order #{order_number}")
135
150
  ActiveMerchant::Billing::Response.new(true, 'Refund successful')
136
151
  rescue Mollie::Exception => e
137
152
  MollieLogger.debug("Refund failed for order #{order_number}: #{e.message}")
@@ -139,11 +154,27 @@ module Spree
139
154
  end
140
155
  end
141
156
 
142
- def available_payment_methods
143
- ::Mollie::Method.all(
157
+ def available_methods(params = nil)
158
+ method_params = {
144
159
  api_key: get_preference(:api_key),
145
- include: 'issuers'
146
- )
160
+ include: 'issuers',
161
+ }
162
+
163
+ if params.present?
164
+ method_params.merge! params
165
+ end
166
+
167
+ ::Mollie::Method.all(method_params)
168
+ end
169
+
170
+ def available_methods_for_order(order)
171
+ params = {
172
+ amount: {
173
+ currency: order.currency,
174
+ value: order.display_total.money.to_s
175
+ }
176
+ }
177
+ available_methods(params)
147
178
  end
148
179
 
149
180
  def update_payment_status(payment)
@@ -164,10 +195,8 @@ module Spree
164
195
  payment.complete! unless payment.completed?
165
196
  payment.order.finalize!
166
197
  payment.order.update_attributes(:state => 'complete', :completed_at => Time.now)
167
- when 'cancelled', 'expired', 'failed'
198
+ when 'canceled', 'expired', 'failed'
168
199
  payment.failure! unless payment.failed?
169
- when 'refunded'
170
- payment.void! unless payment.void?
171
200
  else
172
201
  MollieLogger.debug('Unhandled Mollie payment state received. Therefore we did not update the payment state.')
173
202
  end
@@ -21,7 +21,7 @@ module Spree
21
21
  'iDEAL'
22
22
  when ::Mollie::Method::CREDITCARD then
23
23
  'Credit card'
24
- when ::Mollie::Method::MISTERCASH then
24
+ when ::Mollie::Method::BANCONTACT then
25
25
  'Bancontact'
26
26
  when ::Mollie::Method::SOFORT then
27
27
  'SOFORT Banking'
@@ -37,12 +37,16 @@ module Spree
37
37
  'Belfius Pay Button'
38
38
  when ::Mollie::Method::PAYSAFECARD then
39
39
  'paysafecard'
40
- when ::Mollie::Method::PODIUMCADEAUKAART then
41
- 'Podium Cadeaukaart'
42
40
  when ::Mollie::Method::GIFTCARD then
43
41
  'Giftcard'
44
42
  when ::Mollie::Method::INGHOMEPAY then
45
43
  'ING Home\'Pay'
44
+ when ::Mollie::Method::EPS then
45
+ 'EPS'
46
+ when ::Mollie::Method::GIROPAY then
47
+ 'Giropay'
48
+ when ::Mollie::Method::DIRECTDEBIT then
49
+ 'SEPA Direct debit'
46
50
  else
47
51
  'Mollie'
48
52
  end
@@ -18,7 +18,7 @@ Spree::Payment::Processing.module_eval do
18
18
  end
19
19
 
20
20
  def process_with_mollie
21
- amount ||= money.money.cents
21
+ amount ||= money.money
22
22
  started_processing!
23
23
  response = payment_method.create_transaction(
24
24
  amount,
@@ -1,11 +1,11 @@
1
1
  <ul class="list-group">
2
- <% payment_method.available_payment_methods.each do |method| %>
2
+ <% payment_method.available_methods_for_order(@order).each do |method| %>
3
3
  <% prefix = "payment_source[#{payment_method.id}]" %>
4
4
  <div class="radio list-group-item">
5
5
 
6
6
  <label>
7
7
  <%= radio_button(prefix, :payment_method_name, method.id, class: 'js-mollie-payment-method') %>
8
- <%= image_tag(method.image['normal']) %>
8
+ <%= image_tag(method.image['size1x']) %>
9
9
  <%= method.description %>
10
10
  </label>
11
11
 
data/docs/api/methods.md CHANGED
@@ -2,8 +2,18 @@
2
2
 
3
3
  Returns a list of Mollie payment methods (and its issuers) which are enabled for your website profile.
4
4
 
5
+ ## Headers
6
+
7
+ This endpoint behaves just like very other Spree API endpoint. If your endpoints require authentication, make sure you send the `X-Spree-Token` header.
8
+
5
9
  ## Parameters
6
- This endpoint behaves just like very other Spree API endpoint. If your endpoints require authentication, make sure you sent the `X-Spree-Token` header.
10
+
11
+ If you would like to obtain a list of payment methods for a specific currency, you should send an `amount` object containing value and currency. Only methods that support the `amount` and `currency` are returned.
12
+
13
+ | URL Parameter | Required? |
14
+ | -------------------- | ----------:|
15
+ | amount[currency] | No |
16
+ | amount[value] | No |
7
17
 
8
18
  ## Example request
9
19
 
@@ -20,40 +30,274 @@ Content-Type: application/json; charset=utf-8
20
30
 
21
31
  [
22
32
  {
23
- "attributes": {
24
- "resource": "method",
25
- "id": "ideal",
26
- "description": "iDEAL",
27
- "amount": {
28
- "minimum": "0.01",
29
- "maximum": "50000.00"
30
- },
31
- "image": {
32
- "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
33
- "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
34
- },
35
- "issuers": [
36
- {
37
- "resource": "issuer",
38
- "id": "ideal_TESTNL99",
39
- "name": "TBM Bank",
40
- "method": "ideal",
41
- "image": {
42
- "normal": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99.png",
43
- "bigger": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99%402x.png"
44
- }
45
- }
46
- ]
47
- },
33
+ "resource": "method",
48
34
  "id": "ideal",
49
35
  "description": "iDEAL",
50
- "amount": {
51
- "minimum": "0.01",
52
- "maximum": "50000.00"
36
+ "image": {
37
+ "size1x": "https://www.mollie.com/images/payscreen/methods/ideal.png",
38
+ "size2x": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
53
39
  },
40
+ "issuers": [
41
+ {
42
+ "resource": "issuer",
43
+ "id": "ideal_ABNANL2A",
44
+ "name": "ABN AMRO",
45
+ "image": {
46
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/ABNANL2A.png",
47
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/ABNANL2A.png"
48
+ }
49
+ },
50
+ {
51
+ "resource": "issuer",
52
+ "id": "ideal_ASNBNL21",
53
+ "name": "ASN Bank",
54
+ "image": {
55
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/ASNBNL21.png",
56
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/ASNBNL21.png"
57
+ }
58
+ },
59
+ {
60
+ "resource": "issuer",
61
+ "id": "ideal_BUNQNL2A",
62
+ "name": "bunq",
63
+ "image": {
64
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/BUNQNL2A.png",
65
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/BUNQNL2A.png"
66
+ }
67
+ },
68
+ {
69
+ "resource": "issuer",
70
+ "id": "ideal_INGBNL2A",
71
+ "name": "ING",
72
+ "image": {
73
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/INGBNL2A.png",
74
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/INGBNL2A.png"
75
+ }
76
+ },
77
+ {
78
+ "resource": "issuer",
79
+ "id": "ideal_KNABNL2H",
80
+ "name": "Knab",
81
+ "image": {
82
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/KNABNL2H.png",
83
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/KNABNL2H.png"
84
+ }
85
+ },
86
+ {
87
+ "resource": "issuer",
88
+ "id": "ideal_MOYONL21",
89
+ "name": "Moneyou",
90
+ "image": {
91
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/MOYONL21.png",
92
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/MOYONL21.png"
93
+ }
94
+ },
95
+ {
96
+ "resource": "issuer",
97
+ "id": "ideal_RABONL2U",
98
+ "name": "Rabobank",
99
+ "image": {
100
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/RABONL2U.png",
101
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/RABONL2U.png"
102
+ }
103
+ },
104
+ {
105
+ "resource": "issuer",
106
+ "id": "ideal_RBRBNL21",
107
+ "name": "RegioBank",
108
+ "image": {
109
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/RBRBNL21.png",
110
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/RBRBNL21.png"
111
+ }
112
+ },
113
+ {
114
+ "resource": "issuer",
115
+ "id": "ideal_SNSBNL2A",
116
+ "name": "SNS Bank",
117
+ "image": {
118
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/SNSBNL2A.png",
119
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/SNSBNL2A.png"
120
+ }
121
+ },
122
+ {
123
+ "resource": "issuer",
124
+ "id": "ideal_TRIONL2U",
125
+ "name": "Triodos Bank",
126
+ "image": {
127
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TRIONL2U.png",
128
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TRIONL2U.png"
129
+ }
130
+ },
131
+ {
132
+ "resource": "issuer",
133
+ "id": "ideal_FVLBNL22",
134
+ "name": "van Lanschot",
135
+ "image": {
136
+ "size1x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/FVLBNL22.png",
137
+ "size2x": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/FVLBNL22.png"
138
+ }
139
+ }
140
+ ],
141
+ "_links": {
142
+ "self": {
143
+ "href": "https://api.mollie.com/v2/methods/ideal",
144
+ "type": "application/hal+json"
145
+ }
146
+ }
147
+ },
148
+ {
149
+ "resource": "method",
150
+ "id": "creditcard",
151
+ "description": "Credit card",
152
+ "image": {
153
+ "size1x": "https://www.mollie.com/images/payscreen/methods/creditcard.png",
154
+ "size2x": "https://www.mollie.com/images/payscreen/methods/creditcard%402x.png"
155
+ },
156
+ "_links": {
157
+ "self": {
158
+ "href": "https://api.mollie.com/v2/methods/creditcard",
159
+ "type": "application/hal+json"
160
+ }
161
+ }
162
+ },
163
+ {
164
+ "resource": "method",
165
+ "id": "paypal",
166
+ "description": "PayPal",
54
167
  "image": {
55
- "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
56
- "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
168
+ "size1x": "https://www.mollie.com/images/payscreen/methods/paypal.png",
169
+ "size2x": "https://www.mollie.com/images/payscreen/methods/paypal%402x.png"
170
+ },
171
+ "_links": {
172
+ "self": {
173
+ "href": "https://api.mollie.com/v2/methods/paypal",
174
+ "type": "application/hal+json"
175
+ }
176
+ }
177
+ },
178
+ {
179
+ "resource": "method",
180
+ "id": "bancontact",
181
+ "description": "Bancontact",
182
+ "image": {
183
+ "size1x": "https://www.mollie.com/images/payscreen/methods/mistercash.png",
184
+ "size2x": "https://www.mollie.com/images/payscreen/methods/mistercash%402x.png"
185
+ },
186
+ "_links": {
187
+ "self": {
188
+ "href": "https://api.mollie.com/v2/methods/mistercash",
189
+ "type": "application/hal+json"
190
+ }
191
+ }
192
+ },
193
+ {
194
+ "resource": "method",
195
+ "id": "banktransfer",
196
+ "description": "Bank transfer",
197
+ "image": {
198
+ "size1x": "https://www.mollie.com/images/payscreen/methods/banktransfer.png",
199
+ "size2x": "https://www.mollie.com/images/payscreen/methods/banktransfer%402x.png"
200
+ },
201
+ "_links": {
202
+ "self": {
203
+ "href": "https://api.mollie.com/v2/methods/banktransfer",
204
+ "type": "application/hal+json"
205
+ }
206
+ }
207
+ },
208
+ {
209
+ "resource": "method",
210
+ "id": "sofort",
211
+ "description": "SOFORT Banking",
212
+ "image": {
213
+ "size1x": "https://www.mollie.com/images/payscreen/methods/sofort.png",
214
+ "size2x": "https://www.mollie.com/images/payscreen/methods/sofort%402x.png"
215
+ },
216
+ "_links": {
217
+ "self": {
218
+ "href": "https://api.mollie.com/v2/methods/sofort",
219
+ "type": "application/hal+json"
220
+ }
221
+ }
222
+ },
223
+ {
224
+ "resource": "method",
225
+ "id": "kbc",
226
+ "description": "KBC/CBC Payment Button",
227
+ "image": {
228
+ "size1x": "https://www.mollie.com/images/payscreen/methods/kbc.png",
229
+ "size2x": "https://www.mollie.com/images/payscreen/methods/kbc%402x.png"
230
+ },
231
+ "issuers": [
232
+ {
233
+ "resource": "issuer",
234
+ "id": "cbc",
235
+ "name": "CBC",
236
+ "image": {
237
+ "size1x": "https://www.mollie.com/images/checkout/v2/kbc-issuer-icons/cbc.png",
238
+ "size2x": "https://www.mollie.com/images/checkout/v2/kbc-issuer-icons/cbc.png"
239
+ }
240
+ },
241
+ {
242
+ "resource": "issuer",
243
+ "id": "kbc",
244
+ "name": "KBC",
245
+ "image": {
246
+ "size1x": "https://www.mollie.com/images/checkout/v2/kbc-issuer-icons/kbc.png",
247
+ "size2x": "https://www.mollie.com/images/checkout/v2/kbc-issuer-icons/kbc.png"
248
+ }
249
+ }
250
+ ],
251
+ "_links": {
252
+ "self": {
253
+ "href": "https://api.mollie.com/v2/methods/kbc",
254
+ "type": "application/hal+json"
255
+ }
256
+ }
257
+ },
258
+ {
259
+ "resource": "method",
260
+ "id": "belfius",
261
+ "description": "Belfius Pay Button",
262
+ "image": {
263
+ "size1x": "https://www.mollie.com/images/payscreen/methods/belfius.png",
264
+ "size2x": "https://www.mollie.com/images/payscreen/methods/belfius%402x.png"
265
+ },
266
+ "_links": {
267
+ "self": {
268
+ "href": "https://api.mollie.com/v2/methods/belfius",
269
+ "type": "application/hal+json"
270
+ }
271
+ }
272
+ },
273
+ {
274
+ "resource": "method",
275
+ "id": "inghomepay",
276
+ "description": "ING Home'Pay",
277
+ "image": {
278
+ "size1x": "https://www.mollie.com/images/payscreen/methods/inghomepay.png",
279
+ "size2x": "https://www.mollie.com/images/payscreen/methods/inghomepay%402x.png"
280
+ },
281
+ "_links": {
282
+ "self": {
283
+ "href": "https://api.mollie.com/v2/methods/inghomepay",
284
+ "type": "application/hal+json"
285
+ }
286
+ }
287
+ },
288
+ {
289
+ "resource": "method",
290
+ "id": "bitcoin",
291
+ "description": "Bitcoin",
292
+ "image": {
293
+ "size1x": "https://www.mollie.com/images/payscreen/methods/bitcoin.png",
294
+ "size2x": "https://www.mollie.com/images/payscreen/methods/bitcoin%402x.png"
295
+ },
296
+ "_links": {
297
+ "self": {
298
+ "href": "https://api.mollie.com/v2/methods/bitcoin",
299
+ "type": "application/hal+json"
300
+ }
57
301
  }
58
302
  }
59
303
  ]
@@ -0,0 +1,11 @@
1
+ # Migration from v1.x
2
+
3
+ Version 2.x includes support for multicurrency payments and refunds. This feature has been introduced in the Mollie V2 API. Please refer to [Migrating from v1 to v2](https://docs.mollie.com/migrating-v1-to-v2) for a general overview of the switch to Mollie v2 API.
4
+
5
+ ## Retrieving payment methods using Spree API
6
+
7
+ It's recommended to pass a `amount[currency]` and `amount[value]` URL params when fetching the available methods. This call will only return the available payment methods that are available for this currency and amount.
8
+
9
+ ```bash
10
+ curl "example.com/api/v1/mollie/methods?amount%5Bcurrency%5D=EUR&amount%5Bvalue%5D=10.00"
11
+ ```
@@ -1,3 +1,3 @@
1
1
  module SpreeMollieGateway
2
- VERSION = '1.0.7'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -50,5 +50,5 @@ Gem::Specification.new do |spec|
50
50
  spec.add_development_dependency 'coffee-rails'
51
51
  spec.add_development_dependency 'database_cleaner'
52
52
 
53
- spec.add_runtime_dependency 'mollie-api-ruby', '~> 3.1', '>= 3.1.4'
53
+ spec.add_runtime_dependency 'mollie-api-ruby', '~> 4.0.0'
54
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_mollie_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vernon de Goede
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-22 00:00:00.000000000 Z
11
+ date: 2018-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -272,20 +272,14 @@ dependencies:
272
272
  requirements:
273
273
  - - "~>"
274
274
  - !ruby/object:Gem::Version
275
- version: '3.1'
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: 3.1.4
275
+ version: 4.0.0
279
276
  type: :runtime
280
277
  prerelease: false
281
278
  version_requirements: !ruby/object:Gem::Requirement
282
279
  requirements:
283
280
  - - "~>"
284
281
  - !ruby/object:Gem::Version
285
- version: '3.1'
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- version: 3.1.4
282
+ version: 4.0.0
289
283
  description: Mollie payment gateway for Spree Commerce.
290
284
  email:
291
285
  - vernon@mollie.com
@@ -324,6 +318,7 @@ files:
324
318
  - docs/api/methods.md
325
319
  - docs/api/readme.md
326
320
  - docs/debugging.md
321
+ - docs/migration_v1_x.md
327
322
  - lib/generators/spree_mollie_gateway/install/install_generator.rb
328
323
  - lib/spree_mollie_gateway.rb
329
324
  - lib/spree_mollie_gateway/engine.rb