amazon_pay 2.0.0 → 2.1.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
  SHA1:
3
- metadata.gz: 6fe8a7cb7c7d3bf5e8984213b08f09ac8efacc70
4
- data.tar.gz: 742f3bf2b4c60bbe6c4fb68f877c7ac58be6415f
3
+ metadata.gz: d7040fc32759f87f3f3f21b053831138dd4c5c04
4
+ data.tar.gz: aac1ff85663dffd1cc964b371d9f05f669150bfc
5
5
  SHA512:
6
- metadata.gz: 68b3f8d645532fd264f6dfdc3450bf5d645534005376f98ab1f7437ba4240952f24e1205eb9aa0e6b1ef0bc3ed72baff9d663bd719784170eeed50e4e731b50c
7
- data.tar.gz: d80bb0c8a923dfe4ceae7e7091d8b6f300e79a71f0f3ff9494d0fa5b88079e20348066961b8484949c5b5b82922345f608891d66c274ca0cbd02ce3eb723be88
6
+ metadata.gz: 6c746d20fd2e12307e06318b78f669656199d0baa849c0d2cd7f8bbe6f383222fe566b8ff7d0e802cb1bdc4784f742bc1c3524b69b38ce32e3738dc3cde5e7f7
7
+ data.tar.gz: 6bee2aa81e8e8d8aa00f48ff71c5d8fbc7d3519b172bfd1154aa7ce9bd2ec282936eb6ca6b20e25954c86c0421d352e49a91b5582988fe65e2158c5a0f19bd7e
data/LICENSE CHANGED
File without changes
data/NOTICE CHANGED
File without changes
data/README.md CHANGED
File without changes
data/lib/amazon_pay.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'amazon_pay/client'
2
2
  require 'amazon_pay/client_helper'
3
3
  require 'amazon_pay/ipn_handler'
4
+ require 'amazon_pay/log_initializer'
4
5
  require 'amazon_pay/login'
5
6
  require 'amazon_pay/request'
6
7
  require 'amazon_pay/response'
8
+ require 'amazon_pay/sanitize'
7
9
  require 'amazon_pay/version'
@@ -1,14 +1,14 @@
1
1
  require 'time'
2
+ require 'logger'
3
+ require 'stringio'
2
4
 
3
5
  module AmazonPay
4
-
5
6
  # AmazonPay API
6
7
  #
7
8
  # This client allows you to make all the necessary API calls
8
9
  # to integrate with AmazonPay. This client only
9
10
  # uses the standard Ruby library and is not dependant on Rails.
10
11
  class Client
11
-
12
12
  attr_reader(
13
13
  :merchant_id,
14
14
  :access_key,
@@ -19,14 +19,19 @@ module AmazonPay
19
19
  :platform_id,
20
20
  :throttle,
21
21
  :application_name,
22
- :application_version)
22
+ :application_version,
23
+ :log_enabled,
24
+ :log_file_name,
25
+ :log_level
26
+ )
23
27
 
24
28
  attr_accessor(
25
29
  :sandbox,
26
30
  :proxy_addr,
27
31
  :proxy_port,
28
32
  :proxy_user,
29
- :proxy_pass)
33
+ :proxy_pass
34
+ )
30
35
 
31
36
  # API keys are located at:
32
37
  # @see https://sellercentral.amazon.com
@@ -40,26 +45,32 @@ module AmazonPay
40
45
  # @optional throttle [Boolean] Default: true
41
46
  # @optional application_name [String]
42
47
  # @optional application_version [String]
48
+ # @optional log_enabled [Boolean] Default: false
49
+ # @optional log_file_name [String]
50
+ # @optional log_level [Symbol] Default: DEBUG
43
51
  # @optional proxy_addr [String]
44
52
  # @optional proxy_port [String]
45
53
  # @optional proxy_user [String]
46
54
  # @optional proxy_pass [String]
47
55
  def initialize(
48
- merchant_id,
49
- access_key,
50
- secret_key,
51
- sandbox: false,
52
- currency_code: :usd,
53
- region: :na,
54
- platform_id: nil,
55
- throttle: true,
56
- application_name: nil,
57
- application_version: nil,
58
- proxy_addr: :ENV,
59
- proxy_port: nil,
60
- proxy_user: nil,
61
- proxy_pass: nil)
62
-
56
+ merchant_id,
57
+ access_key,
58
+ secret_key,
59
+ sandbox: false,
60
+ currency_code: :usd,
61
+ region: :na,
62
+ platform_id: nil,
63
+ throttle: true,
64
+ application_name: nil,
65
+ application_version: nil,
66
+ proxy_addr: :ENV,
67
+ proxy_port: nil,
68
+ proxy_user: nil,
69
+ proxy_pass: nil,
70
+ log_enabled: false,
71
+ log_file_name: nil,
72
+ log_level: :DEBUG
73
+ )
63
74
  @merchant_id = merchant_id
64
75
  @access_key = access_key
65
76
  @secret_key = secret_key
@@ -85,6 +96,10 @@ module AmazonPay
85
96
  'Version' => AmazonPay::API_VERSION
86
97
  }
87
98
 
99
+ @log_enabled = log_enabled
100
+ @log_level = log_level
101
+ @log_file_name = log_file_name
102
+
88
103
  @default_hash['PlatformId'] = @platform_id if @platform_id
89
104
  end
90
105
 
@@ -115,19 +130,20 @@ module AmazonPay
115
130
  # @optional merchant_id [String]
116
131
  # @optional mws_auth_token [String]
117
132
  def create_order_reference_for_id(
118
- id,
119
- id_type,
120
- inherit_shipping_address: nil,
121
- confirm_now: nil,
122
- amount: nil,
123
- currency_code: @currency_code,
124
- platform_id: nil,
125
- seller_note: nil,
126
- seller_order_id: nil,
127
- store_name: nil,
128
- custom_information: nil,
129
- merchant_id: @merchant_id,
130
- mws_auth_token: nil)
133
+ id,
134
+ id_type,
135
+ inherit_shipping_address: nil,
136
+ confirm_now: nil,
137
+ amount: nil,
138
+ currency_code: @currency_code,
139
+ platform_id: nil,
140
+ seller_note: nil,
141
+ seller_order_id: nil,
142
+ store_name: nil,
143
+ custom_information: nil,
144
+ merchant_id: @merchant_id,
145
+ mws_auth_token: nil
146
+ )
131
147
 
132
148
  parameters = {
133
149
  'Action' => 'CreateOrderReferenceForId',
@@ -159,10 +175,11 @@ module AmazonPay
159
175
  # @optional merchant_id [String]
160
176
  # @optional mws_auth_token [String]
161
177
  def get_billing_agreement_details(
162
- amazon_billing_agreement_id,
163
- address_consent_token: nil,
164
- merchant_id: @merchant_id,
165
- mws_auth_token: nil)
178
+ amazon_billing_agreement_id,
179
+ address_consent_token: nil,
180
+ merchant_id: @merchant_id,
181
+ mws_auth_token: nil
182
+ )
166
183
 
167
184
  parameters = {
168
185
  'Action' => 'GetBillingAgreementDetails',
@@ -190,14 +207,15 @@ module AmazonPay
190
207
  # @optional merchant_id [String]
191
208
  # @optional mws_auth_token [String]
192
209
  def set_billing_agreement_details(
193
- amazon_billing_agreement_id,
194
- platform_id: nil,
195
- seller_note: nil,
196
- seller_billing_agreement_id: nil,
197
- custom_information: nil,
198
- store_name: nil,
199
- merchant_id: @merchant_id,
200
- mws_auth_token: nil)
210
+ amazon_billing_agreement_id,
211
+ platform_id: nil,
212
+ seller_note: nil,
213
+ seller_billing_agreement_id: nil,
214
+ custom_information: nil,
215
+ store_name: nil,
216
+ merchant_id: @merchant_id,
217
+ mws_auth_token: nil
218
+ )
201
219
 
202
220
  parameters = {
203
221
  'Action' => 'SetBillingAgreementDetails',
@@ -224,9 +242,10 @@ module AmazonPay
224
242
  # @optional merchant_id [String]
225
243
  # @optional mws_auth_token [String]
226
244
  def confirm_billing_agreement(
227
- amazon_billing_agreement_id,
228
- merchant_id: @merchant_id,
229
- mws_auth_token: nil)
245
+ amazon_billing_agreement_id,
246
+ merchant_id: @merchant_id,
247
+ mws_auth_token: nil
248
+ )
230
249
 
231
250
  parameters = {
232
251
  'Action' => 'ConfirmBillingAgreement',
@@ -248,9 +267,10 @@ module AmazonPay
248
267
  # @optional merchant_id [String]
249
268
  # @optional mws_auth_token [String]
250
269
  def validate_billing_agreement(
251
- amazon_billing_agreement_id,
252
- merchant_id: @merchant_id,
253
- mws_auth_token: nil)
270
+ amazon_billing_agreement_id,
271
+ merchant_id: @merchant_id,
272
+ mws_auth_token: nil
273
+ )
254
274
 
255
275
  parameters = {
256
276
  'Action' => 'ValidateBillingAgreement',
@@ -285,22 +305,23 @@ module AmazonPay
285
305
  # @optional merchant_id [String]
286
306
  # @optional mws_auth_token [String]
287
307
  def authorize_on_billing_agreement(
288
- amazon_billing_agreement_id,
289
- authorization_reference_id,
290
- amount,
291
- currency_code: @currency_code,
292
- seller_authorization_note: nil,
293
- transaction_timeout: nil,
294
- capture_now: false,
295
- soft_descriptor: nil,
296
- seller_note: nil,
297
- platform_id: nil,
298
- custom_information: nil,
299
- seller_order_id: nil,
300
- store_name: nil,
301
- inherit_shipping_address: nil,
302
- merchant_id: @merchant_id,
303
- mws_auth_token: nil)
308
+ amazon_billing_agreement_id,
309
+ authorization_reference_id,
310
+ amount,
311
+ currency_code: @currency_code,
312
+ seller_authorization_note: nil,
313
+ transaction_timeout: nil,
314
+ capture_now: false,
315
+ soft_descriptor: nil,
316
+ seller_note: nil,
317
+ platform_id: nil,
318
+ custom_information: nil,
319
+ seller_order_id: nil,
320
+ store_name: nil,
321
+ inherit_shipping_address: nil,
322
+ merchant_id: @merchant_id,
323
+ mws_auth_token: nil
324
+ )
304
325
 
305
326
  parameters = {
306
327
  'Action' => 'AuthorizeOnBillingAgreement',
@@ -337,10 +358,11 @@ module AmazonPay
337
358
  # @optional merchant_id [String]
338
359
  # @optional mws_auth_token [String]
339
360
  def close_billing_agreement(
340
- amazon_billing_agreement_id,
341
- closure_reason: nil,
342
- merchant_id: @merchant_id,
343
- mws_auth_token: nil)
361
+ amazon_billing_agreement_id,
362
+ closure_reason: nil,
363
+ merchant_id: @merchant_id,
364
+ mws_auth_token: nil
365
+ )
344
366
 
345
367
  parameters = {
346
368
  'Action' => 'CloseBillingAgreement',
@@ -363,10 +385,11 @@ module AmazonPay
363
385
  # @optional merchant_id [String]
364
386
  # @optional mws_auth_token [String]
365
387
  def get_order_reference_details(
366
- amazon_order_reference_id,
367
- address_consent_token: nil,
368
- merchant_id: @merchant_id,
369
- mws_auth_token: nil)
388
+ amazon_order_reference_id,
389
+ address_consent_token: nil,
390
+ merchant_id: @merchant_id,
391
+ mws_auth_token: nil
392
+ )
370
393
 
371
394
  parameters = {
372
395
  'Action' => 'GetOrderReferenceDetails',
@@ -391,21 +414,26 @@ module AmazonPay
391
414
  # @optional platform_id [String]
392
415
  # @optional seller_note [String]
393
416
  # @optional seller_order_id [String]
417
+ # @optional request_payment_authorization [Boolean]
394
418
  # @optional store_name [String]
419
+ # @optional order_item_categories Array[String]
395
420
  # @optional custom_information [String]
396
421
  # @optional merchant_id [String]
397
422
  # @optional mws_auth_token [String]
398
423
  def set_order_reference_details(
399
- amazon_order_reference_id,
400
- amount,
401
- currency_code: @currency_code,
402
- platform_id: nil,
403
- seller_note: nil,
404
- seller_order_id: nil,
405
- store_name: nil,
406
- custom_information: nil,
407
- merchant_id: @merchant_id,
408
- mws_auth_token: nil)
424
+ amazon_order_reference_id,
425
+ amount,
426
+ currency_code: @currency_code,
427
+ platform_id: nil,
428
+ seller_note: nil,
429
+ seller_order_id: nil,
430
+ request_payment_authorization: nil,
431
+ store_name: nil,
432
+ order_item_categories: nil,
433
+ custom_information: nil,
434
+ merchant_id: @merchant_id,
435
+ mws_auth_token: nil
436
+ )
409
437
 
410
438
  parameters = {
411
439
  'Action' => 'SetOrderReferenceDetails',
@@ -417,6 +445,7 @@ module AmazonPay
417
445
 
418
446
  optional = {
419
447
  'OrderReferenceAttributes.PlatformId' => platform_id,
448
+ 'OrderReferenceAttributes.RequestPaymentAuthorization' => request_payment_authorization,
420
449
  'OrderReferenceAttributes.SellerNote' => seller_note,
421
450
  'OrderReferenceAttributes.SellerOrderAttributes.SellerOrderId' => seller_order_id,
422
451
  'OrderReferenceAttributes.SellerOrderAttributes.StoreName' => store_name,
@@ -424,6 +453,79 @@ module AmazonPay
424
453
  'MWSAuthToken' => mws_auth_token
425
454
  }
426
455
 
456
+ if order_item_categories
457
+ optional.merge!(
458
+ get_categories_list(
459
+ 'OrderReferenceAttributes',
460
+ order_item_categories
461
+ )
462
+ )
463
+ end
464
+
465
+ operation(parameters, optional)
466
+ end
467
+
468
+ # Sets order attributes such as the order total and a description
469
+ # for the order
470
+ # @see https://pay.amazon.com/documentation/apireference/201751630#201751960
471
+ # @param amazon_order_reference_id [String]
472
+ # @optional amount [String]
473
+ # @optional currency_code [String]
474
+ # @optional platform_id [String]
475
+ # @optional seller_note [String]
476
+ # @optional seller_order_id [String]
477
+ # @optional request_payment_authorization [Boolean]
478
+ # @optional store_name [String]
479
+ # @optional order_item_categories Array[String]
480
+ # @optional custom_information [String]
481
+ # @optional merchant_id [String]
482
+ # @optional mws_auth_token [String]
483
+ def set_order_attributes(
484
+ amazon_order_reference_id,
485
+ amount: nil,
486
+ currency_code: nil,
487
+ platform_id: nil,
488
+ seller_note: nil,
489
+ seller_order_id: nil,
490
+ payment_service_provider_id: nil,
491
+ payment_service_provider_order_id: nil,
492
+ request_payment_authorization: nil,
493
+ store_name: nil,
494
+ order_item_categories: nil,
495
+ custom_information: nil,
496
+ merchant_id: @merchant_id,
497
+ mws_auth_token: nil
498
+ )
499
+
500
+ parameters = {
501
+ 'Action' => 'SetOrderAttributes',
502
+ 'SellerId' => merchant_id,
503
+ 'AmazonOrderReferenceId' => amazon_order_reference_id
504
+ }
505
+
506
+ optional = {
507
+ 'OrderAttributes.OrderTotal.Amount' => amount,
508
+ 'OrderAttributes.OrderTotal.CurrencyCode' => currency_code,
509
+ 'OrderAttributes.PlatformId' => platform_id,
510
+ 'OrderAttributes.SellerNote' => seller_note,
511
+ 'OrderAttributes.SellerOrderAttributes.SellerOrderId' => seller_order_id,
512
+ 'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderId' => payment_service_provider_id,
513
+ 'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderOrderId' => payment_service_provider_order_id,
514
+ 'OrderAttributes.RequestPaymentAuthorization' => request_payment_authorization,
515
+ 'OrderAttributes.SellerOrderAttributes.StoreName' => store_name,
516
+ 'OrderAttributes.SellerOrderAttributes.CustomInformation' => custom_information,
517
+ 'MWSAuthToken' => mws_auth_token
518
+ }
519
+
520
+ if order_item_categories
521
+ optional.merge!(
522
+ get_categories_list(
523
+ 'OrderAttributes',
524
+ order_item_categories
525
+ )
526
+ )
527
+ end
528
+
427
529
  operation(parameters, optional)
428
530
  end
429
531
 
@@ -434,9 +536,10 @@ module AmazonPay
434
536
  # @optional merchant_id [String]
435
537
  # @optional mws_auth_token [String]
436
538
  def confirm_order_reference(
437
- amazon_order_reference_id,
438
- merchant_id: @merchant_id,
439
- mws_auth_token: nil)
539
+ amazon_order_reference_id,
540
+ merchant_id: @merchant_id,
541
+ mws_auth_token: nil
542
+ )
440
543
 
441
544
  parameters = {
442
545
  'Action' => 'ConfirmOrderReference',
@@ -458,10 +561,11 @@ module AmazonPay
458
561
  # @optional merchant_id [String]
459
562
  # @optional mws_auth_token [String]
460
563
  def cancel_order_reference(
461
- amazon_order_reference_id,
462
- cancelation_reason: nil,
463
- merchant_id: @merchant_id,
464
- mws_auth_token: nil)
564
+ amazon_order_reference_id,
565
+ cancelation_reason: nil,
566
+ merchant_id: @merchant_id,
567
+ mws_auth_token: nil
568
+ )
465
569
 
466
570
  parameters = {
467
571
  'Action' => 'CancelOrderReference',
@@ -492,17 +596,18 @@ module AmazonPay
492
596
  # @optional merchant_id [String]
493
597
  # @optional mws_auth_token [String]
494
598
  def authorize(
495
- amazon_order_reference_id,
496
- authorization_reference_id,
497
- amount,
498
- currency_code: @currency_code,
499
- seller_authorization_note: nil,
500
- transaction_timeout: nil,
501
- capture_now: nil,
502
- soft_descriptor: nil,
503
- provider_credit_details: nil,
504
- merchant_id: @merchant_id,
505
- mws_auth_token: nil)
599
+ amazon_order_reference_id,
600
+ authorization_reference_id,
601
+ amount,
602
+ currency_code: @currency_code,
603
+ seller_authorization_note: nil,
604
+ transaction_timeout: nil,
605
+ capture_now: nil,
606
+ soft_descriptor: nil,
607
+ provider_credit_details: nil,
608
+ merchant_id: @merchant_id,
609
+ mws_auth_token: nil
610
+ )
506
611
 
507
612
  parameters = {
508
613
  'Action' => 'Authorize',
@@ -533,9 +638,10 @@ module AmazonPay
533
638
  # @optional merchant_id [String]
534
639
  # @optional mws_auth_token [String]
535
640
  def get_authorization_details(
536
- amazon_authorization_id,
537
- merchant_id: @merchant_id,
538
- mws_auth_token: nil)
641
+ amazon_authorization_id,
642
+ merchant_id: @merchant_id,
643
+ mws_auth_token: nil
644
+ )
539
645
 
540
646
  parameters = {
541
647
  'Action' => 'GetAuthorizationDetails',
@@ -562,15 +668,16 @@ module AmazonPay
562
668
  # @optional merchant_id [String]
563
669
  # @optional mws_auth_token [String]
564
670
  def capture(
565
- amazon_authorization_id,
566
- capture_reference_id,
567
- amount,
568
- currency_code: @currency_code,
569
- seller_capture_note: nil,
570
- soft_descriptor: nil,
571
- provider_credit_details: nil,
572
- merchant_id: @merchant_id,
573
- mws_auth_token: nil)
671
+ amazon_authorization_id,
672
+ capture_reference_id,
673
+ amount,
674
+ currency_code: @currency_code,
675
+ seller_capture_note: nil,
676
+ soft_descriptor: nil,
677
+ provider_credit_details: nil,
678
+ merchant_id: @merchant_id,
679
+ mws_auth_token: nil
680
+ )
574
681
 
575
682
  parameters = {
576
683
  'Action' => 'Capture',
@@ -599,9 +706,10 @@ module AmazonPay
599
706
  # @optional merchant_id [String]
600
707
  # @optional mws_auth_token [String]
601
708
  def get_capture_details(
602
- amazon_capture_id,
603
- merchant_id: @merchant_id,
604
- mws_auth_token: nil)
709
+ amazon_capture_id,
710
+ merchant_id: @merchant_id,
711
+ mws_auth_token: nil
712
+ )
605
713
 
606
714
  parameters = {
607
715
  'Action' => 'GetCaptureDetails',
@@ -628,15 +736,16 @@ module AmazonPay
628
736
  # @optional merchant_id [String]
629
737
  # @optional mws_auth_token [String]
630
738
  def refund(
631
- amazon_capture_id,
632
- refund_reference_id,
633
- amount,
634
- currency_code: @currency_code,
635
- seller_refund_note: nil,
636
- soft_descriptor: nil,
637
- provider_credit_reversal_details: nil,
638
- merchant_id: @merchant_id,
639
- mws_auth_token: nil)
739
+ amazon_capture_id,
740
+ refund_reference_id,
741
+ amount,
742
+ currency_code: @currency_code,
743
+ seller_refund_note: nil,
744
+ soft_descriptor: nil,
745
+ provider_credit_reversal_details: nil,
746
+ merchant_id: @merchant_id,
747
+ mws_auth_token: nil
748
+ )
640
749
 
641
750
  parameters = {
642
751
  'Action' => 'Refund',
@@ -664,9 +773,10 @@ module AmazonPay
664
773
  # @optional merchant_id [String]
665
774
  # @optional mws_auth_token [String]
666
775
  def get_refund_details(
667
- amazon_refund_id,
668
- merchant_id: @merchant_id,
669
- mws_auth_token: nil)
776
+ amazon_refund_id,
777
+ merchant_id: @merchant_id,
778
+ mws_auth_token: nil
779
+ )
670
780
 
671
781
  parameters = {
672
782
  'Action' => 'GetRefundDetails',
@@ -688,10 +798,11 @@ module AmazonPay
688
798
  # @optional merchant_id [String]
689
799
  # @optional mws_auth_token [String]
690
800
  def close_authorization(
691
- amazon_authorization_id,
692
- closure_reason: nil,
693
- merchant_id: @merchant_id,
694
- mws_auth_token: nil)
801
+ amazon_authorization_id,
802
+ closure_reason: nil,
803
+ merchant_id: @merchant_id,
804
+ mws_auth_token: nil
805
+ )
695
806
 
696
807
  parameters = {
697
808
  'Action' => 'CloseAuthorization',
@@ -716,10 +827,11 @@ module AmazonPay
716
827
  # @optional merchant_id [String]
717
828
  # @optional mws_auth_token [String]
718
829
  def close_order_reference(
719
- amazon_order_reference_id,
720
- closure_reason: nil,
721
- merchant_id: @merchant_id,
722
- mws_auth_token: nil)
830
+ amazon_order_reference_id,
831
+ closure_reason: nil,
832
+ merchant_id: @merchant_id,
833
+ mws_auth_token: nil
834
+ )
723
835
 
724
836
  parameters = {
725
837
  'Action' => 'CloseOrderReference',
@@ -739,42 +851,44 @@ module AmazonPay
739
851
  # @optional merchant_id [String]
740
852
  # @optional mws_auth_token [String]
741
853
  def get_provider_credit_details(
742
- amazon_provider_credit_id,
743
- merchant_id: @merchant_id,
744
- mws_auth_token: nil)
854
+ amazon_provider_credit_id,
855
+ merchant_id: @merchant_id,
856
+ mws_auth_token: nil
857
+ )
745
858
 
746
- parameters = {
747
- 'Action' => 'GetProviderCreditDetails',
748
- 'SellerId' => merchant_id,
749
- 'AmazonProviderCreditId' => amazon_provider_credit_id
750
- }
859
+ parameters = {
860
+ 'Action' => 'GetProviderCreditDetails',
861
+ 'SellerId' => merchant_id,
862
+ 'AmazonProviderCreditId' => amazon_provider_credit_id
863
+ }
751
864
 
752
- optional = {
753
- 'MWSAuthToken' => mws_auth_token
754
- }
865
+ optional = {
866
+ 'MWSAuthToken' => mws_auth_token
867
+ }
755
868
 
756
- operation(parameters, optional)
869
+ operation(parameters, optional)
757
870
  end
758
871
 
759
872
  # @param amazon_provider_credit_reversal_id [String]
760
873
  # @optional merchant_id [String]
761
874
  # @optional mws_auth_token [String]
762
875
  def get_provider_credit_reversal_details(
763
- amazon_provider_credit_reversal_id,
764
- merchant_id: @merchant_id,
765
- mws_auth_token: nil)
876
+ amazon_provider_credit_reversal_id,
877
+ merchant_id: @merchant_id,
878
+ mws_auth_token: nil
879
+ )
766
880
 
767
- parameters = {
768
- 'Action' => 'GetProviderCreditReversalDetails',
769
- 'SellerId' => merchant_id,
770
- 'AmazonProviderCreditReversalId' => amazon_provider_credit_reversal_id
771
- }
881
+ parameters = {
882
+ 'Action' => 'GetProviderCreditReversalDetails',
883
+ 'SellerId' => merchant_id,
884
+ 'AmazonProviderCreditReversalId' => amazon_provider_credit_reversal_id
885
+ }
772
886
 
773
- optional = {
774
- 'MWSAuthToken' => mws_auth_token
775
- }
887
+ optional = {
888
+ 'MWSAuthToken' => mws_auth_token
889
+ }
776
890
 
777
- operation(parameters, optional)
891
+ operation(parameters, optional)
778
892
  end
779
893
 
780
894
  # @param amazon_provider_credit_id [String]
@@ -785,13 +899,14 @@ module AmazonPay
785
899
  # @optional merchant_id [String]
786
900
  # @optional mws_auth_token [String]
787
901
  def reverse_provider_credit(
788
- amazon_provider_credit_id,
789
- credit_reversal_reference_id,
790
- amount,
791
- currency_code: @currency_code,
792
- credit_reversal_note: nil,
793
- merchant_id: @merchant_id,
794
- mws_auth_token: nil)
902
+ amazon_provider_credit_id,
903
+ credit_reversal_reference_id,
904
+ amount,
905
+ currency_code: @currency_code,
906
+ credit_reversal_note: nil,
907
+ merchant_id: @merchant_id,
908
+ mws_auth_token: nil
909
+ )
795
910
 
796
911
  parameters = {
797
912
  'Action' => 'ReverseProviderCredit',
@@ -814,12 +929,12 @@ module AmazonPay
814
929
 
815
930
  def region_hash
816
931
  {
817
- :jp => 'mws.amazonservices.jp',
818
- :uk => 'mws-eu.amazonservices.com',
819
- :de => 'mws-eu.amazonservices.com',
820
- :eu => 'mws-eu.amazonservices.com',
821
- :us => 'mws.amazonservices.com',
822
- :na => 'mws.amazonservices.com'
932
+ jp: 'mws.amazonservices.jp',
933
+ uk: 'mws-eu.amazonservices.com',
934
+ de: 'mws-eu.amazonservices.com',
935
+ eu: 'mws-eu.amazonservices.com',
936
+ us: 'mws.amazonservices.com',
937
+ na: 'mws.amazonservices.com'
823
938
  }
824
939
  end
825
940
 
@@ -828,14 +943,14 @@ module AmazonPay
828
943
  # API call.
829
944
  def set_provider_credit_details(provider_credit_details)
830
945
  member_details = {}
831
- provider_credit_details.each_with_index { |val, index|
946
+ provider_credit_details.each_with_index do |val, index|
832
947
  member = index + 1
833
948
  member_details["ProviderCreditList.member.#{member}.ProviderId"] = val[:provider_id]
834
949
  member_details["ProviderCreditList.member.#{member}.CreditAmount.Amount"] = val[:amount]
835
950
  member_details["ProviderCreditList.member.#{member}.CreditAmount.CurrencyCode"] = val[:currency_code]
836
- }
951
+ end
837
952
 
838
- return member_details
953
+ member_details
839
954
  end
840
955
 
841
956
  # This method builds the provider credit reversal
@@ -843,33 +958,45 @@ module AmazonPay
843
958
  # API call.
844
959
  def set_provider_credit_reversal_details(provider_credit_reversal_details)
845
960
  member_details = {}
846
- provider_credit_reversal_details.each_with_index { |val, index|
961
+ provider_credit_reversal_details.each_with_index do |val, index|
847
962
  member = index + 1
848
963
  member_details["ProviderCreditReversalList.member.#{member}.ProviderId"] = val[:provider_id]
849
964
  member_details["ProviderCreditReversalList.member.#{member}.CreditReversalAmount.Amount"] = val[:amount]
850
965
  member_details["ProviderCreditReversalList.member.#{member}.CreditReversalAmount.CurrencyCode"] = val[:currency_code]
851
- }
966
+ end
852
967
 
853
- return member_details
968
+ member_details
969
+ end
970
+
971
+ def get_categories_list(attribute_key, categories)
972
+ list = {}
973
+
974
+ categories.each_with_index do |val, index|
975
+ list.merge!({"#{attribute_key}.SellerOrderAttributes.OrderItemCategories.OrderItemCategory.#{index + 1}" => val})
976
+ end
977
+
978
+ list
854
979
  end
855
980
 
856
981
  def operation(parameters, optional)
857
982
  AmazonPay::Request.new(
858
- parameters,
859
- optional,
860
- @default_hash,
861
- @mws_endpoint,
862
- @sandbox_str,
863
- @secret_key,
864
- @proxy_addr,
865
- @proxy_port,
866
- @proxy_user,
867
- @proxy_pass,
868
- @throttle,
869
- @application_name,
870
- @application_version).send_post
983
+ parameters,
984
+ optional,
985
+ @default_hash,
986
+ @mws_endpoint,
987
+ @sandbox_str,
988
+ @secret_key,
989
+ @proxy_addr,
990
+ @proxy_port,
991
+ @proxy_user,
992
+ @proxy_pass,
993
+ @throttle,
994
+ @application_name,
995
+ @application_version,
996
+ @log_enabled,
997
+ @log_file_name,
998
+ @log_level
999
+ ).send_post
871
1000
  end
872
-
873
1001
  end
874
-
875
1002
  end
@@ -67,6 +67,48 @@ module AmazonPay
67
67
  end
68
68
  end
69
69
 
70
+ # Modify order attributes such as CustomInformation
71
+ # for the order
72
+ # This is a convenience function for set_order_attributes to prevent accidentally passing
73
+ # extra variables that can't be modified ater Amazon Order Reference (ORO) is confirmed.
74
+ # @see https://pay.amazon.com/documentation/apireference/201751630#201751960
75
+ # @param amazon_order_reference_id [String]
76
+ # @optional request_payment_authorization [Boolean]
77
+ # @optional seller_note [String]
78
+ # @optional seller_order_id [String]
79
+ # @optional store_name [String]
80
+ # @optional custom_information [String]
81
+ # @optional merchant_id [String]
82
+ # @optional mws_auth_token [String]
83
+ def modify_order_attributes(
84
+ amazon_order_reference_id,
85
+ seller_note: nil,
86
+ seller_order_id: nil,
87
+ payment_service_provider_id: nil,
88
+ payment_service_provider_order_id: nil,
89
+ request_payment_authorization: nil,
90
+ store_name: nil,
91
+ custom_information: nil,
92
+ merchant_id: @merchant_id,
93
+ mws_auth_token: nil
94
+ )
95
+
96
+ set_order_attributes(amazon_order_reference_id,
97
+ # amount:(This value can't be modified after order is confirmed so it isn't passed to set_order_attributes)
98
+ # currency_code:(This value can't be modified after order is confirmed so it isn't passed to set_order_attributes)
99
+ # platform_id:(This value can't be modified after order is confirmed so it isn't passed to set_order_attributes)
100
+ seller_note: seller_note,
101
+ seller_order_id: seller_order_id,
102
+ payment_service_provider_id: payment_service_provider_id,
103
+ payment_service_provider_order_id: payment_service_provider_order_id,
104
+ request_payment_authorization: request_payment_authorization,
105
+ store_name: store_name,
106
+ # order_item_categories:(This value can't be modified after order is confirmed so it isn't passed to set_order_attributes)
107
+ custom_information: custom_information,
108
+ merchant_id: merchant_id,
109
+ mws_auth_token: mws_auth_token)
110
+ end
111
+
70
112
  private
71
113
 
72
114
  def call_order_reference_api(
@@ -4,9 +4,10 @@ require 'net/http'
4
4
  require 'net/https'
5
5
  require 'openssl'
6
6
  require 'uri'
7
+ require 'logger'
8
+ require 'stringio'
7
9
 
8
10
  module AmazonPay
9
-
10
11
  class IpnWasNotAuthenticError < StandardError
11
12
  end
12
13
 
@@ -17,19 +18,26 @@ module AmazonPay
17
18
  # there are many helper methods in place to extract information received
18
19
  # from the ipn notification.
19
20
  class IpnHandler
20
-
21
- SIGNABLE_KEYS = [
22
- 'Message',
23
- 'MessageId',
24
- 'Timestamp',
25
- 'TopicArn',
26
- 'Type',
21
+ SIGNABLE_KEYS = %w[
22
+ Message
23
+ MessageId
24
+ Timestamp
25
+ TopicArn
26
+ Type
27
27
  ].freeze
28
28
 
29
- COMMON_NAME = 'sns.amazonaws.com'
29
+ COMMON_NAME = 'sns.amazonaws.com'.freeze
30
30
 
31
- attr_reader(:headers, :body)
32
- attr_accessor(:proxy_addr, :proxy_port, :proxy_user, :proxy_pass)
31
+ attr_reader(
32
+ :headers,
33
+ :body
34
+ )
35
+ attr_accessor(
36
+ :proxy_addr,
37
+ :proxy_port,
38
+ :proxy_user,
39
+ :proxy_pass
40
+ )
33
41
 
34
42
  # @param headers [request.headers]
35
43
  # @param body [request.body.read]
@@ -38,12 +46,16 @@ module AmazonPay
38
46
  # @optional proxy_user [String]
39
47
  # @optional proxy_pass [String]
40
48
  def initialize(
41
- headers,
42
- body,
43
- proxy_addr: :ENV,
44
- proxy_port: nil,
45
- proxy_user: nil,
46
- proxy_pass: nil)
49
+ headers,
50
+ body,
51
+ proxy_addr: :ENV,
52
+ proxy_port: nil,
53
+ proxy_user: nil,
54
+ proxy_pass: nil,
55
+ log_enabled: false,
56
+ log_file_name: nil,
57
+ log_level: :DEBUG
58
+ )
47
59
 
48
60
  @body = body
49
61
  @raw = parse_from(@body)
@@ -52,23 +64,30 @@ module AmazonPay
52
64
  @proxy_port = proxy_port
53
65
  @proxy_user = proxy_user
54
66
  @proxy_pass = proxy_pass
67
+
68
+ @log_enabled = log_enabled
69
+ if @log_enabled
70
+ log_set = AmazonPay::LogInitializer.new(
71
+ log_file_name,
72
+ log_level
73
+ )
74
+ @logger = log_set.create_logger
75
+ end
55
76
  end
56
77
 
57
78
  # This method will authenticate the ipn message sent from Amazon.
58
79
  # It will return true if everything is verified. It will raise an
59
80
  # error message if verification fails.
60
81
  def authentic?
61
- begin
62
- decoded_from_base64 = Base64.decode64(signature)
63
- validate_header
64
- validate_subject(get_certificate.subject)
65
- public_key = get_public_key_from(get_certificate)
66
- verify_public_key(public_key, decoded_from_base64, canonical_string)
67
-
68
- return true
69
- rescue IpnWasNotAuthenticError => e
70
- raise e.message
71
- end
82
+ decoded_from_base64 = Base64.decode64(signature)
83
+ validate_header
84
+ validate_subject(get_certificate.subject)
85
+ public_key = get_public_key_from(get_certificate)
86
+ verify_public_key(public_key, decoded_from_base64, canonical_string)
87
+
88
+ return true
89
+ rescue IpnWasNotAuthenticError => e
90
+ raise e.message
72
91
  end
73
92
 
74
93
  def type
@@ -108,27 +127,27 @@ module AmazonPay
108
127
  end
109
128
 
110
129
  def notification_type
111
- parse_from(@raw['Message'])["NotificationType"]
130
+ parse_from(@raw['Message'])['NotificationType']
112
131
  end
113
132
 
114
133
  def seller_id
115
- parse_from(@raw['Message'])["SellerId"]
134
+ parse_from(@raw['Message'])['SellerId']
116
135
  end
117
136
 
118
137
  def environment
119
- parse_from(@raw['Message'])["ReleaseEnvironment"]
138
+ parse_from(@raw['Message'])['ReleaseEnvironment']
120
139
  end
121
140
 
122
141
  def version
123
- parse_from(@raw['Message'])["Version"]
142
+ parse_from(@raw['Message'])['Version']
124
143
  end
125
144
 
126
145
  def notification_data
127
- parse_from(@raw['Message'])["NotificationData"]
146
+ parse_from(@raw['Message'])['NotificationData']
128
147
  end
129
148
 
130
149
  def message_timestamp
131
- parse_from(@raw['Message'])["Timestamp"]
150
+ parse_from(@raw['Message'])['Timestamp']
132
151
  end
133
152
 
134
153
  def parse_from(json)
@@ -150,7 +169,7 @@ module AmazonPay
150
169
  text = ''
151
170
  SIGNABLE_KEYS.each do |key|
152
171
  value = @raw[key]
153
- next if value.nil? or value.empty?
172
+ next if value.nil? || value.empty?
154
173
  text << key << "\n"
155
174
  text << value << "\n"
156
175
  end
@@ -170,8 +189,12 @@ module AmazonPay
170
189
  tries = 0
171
190
  begin
172
191
  resp = https_get(url)
192
+ if @log_enabled
193
+ data = AmazonPay::Sanitize.new(resp.body)
194
+ @logger.debug(data.sanitize_response_data)
195
+ end
173
196
  resp.body
174
- rescue => error
197
+ rescue StandardError => error
175
198
  tries += 1
176
199
  retry if tries < 3
177
200
  raise error
@@ -193,7 +216,7 @@ module AmazonPay
193
216
  unless
194
217
  @headers['x-amz-sns-message-type'] == 'Notification'
195
218
  then
196
- msg = "Error - Header does not contain x-amz-sns-message-type header"
219
+ msg = 'Error - Header does not contain x-amz-sns-message-type header'
197
220
  raise IpnWasNotAuthenticError, msg
198
221
  end
199
222
  end
@@ -203,7 +226,7 @@ module AmazonPay
203
226
  unless
204
227
  subject[4][1] == COMMON_NAME
205
228
  then
206
- msg = "Error - Unable to verify certificate subject issued by Amazon"
229
+ msg = 'Error - Unable to verify certificate subject issued by Amazon'
207
230
  raise IpnWasNotAuthenticError, msg
208
231
  end
209
232
  end
@@ -212,11 +235,9 @@ module AmazonPay
212
235
  unless
213
236
  public_key.verify(OpenSSL::Digest::SHA1.new, decoded_signature, signed_string)
214
237
  then
215
- msg = "Error - Unable to verify public key with signature and signed string"
238
+ msg = 'Error - Unable to verify public key with signature and signed string'
216
239
  raise IpnWasNotAuthenticError, msg
217
240
  end
218
241
  end
219
-
220
242
  end
221
-
222
243
  end
@@ -0,0 +1,47 @@
1
+ require 'logger'
2
+ require 'stringio'
3
+
4
+ module AmazonPay
5
+ # This class creates the logger to use.
6
+ class LogInitializer
7
+ def initialize(
8
+ log_file_name,
9
+ log_level
10
+ )
11
+
12
+ @log_level_set = log_hash[log_level.upcase]
13
+ @log_file_name = log_file_name
14
+ end
15
+
16
+ def create_logger
17
+ @logger = if @log_file_name
18
+ Logger.new(@log_file_name)
19
+ else
20
+ Logger.new(STDOUT)
21
+ end
22
+
23
+ @logger.level = @log_level_set
24
+ # a simple formatter
25
+ @logger.datetime_format = '%Y-%m-%d %H:%M:%S'
26
+ # e.g. "2004-01-03 00:54:26"
27
+ @logger.formatter = proc do |_severity, datetime, progname, msg|
28
+ %({time: "#{datetime}\n", message: "#{msg} from #{progname}"}\n)
29
+ end
30
+
31
+ @logger
32
+ end
33
+
34
+ private
35
+
36
+ def log_hash
37
+ {
38
+ UNKNOWN: Logger::UNKNOWN,
39
+ FATAL: Logger::FATAL,
40
+ ERROR: Logger::ERROR,
41
+ WARN: Logger::WARN,
42
+ INFO: Logger::INFO,
43
+ DEBUG: Logger::DEBUG
44
+ }
45
+ end
46
+ end
47
+ end
File without changes
@@ -3,29 +3,33 @@ require 'net/http'
3
3
  require 'net/https'
4
4
  require 'base64'
5
5
  require 'openssl'
6
+ require 'logger'
7
+ require 'stringio'
6
8
 
7
9
  module AmazonPay
8
-
9
10
  # This class creates the request to send to the
10
11
  # specified MWS endpoint.
11
12
  class Request
12
-
13
13
  MAX_RETRIES = 3
14
14
 
15
15
  def initialize(
16
- parameters,
17
- optional,
18
- default_hash,
19
- mws_endpoint,
20
- sandbox_str,
21
- secret_key,
22
- proxy_addr,
23
- proxy_port,
24
- proxy_user,
25
- proxy_pass,
26
- throttle,
27
- application_name,
28
- application_version)
16
+ parameters,
17
+ optional,
18
+ default_hash,
19
+ mws_endpoint,
20
+ sandbox_str,
21
+ secret_key,
22
+ proxy_addr,
23
+ proxy_port,
24
+ proxy_user,
25
+ proxy_pass,
26
+ throttle,
27
+ application_name,
28
+ application_version,
29
+ log_enabled,
30
+ log_file_name,
31
+ log_level
32
+ )
29
33
 
30
34
  @parameters = parameters
31
35
  @optional = optional
@@ -33,6 +37,7 @@ module AmazonPay
33
37
  @mws_endpoint = mws_endpoint
34
38
  @sandbox_str = sandbox_str
35
39
  @secret_key = secret_key
40
+ @log_enabled = log_enabled
36
41
  @proxy_addr = proxy_addr
37
42
  @proxy_port = proxy_port
38
43
  @proxy_user = proxy_user
@@ -40,6 +45,14 @@ module AmazonPay
40
45
  @throttle = throttle
41
46
  @application_name = application_name
42
47
  @application_version = application_version
48
+
49
+ if @log_enabled
50
+ log_set = AmazonPay::LogInitializer.new(
51
+ log_file_name,
52
+ log_level
53
+ )
54
+ @logger = log_set.create_logger
55
+ end
43
56
  end
44
57
 
45
58
  # This method sends the post request.
@@ -56,10 +69,15 @@ module AmazonPay
56
69
  def build_post_url
57
70
  @optional.map { |k, v| @parameters[k] = v unless v.nil? }
58
71
  @parameters = @default_hash.merge(@parameters)
59
- post_url = @parameters.sort.map { |k, v| "#{k}=#{ custom_escape(v) }" }.join("&")
60
- post_body = ["POST", "#{@mws_endpoint}", "/#{@sandbox_str}/#{AmazonPay::API_VERSION}", post_url].join("\n")
61
- post_url += "&Signature=" + sign(post_body)
62
- return post_url
72
+ post_url = @parameters.sort.map { |k, v| "#{k}=#{custom_escape(v)}" }.join('&')
73
+ post_body = ['POST', @mws_endpoint.to_s, "/#{@sandbox_str}/#{AmazonPay::API_VERSION}", post_url].join("\n")
74
+ post_url += '&Signature=' + sign(post_body)
75
+ if @log_enabled
76
+ data = AmazonPay::Sanitize.new(post_url)
77
+ @logger.debug("request/Post: #{data.sanitize_request_data}")
78
+ end
79
+
80
+ post_url
63
81
  end
64
82
 
65
83
  # This method signs the post body that is being sent
@@ -76,12 +94,16 @@ module AmazonPay
76
94
  https = Net::HTTP.new(uri.host, uri.port, @proxy_addr, @proxy_port, @proxy_user, @proxy_pass)
77
95
  https.use_ssl = true
78
96
  https.verify_mode = OpenSSL::SSL::VERIFY_PEER
79
-
80
- user_agent = {"User-Agent" => "#{AmazonPay::SDK_NAME}/#{AmazonPay::VERSION}; (#{@application_name + '/' if @application_name }#{@application_version.to_s + ';' if @application_version} #{RUBY_VERSION}; #{RUBY_PLATFORM})"}
97
+
98
+ user_agent = { 'User-Agent' => "#{AmazonPay::SDK_NAME}/#{AmazonPay::VERSION}; (#{@application_name + '/' if @application_name}#{@application_version.to_s + ';' if @application_version} #{RUBY_VERSION}; #{RUBY_PLATFORM})" }
81
99
 
82
100
  tries = 0
83
101
  begin
84
102
  response = https.post(uri.path, post_url, user_agent)
103
+ if @log_enabled
104
+ data = AmazonPay::Sanitize.new(response.body)
105
+ @logger.debug("response: #{data.sanitize_response_data}")
106
+ end
85
107
  if @throttle.eql?(true)
86
108
  if response.code.eql?('500')
87
109
  raise 'InternalServerError'
@@ -90,7 +112,7 @@ module AmazonPay
90
112
  end
91
113
  end
92
114
  AmazonPay::Response.new(response)
93
- rescue => error
115
+ rescue StandardError => error
94
116
  tries += 1
95
117
  sleep(get_seconds_for_try_count(tries))
96
118
  retry if tries <= MAX_RETRIES
@@ -99,16 +121,14 @@ module AmazonPay
99
121
  end
100
122
 
101
123
  def get_seconds_for_try_count(try_count)
102
- seconds = { 1=>1, 2=>4, 3=>10, 4=>0 }
124
+ seconds = { 1 => 1, 2 => 4, 3 => 10, 4 => 0 }
103
125
  seconds[try_count]
104
126
  end
105
127
 
106
128
  def custom_escape(val)
107
129
  val.to_s.gsub(/([^\w.~-]+)/) do
108
- "%" + $1.unpack("H2" * $1.bytesize).join("%").upcase
130
+ '%' + Regexp.last_match(1).unpack('H2' * Regexp.last_match(1).bytesize).join('%').upcase
109
131
  end
110
132
  end
111
-
112
133
  end
113
-
114
134
  end
File without changes
@@ -0,0 +1,48 @@
1
+ module AmazonPay
2
+ class Sanitize
3
+ def initialize(input_data)
4
+ @copy = input_data ? input_data.dup : ''
5
+ end
6
+
7
+ def sanitize_request_data
8
+ # Array of item to remove
9
+
10
+ patterns = %w[
11
+ Buyer
12
+ PhysicalDestination
13
+ BillingAddress
14
+ AuthorizationBillingAddress
15
+ SellerNote
16
+ SellerAuthorizationNote
17
+ SellerCaptureNote
18
+ SellerRefundNote
19
+ ]
20
+
21
+ patterns.each do |s|
22
+ @copy.gsub!(/([?|&]#{s}=)[^\&]+/ms, s + '=*REMOVED*')
23
+ end
24
+
25
+ @copy
26
+ end
27
+
28
+ def sanitize_response_data
29
+ # Array of item to remove
30
+
31
+ patterns = []
32
+ patterns.push(/(?<=<Buyer>).*(?=<\/Buyer>)/s)
33
+ patterns.push(/(?<=<PhysicalDestination>).*(?=<\/PhysicalDestination>)/ms)
34
+ patterns.push(/(?<=<BillingAddress>).*(?=<\/BillingAddress>)/s)
35
+ patterns.push(/(?<=<SellerNote>).*(?=<\/SellerNote>)/s)
36
+ patterns.push(/(?<=<AuthorizationBillingAddress>).*(?=<\/AuthorizationBillingAddress>)/s)
37
+ patterns.push(/(?<=<SellerAuthorizationNote>).*(?=<\/SellerAuthorizationNote>)/s)
38
+ patterns.push(/(?<=<SellerCaptureNote>).*(?=<\/SellerCaptureNote>)/s)
39
+ patterns.push(/(?<=<SellerRefundNote>).*(?=<\/SellerRefundNote>)/s)
40
+
41
+ patterns.each do |s|
42
+ @copy.gsub!(s, '*REMOVED*')
43
+ end
44
+
45
+ @copy
46
+ end
47
+ end
48
+ end
@@ -1,5 +1,5 @@
1
1
  module AmazonPay
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  SDK_NAME = "amazon-pay-sdk-ruby"
4
4
  API_VERSION = "2013-01-01"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon_pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AmazonPay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2018-01-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: AmazonPay Ruby SDK
14
14
  email: amazon-pay-sdk@amazon.com
@@ -23,9 +23,11 @@ files:
23
23
  - lib/amazon_pay/client.rb
24
24
  - lib/amazon_pay/client_helper.rb
25
25
  - lib/amazon_pay/ipn_handler.rb
26
+ - lib/amazon_pay/log_initializer.rb
26
27
  - lib/amazon_pay/login.rb
27
28
  - lib/amazon_pay/request.rb
28
29
  - lib/amazon_pay/response.rb
30
+ - lib/amazon_pay/sanitize.rb
29
31
  - lib/amazon_pay/version.rb
30
32
  homepage: https://github.com/amzn/amazon-pay-sdk-ruby
31
33
  licenses:
@@ -47,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
49
  version: '0'
48
50
  requirements: []
49
51
  rubyforge_project:
50
- rubygems_version: 2.6.8
52
+ rubygems_version: 2.6.12
51
53
  signing_key:
52
54
  specification_version: 4
53
55
  summary: AmazonPay Ruby SDK