adyen 0.3.4 → 0.3.5
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.
- data/adyen.gemspec +2 -2
- data/lib/adyen/soap.rb +190 -6
- metadata +2 -2
data/adyen.gemspec
CHANGED
data/lib/adyen/soap.rb
CHANGED
@@ -155,7 +155,7 @@ module Adyen
|
|
155
155
|
def authorise(args = {})
|
156
156
|
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
157
157
|
invoke_args[:selected_recurring_detail_reference] ||= 'LATEST'
|
158
|
-
|
158
|
+
|
159
159
|
response = invoke('payment:authorise') do |message|
|
160
160
|
message.add('payment:paymentRequest') do |req|
|
161
161
|
req.add('payment:selectedRecurringDetailReference', invoke_args[:selected_recurring_detail_reference])
|
@@ -173,21 +173,114 @@ module Adyen
|
|
173
173
|
req.add('payment:shopperInteraction', 'ContAuth')
|
174
174
|
end
|
175
175
|
end
|
176
|
+
|
177
|
+
parse_authorise(response)
|
176
178
|
end
|
177
|
-
|
178
|
-
#
|
179
|
+
|
180
|
+
# Capture a payment.
|
179
181
|
#
|
180
|
-
# @param [Hash] args The paramaters to use for this call. These will be
|
182
|
+
# @param [Hash] args The paramaters to use for this call. These will be merged by any default
|
183
|
+
# parameters set using {Adyen::SOAP.default_arguments}. Note that every option defined below
|
184
|
+
# is required by the Adyen SOAP service, so please provide a value for all options.
|
185
|
+
# @option args [String] :merchant_account The merchant account to file this payment under.
|
186
|
+
# @option args [String] :currency The currency code (EUR, GBP, USD, etc).
|
187
|
+
# @option args [Integer] :value The value of the payment in cents.
|
188
|
+
# @option args [String] :original_reference The psp_reference of the payment to capture.
|
189
|
+
#
|
190
|
+
# @return [nil] This action returns nothing of interest.
|
191
|
+
#
|
192
|
+
# @see https://support.adyen.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=1
|
193
|
+
# The Adyen integration manual
|
194
|
+
#
|
195
|
+
# @todo Parse response object and return something useful
|
196
|
+
def capture(args = {})
|
197
|
+
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
198
|
+
response = invoke('payment:capture') do |message|
|
199
|
+
message.add('payment:modificationRequest') do |req|
|
200
|
+
req.add('payment:merchantAccount', invoke_args[:merchant_account])
|
201
|
+
req.add('payment:modificationAmount') do |amount|
|
202
|
+
amount.add('common:currency', invoke_args[:currency])
|
203
|
+
amount.add('common:value', invoke_args[:value])
|
204
|
+
end
|
205
|
+
req.add('payment:originalReference', invoke_args[:original_reference])
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
parse_capture(response)
|
210
|
+
end
|
211
|
+
|
212
|
+
# Cancel a payment.
|
213
|
+
#
|
214
|
+
# @param [Hash] args The paramaters to use for this call. These will be merged by any default
|
181
215
|
# parameters set using {Adyen::SOAP.default_arguments}. Note that every option defined below
|
182
216
|
# is required by the Adyen SOAP service, so please provide a value for all options.
|
183
217
|
# @option args [String] :merchant_account The merchant account to file this payment under.
|
184
218
|
# @option args [String] :original_reference The psp_reference of the payment to cancel.
|
185
219
|
#
|
186
|
-
# @return [nil] This action returns nothing of interest.
|
187
|
-
# will be communicated using a {Adyen::Notification notification}.
|
220
|
+
# @return [nil] This action returns nothing of interest.
|
188
221
|
#
|
189
222
|
# @see https://support.adyen.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=1
|
190
223
|
# The Adyen integration manual
|
224
|
+
#
|
225
|
+
# @todo Parse response object and return something useful
|
226
|
+
def cancel(args = {})
|
227
|
+
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
228
|
+
response = invoke('payment:cancel') do |message|
|
229
|
+
message.add('payment:modificationRequest') do |req|
|
230
|
+
req.add('payment:merchantAccount', invoke_args[:merchant_account])
|
231
|
+
req.add('payment:originalReference', invoke_args[:original_reference])
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
parse_cancel(response)
|
236
|
+
end
|
237
|
+
|
238
|
+
# Refund a payment.
|
239
|
+
#
|
240
|
+
# @param [Hash] args The paramaters to use for this call. These will be merged by any default
|
241
|
+
# parameters set using {Adyen::SOAP.default_arguments}. Note that every option defined below
|
242
|
+
# is required by the Adyen SOAP service, so please provide a value for all options.
|
243
|
+
# @option args [String] :merchant_account The merchant account to file this payment under.
|
244
|
+
# @option args [String] :currency The currency code (EUR, GBP, USD, etc).
|
245
|
+
# @option args [Integer] :value The value of the refund in cents.
|
246
|
+
# @option args [String] :original_reference The psp_reference of the payment to refund.
|
247
|
+
#
|
248
|
+
# @return [nil] This action returns nothing of interest.
|
249
|
+
#
|
250
|
+
# @see https://support.adyen.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=1
|
251
|
+
# The Adyen integration manual
|
252
|
+
#
|
253
|
+
# @todo Parse response object and return something useful
|
254
|
+
def refund(args = {})
|
255
|
+
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
256
|
+
response = invoke('payment:refund') do |message|
|
257
|
+
message.add('payment:modificationRequest') do |req|
|
258
|
+
req.add('payment:merchantAccount', invoke_args[:merchant_account])
|
259
|
+
req.add('payment:modificationAmount') do |amount|
|
260
|
+
amount.add('common:currency', invoke_args[:currency])
|
261
|
+
amount.add('common:value', invoke_args[:value])
|
262
|
+
end
|
263
|
+
req.add('payment:originalReference', invoke_args[:original_reference])
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
parse_refund(response)
|
268
|
+
end
|
269
|
+
|
270
|
+
# Cancel or refund a payment.
|
271
|
+
#
|
272
|
+
# @param [Hash] args The paramaters to use for this call. These will be merged by any default
|
273
|
+
# parameters set using {Adyen::SOAP.default_arguments}. Note that every option defined below
|
274
|
+
# is required by the Adyen SOAP service, so please provide a value for all options.
|
275
|
+
# @option args [String] :merchant_account The merchant account to file this payment under.
|
276
|
+
# @option args [String] :original_reference The psp_reference of the payment to cancel or refund.
|
277
|
+
#
|
278
|
+
# @return [nil] This action returns nothing of interest.
|
279
|
+
#
|
280
|
+
# @see https://support.adyen.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=1
|
281
|
+
# The Adyen integration manual
|
282
|
+
#
|
283
|
+
# @todo Parse response object and return something useful
|
191
284
|
def cancel_or_refund(args = {})
|
192
285
|
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
193
286
|
response = invoke('payment:cancelOrRefund') do |message|
|
@@ -196,7 +289,54 @@ module Adyen
|
|
196
289
|
req.add('payment:originalReference', invoke_args[:original_reference])
|
197
290
|
end
|
198
291
|
end
|
292
|
+
|
293
|
+
parse_cancel_or_refund(response)
|
294
|
+
end
|
295
|
+
|
296
|
+
private
|
297
|
+
|
298
|
+
def parse_authorise(response)
|
299
|
+
response = response.xpath('//payment:authoriseResponse/payment:paymentResult')
|
300
|
+
{
|
301
|
+
:psp_reference => response.xpath('./payment:pspReference/text()').to_s,
|
302
|
+
:result_code => response.xpath('./payment:resultCode/text()').to_s,
|
303
|
+
:auth_code => response.xpath('./payment:authCode/text()').to_s,
|
304
|
+
:refusal_reason => response.xpath('./payment:refusalReason/text()').to_s
|
305
|
+
}
|
199
306
|
end
|
307
|
+
|
308
|
+
def parse_capture(response)
|
309
|
+
response = response.xpath('//payment:captureResponse/payment:captureResult')
|
310
|
+
{
|
311
|
+
:psp_reference => response.xpath('./payment:pspReference/text()').to_s,
|
312
|
+
:response => response.xpath('./payment:response/text()').to_s
|
313
|
+
}
|
314
|
+
end
|
315
|
+
|
316
|
+
def parse_cancel(response)
|
317
|
+
response = response.xpath('//payment:cancelResponse/payment:cancelResult')
|
318
|
+
{
|
319
|
+
:psp_reference => response.xpath('./payment:pspReference/text()').to_s,
|
320
|
+
:response => response.xpath('./payment:response/text()').to_s
|
321
|
+
}
|
322
|
+
end
|
323
|
+
|
324
|
+
def parse_refund(response)
|
325
|
+
response = response.xpath('//payment:refundResponse/payment:refundResult')
|
326
|
+
{
|
327
|
+
:psp_reference => response.xpath('./payment:pspReference/text()').to_s,
|
328
|
+
:response => response.xpath('./payment:response/text()').to_s
|
329
|
+
}
|
330
|
+
end
|
331
|
+
|
332
|
+
def parse_cancel_or_refund(response)
|
333
|
+
response = response.xpath('//payment:cancelOrRefundResponse/payment:cancelOrRefundResult')
|
334
|
+
{
|
335
|
+
:psp_reference => response.xpath('./payment:pspReference/text()').to_s,
|
336
|
+
:response => response.xpath('./payment:response/text()').to_s
|
337
|
+
}
|
338
|
+
end
|
339
|
+
|
200
340
|
end
|
201
341
|
|
202
342
|
# SOAP client to interact with the recurring payment service of Adyen. This clients
|
@@ -227,6 +367,8 @@ module Adyen
|
|
227
367
|
|
228
368
|
# Submits a recurring payment for a recurring contract to Adyen.
|
229
369
|
#
|
370
|
+
# @deprecated This method has been replaced by {Adyen::SOAP::PaymentService.authorise}.
|
371
|
+
#
|
230
372
|
# @example
|
231
373
|
# Adyen::SOAP::RecurringService.submit(
|
232
374
|
# :merchant_account => 'MyAccount',
|
@@ -280,6 +422,9 @@ module Adyen
|
|
280
422
|
# @option args [String] :shopper_reference The refrence of the shopper. This should be
|
281
423
|
# the same as the reference that was used to create the recurring contract.
|
282
424
|
#
|
425
|
+
# @return [Hash] This method returns a hash representation of the
|
426
|
+
# listRecurringDetailsResponse.
|
427
|
+
#
|
283
428
|
def list(args = {})
|
284
429
|
invoke_args = Adyen::SOAP.default_arguments.merge(args)
|
285
430
|
response = invoke('recurring:listRecurringDetails') do |message|
|
@@ -288,6 +433,8 @@ module Adyen
|
|
288
433
|
req.add('recurring:shopperReference', invoke_args[:shopper_reference])
|
289
434
|
end
|
290
435
|
end
|
436
|
+
|
437
|
+
parse_list_recurring_details(response)
|
291
438
|
end
|
292
439
|
|
293
440
|
# Disables a recurring payment contract. Requires the following arguments:
|
@@ -316,10 +463,14 @@ module Adyen
|
|
316
463
|
req.add('recurring:recurringDetailReference', invoke_args[:recurring_detail_reference])
|
317
464
|
end
|
318
465
|
end
|
466
|
+
|
467
|
+
parse_disable(response)
|
319
468
|
end
|
320
469
|
|
321
470
|
# Deactivates a recurring payment contract. Requires the following arguments:
|
322
471
|
#
|
472
|
+
# @deprecated This method has been replaced by the {#disable} method.
|
473
|
+
#
|
323
474
|
# @example
|
324
475
|
# Adyen::SOAP::RecurringService.deactivate(
|
325
476
|
# :merchant_account => 'MyAccount', :shopper_reference => user.id,
|
@@ -350,6 +501,39 @@ module Adyen
|
|
350
501
|
end
|
351
502
|
end
|
352
503
|
end
|
504
|
+
|
505
|
+
private
|
506
|
+
|
507
|
+
def parse_list_recurring_details(response)
|
508
|
+
response = response.xpath('//recurring:listRecurringDetailsResponse/recurring:result')
|
509
|
+
{
|
510
|
+
:creation_date => response.xpath('./recurring:creationDate/text()').to_date,
|
511
|
+
:details => response.xpath('.//recurring:RecurringDetail').map { |node| parse_recurring_detail(node) },
|
512
|
+
:last_known_shopper_email => response.xpath('./recurring:lastKnownShopperEmail/text()').to_s,
|
513
|
+
:shopper_reference => response.xpath('./recurring:shopperReference/text()').to_s
|
514
|
+
}
|
515
|
+
end
|
516
|
+
|
517
|
+
# @todo add support for elv and bank
|
518
|
+
def parse_recurring_detail(node)
|
519
|
+
{
|
520
|
+
:recurring_detail_reference => node.xpath('./recurring:recurringDetailReference/text()').to_s,
|
521
|
+
:variant => node.xpath('./recurring:variant/text()').to_s,
|
522
|
+
:creation_date => node.xpath('./recurring:creationDate/text()').to_date,
|
523
|
+
:card => {
|
524
|
+
:expiry_date => Date.new(node.xpath('./recurring:card/payment:expiryYear/text()').to_i, node.xpath('recurring:card/payment:expiryMonth').to_i, -1),
|
525
|
+
:holder_name => node.xpath('./recurring:card/payment:holderName/text()').to_s,
|
526
|
+
:number => node.xpath('./recurring:card/payment:number/text()').to_s
|
527
|
+
}
|
528
|
+
}
|
529
|
+
end
|
530
|
+
|
531
|
+
def parse_disable(response)
|
532
|
+
response = response.xpath('//recurring:disableResponse/recurring:result')
|
533
|
+
{
|
534
|
+
:response => response.xpath('./recurring:response/text()').to_s
|
535
|
+
}
|
536
|
+
end
|
353
537
|
end
|
354
538
|
end
|
355
539
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adyen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Willem van Bergen
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2010-
|
13
|
+
date: 2010-02-09 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|