google4r-checkout 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,9 @@
1
1
  =google4r-checkout Changelog
2
2
 
3
+ == 1.1.2 (2012-05-31)
4
+
5
+ * Added support for donation processing, contributed by Paul Schreiber
6
+
3
7
  == 1.1.1 (2011-12-16)
4
8
 
5
9
  * Bug fix for subscriptions not being processed, contributed by Larry Salibra
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  google4r/checkout is a library to access the Google Checkout API.
4
4
 
5
+ It currently supports version 2.3 of the API and subscription beta API.
6
+
5
7
  ### License
6
8
 
7
9
  google4r itself is distributed under an MIT style license.
@@ -46,12 +46,16 @@ module Google4R #:nodoc:
46
46
  # is to be put in via String#%.
47
47
  PRODUCTION_URL_PREFIX = 'https://checkout.google.com/'
48
48
 
49
+ # Orders
49
50
  CHECKOUT_API_URL = 'api/checkout/v2/merchantCheckout/Merchant/%s'
50
-
51
51
  ORDER_PROCESSING_API_URL = 'api/checkout/v2/request/Merchant/%s'
52
-
53
52
  ORDER_REPORT_API_URL = 'api/checkout/v2/reports/Merchant/%s'
54
53
 
54
+ # Donations
55
+ DONATE_CHECKOUT_API_URL = 'api/checkout/v2/merchantCheckout/Donations/%s'
56
+ DONATE_ORDER_PROCESSING_API_URL = 'api/checkout/v2/request/Donations/%s'
57
+ DONATE_ORDER_REPORT_API_URL = 'api/checkout/v2/reports/Donations/%s'
58
+
55
59
 
56
60
  # The Frontent class that was used to create this CheckoutCommand and whose
57
61
  # configuration will be used.
@@ -91,12 +95,22 @@ module Google4R #:nodoc:
91
95
  PRODUCTION_URL_PREFIX
92
96
  end
93
97
  url_str +=
94
- if self.class == CheckoutCommand then
95
- CHECKOUT_API_URL
96
- elsif self.class == OrderReportCommand || self.class == NotificationHistoryRequestCommand then
97
- ORDER_REPORT_API_URL
98
+ if frontend.configuration[:purchase_type] == :donation
99
+ if self.class == CheckoutCommand then
100
+ DONATE_CHECKOUT_API_URL
101
+ elsif self.class == OrderReportCommand || self.class == NotificationHistoryRequestCommand then
102
+ DONATE_ORDER_REPORT_API_URL
103
+ else
104
+ DONATE_ORDER_PROCESSING_API_URL
105
+ end
98
106
  else
99
- ORDER_PROCESSING_API_URL
107
+ if self.class == CheckoutCommand then
108
+ CHECKOUT_API_URL
109
+ elsif self.class == OrderReportCommand || self.class == NotificationHistoryRequestCommand then
110
+ ORDER_REPORT_API_URL
111
+ else
112
+ ORDER_PROCESSING_API_URL
113
+ end
100
114
  end
101
115
  url_str = url_str % frontend.configuration[:merchant_id]
102
116
 
@@ -38,6 +38,17 @@ module Google4R #:nodoc:
38
38
  #
39
39
  # frontend = Google4R::Checkout::Frontend.new(configuration)
40
40
  #
41
+ # === Donations
42
+ #
43
+ # If you are processing orders for a Google-verified 501(c)(3) or 510(c)(6) nonprofit,
44
+ # you can collect donations instead of orders. To do so, specify the :purchase_type option
45
+ # as :donation.
46
+ #
47
+ # configuration = { :merchant_id => '123456789', :merchant_key => '12345abcd',
48
+ # :purchase_type => :donation }
49
+ #
50
+ # frontend = Google4R::Checkout::Frontend.new(configuration)
51
+ #
41
52
  # == Tax Table Factory
42
53
  #
43
54
  # You have to set the tax_table_factory attribute of every Frontend object before you
@@ -88,6 +99,9 @@ module Google4R #:nodoc:
88
99
  raise "Missing configuration setting: merchant_id" if configuration[:merchant_id].nil?
89
100
  raise "Missing configuration setting: merchant_key" if configuration[:merchant_key].nil?
90
101
  raise "Missing configuration setting: use_sandbox" if configuration[:use_sandbox].nil?
102
+
103
+ configuration[:purchase_type] ||= :order
104
+ raise "Invalid configuration setting: purchase_type" unless[:donation, :order].include?(configuration[:purchase_type])
91
105
 
92
106
  @configuration = configuration.dup.freeze
93
107
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google4r-checkout
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,14 +13,15 @@ authors:
13
13
  - Johnathan Niziol
14
14
  - Chris Parrish
15
15
  - Larry Salibra
16
+ - Paul Schreiber
16
17
  autorequire:
17
18
  bindir: bin
18
19
  cert_chain: []
19
- date: 2011-12-16 00:00:00.000000000 Z
20
+ date: 2012-05-31 00:00:00.000000000 Z
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
23
  name: money
23
- requirement: &70330930056060 !ruby/object:Gem::Requirement
24
+ requirement: &70193619970700 !ruby/object:Gem::Requirement
24
25
  none: false
25
26
  requirements:
26
27
  - - ! '>='
@@ -28,10 +29,10 @@ dependencies:
28
29
  version: 2.3.0
29
30
  type: :runtime
30
31
  prerelease: false
31
- version_requirements: *70330930056060
32
+ version_requirements: *70193619970700
32
33
  - !ruby/object:Gem::Dependency
33
34
  name: mocha
34
- requirement: &70330930055680 !ruby/object:Gem::Requirement
35
+ requirement: &70193619970280 !ruby/object:Gem::Requirement
35
36
  none: false
36
37
  requirements:
37
38
  - - ! '>='
@@ -39,10 +40,10 @@ dependencies:
39
40
  version: '0'
40
41
  type: :development
41
42
  prerelease: false
42
- version_requirements: *70330930055680
43
+ version_requirements: *70193619970280
43
44
  - !ruby/object:Gem::Dependency
44
45
  name: nokogiri
45
- requirement: &70330930055080 !ruby/object:Gem::Requirement
46
+ requirement: &70193619969820 !ruby/object:Gem::Requirement
46
47
  none: false
47
48
  requirements:
48
49
  - - ! '>='
@@ -50,10 +51,10 @@ dependencies:
50
51
  version: '0'
51
52
  type: :development
52
53
  prerelease: false
53
- version_requirements: *70330930055080
54
+ version_requirements: *70193619969820
54
55
  - !ruby/object:Gem::Dependency
55
56
  name: rake
56
- requirement: &70330930054460 !ruby/object:Gem::Requirement
57
+ requirement: &70193619969380 !ruby/object:Gem::Requirement
57
58
  none: false
58
59
  requirements:
59
60
  - - ! '>='
@@ -61,9 +62,9 @@ dependencies:
61
62
  version: '0'
62
63
  type: :development
63
64
  prerelease: false
64
- version_requirements: *70330930054460
65
+ version_requirements: *70193619969380
65
66
  description: ! " google4r-checkout is a lightweight, framework-agnostic Ruby library
66
- to access the Google Checkout service and implement \n notification handlers. It
67
+ to access the Google Checkout service and implement \n notification handlers. It
67
68
  exposes object-oriented wrappers for all of Google Checkout's API commands and notifications.\n"
68
69
  email: natbudin@gmail.com
69
70
  executables: []
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
171
  version: '0'
171
172
  requirements: []
172
173
  rubyforge_project:
173
- rubygems_version: 1.8.12
174
+ rubygems_version: 1.8.11
174
175
  signing_key:
175
176
  specification_version: 3
176
177
  summary: Full-featured Google Checkout library for Ruby