active_paypal_adaptive_payment 0.3.4 → 0.3.6

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/README.md CHANGED
@@ -12,6 +12,9 @@ This library is meant to interface with PayPal's Adaptive Payment Gateway.
12
12
  * Peapprovals
13
13
  * Refunds
14
14
  * Currency conversions
15
+ * getting/setting payment options
16
+ * getting shipping addresses
17
+ * getting a redirect for the embedded pay flow
15
18
  * More soon!
16
19
 
17
20
  ## Installation
@@ -28,24 +31,23 @@ See [iAuction: An Adaptive Payments Tutorial Featuring Parallel Payments](https:
28
31
 
29
32
  ### Init
30
33
 
31
- gateway =
32
- ActiveMerchant::Billing::PaypalAdaptivePayment.new(
33
- :login => "acutio_1313133342_biz_api1.gmail.com",
34
- :password => "1255043567",
35
- :signature => "Abg0gYcQlsdkls2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf",
36
- :appid => "APP-80W284485P519543T" )
34
+ gateway = ActiveMerchant::Billing::PaypalAdaptivePayment.new(
35
+ :login => "acutio_1313133342_biz_api1.gmail.com",
36
+ :password => "1255043567",
37
+ :signature => "Abg0gYcQlsdkls2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf",
38
+ :appid => "APP-80W284485P519543T" )
37
39
 
38
40
  ### Pre-approved paymen
39
41
 
40
- gateway.preapprove_payment (
41
- :return_url => "returnURL",
42
- :cancel_url => "cancelURL",
43
- :senderEmail =>"email address of sender",
44
- :start_date => Time.now,
45
- :end_date => Time.now + (60*60*24) * 30,
46
- :currency_code =>"currency code",
47
- :max_amount => "maxTotalAmountOfAllPayments",
48
- :maxNumberOfPayments => "maxNumberOfPayments" )
42
+ gateway.preapprove_payment (
43
+ :return_url => "returnURL",
44
+ :cancel_url => "cancelURL",
45
+ :senderEmail =>"email address of sender",
46
+ :start_date => Time.now,
47
+ :end_date => Time.now + (60*60*24) * 30,
48
+ :currency_code =>"currency code",
49
+ :max_amount => "maxTotalAmountOfAllPayments",
50
+ :maxNumberOfPayments => "maxNumberOfPayments" )
49
51
 
50
52
  ### Cancel pre-approved payment
51
53
 
@@ -69,7 +71,7 @@ See [iAuction: An Adaptive Payments Tutorial Featuring Parallel Payments](https:
69
71
  )
70
72
 
71
73
  # for redirecting the customer to the actual paypal site to finish the payment.
72
- redirect_to (gateway.redirect_url_for(response["payKey"]))
74
+ redirect_to (gateway.redirect_url_for(response["payKey"]))
73
75
  end
74
76
 
75
77
  Set the `:primary` flag to `false` for each recipient for a split payment.
@@ -78,9 +80,12 @@ Maybe also check the tests for a sample implementation.
78
80
 
79
81
  ## Testing
80
82
 
81
- First modify the values in `test/fixtures.yml` to fit your app credentials.
83
+ First modify the `test/fixtures.yml` to fit your app credentials (You
84
+ will need at least a PayPal developer account).
82
85
 
83
- After that you can just execute them via `autotest`.
86
+ After that you can run them like this:
87
+
88
+ $ ruby -Ilib test/test_paypal_adaptive_payment.rb
84
89
 
85
90
  ## Debugging
86
91
 
@@ -96,8 +101,12 @@ xml request, raw json response and the URL of the endpoint.
96
101
 
97
102
  ## TODO
98
103
 
99
- * Documentation
100
- * More tests
104
+ * More/better Documentation.
105
+ * Improve/change the tests implementation by maybe run them off
106
+ fixture data and use a separate script/test for actually invoking
107
+ requests to PayPal. This will allow other developers to implement
108
+ the without being required to set and request the credentials from
109
+ PayPal process.
101
110
 
102
111
  ## Contributors
103
112
 
@@ -106,6 +115,7 @@ xml request, raw json response and the URL of the endpoint.
106
115
  * LeviRosol (<https://github.com/LeviRosol>)
107
116
  * Florian95 (<https://github.com/Florian95>)
108
117
  * akichatov (<https://github.com/akichatov>)
118
+ * Patrick Sinclair (<https://github.com/metade>)
109
119
 
110
120
  ## Other previous contributors where some code was taken from.
111
121
 
@@ -47,6 +47,18 @@ module ActiveMerchant #:nodoc:
47
47
  commit('PaymentDetails', build_adaptive_payment_details_request(options))
48
48
  end
49
49
 
50
+ def get_shipping_addresses(options)
51
+ commit('GetShippingAddresses', build_adaptive_get_shipping_addresses_request(options))
52
+ end
53
+
54
+ def get_payment_options(options)
55
+ commit('GetPaymentOptions', build_adaptive_get_payment_options_request(options))
56
+ end
57
+
58
+ def set_payment_options(options)
59
+ commit('SetPaymentOptions', build_adaptive_set_payment_options_request(options))
60
+ end
61
+
50
62
  def refund(options)
51
63
  commit('Refund', build_adaptive_refund_details(options))
52
64
  end
@@ -75,6 +87,10 @@ module ActiveMerchant #:nodoc:
75
87
  test? ? EMBEDDED_FLOW_TEST_URL : EMBEDDED_FLOW_LIVE_URL
76
88
  end
77
89
 
90
+ def embedded_flow_url_for(token)
91
+ "#{embedded_flow_url}?paykey=#{token}"
92
+ end
93
+
78
94
  def debug
79
95
  "Url: #{@url}\n\n Request: #{@xml} \n\n Response: #{@response.json}"
80
96
  end
@@ -148,6 +164,52 @@ module ActiveMerchant #:nodoc:
148
164
  end
149
165
  end
150
166
 
167
+ def build_adaptive_get_shipping_addresses_request(opts)
168
+ @xml = ''
169
+ xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
170
+ xml.instruct!
171
+ xml.GetShippingAddressesRequest do |x|
172
+ x.requestEnvelope do |x|
173
+ x.detailLevel 'ReturnAll'
174
+ x.errorLanguage opts[:error_language] ||= 'en_US'
175
+ end
176
+ x.key opts[:pay_key]
177
+ end
178
+ end
179
+
180
+ def build_adaptive_get_payment_options_request(opts)
181
+ @xml = ''
182
+ xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
183
+ xml.instruct!
184
+ xml.GetPaymentOptionsRequest do |x|
185
+ x.requestEnvelope do |x|
186
+ x.detailLevel 'ReturnAll'
187
+ x.errorLanguage opts[:error_language] ||= 'en_US'
188
+ end
189
+ x.payKey opts[:pay_key]
190
+ end
191
+ end
192
+
193
+ def build_adaptive_set_payment_options_request(opts)
194
+ opts[:sender] ||= {}
195
+
196
+ @xml = ''
197
+ xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
198
+ xml.instruct!
199
+ xml.SetPaymentOptionsRequest do |x|
200
+ x.requestEnvelope do |x|
201
+ x.detailLevel 'ReturnAll'
202
+ x.errorLanguage opts[:error_language] ||= 'en_US'
203
+ end
204
+ x.senderOptions do |x|
205
+ x.shareAddress opts[:sender][:share_address] if opts[:sender][:share_address]
206
+ x.sharePhoneNumber opts[:sender][:share_phone_number] if opts[:sender][:share_phone_number]
207
+ x.requireShippingAddressSelection opts[:sender][:require_shipping_address_selection] if opts[:sender][:require_shipping_address_selection]
208
+ end
209
+ x.payKey opts[:pay_key]
210
+ end
211
+ end
212
+
151
213
  def build_adaptive_refund_details(options)
152
214
  @xml = ''
153
215
  xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
@@ -1,6 +1,5 @@
1
1
  require 'multi_json'
2
2
  require 'hashie'
3
- require 'rash'
4
3
 
5
4
  module ActiveMerchant
6
5
  module Billing
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_paypal_adaptive_payment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-16 00:00:00.000000000Z
12
+ date: 2011-11-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemerchant
16
- requirement: &19405340 !ruby/object:Gem::Requirement
16
+ requirement: &80394670 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.5.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19405340
24
+ version_requirements: *80394670
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: multi_json
27
- requirement: &19404680 !ruby/object:Gem::Requirement
27
+ requirement: &80394430 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *19404680
35
+ version_requirements: *80394430
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hashie
38
- requirement: &19403760 !ruby/object:Gem::Requirement
38
+ requirement: &80394190 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.2.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *19403760
46
+ version_requirements: *80394190
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: money
49
- requirement: &19403100 !ruby/object:Gem::Requirement
49
+ requirement: &80393950 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 3.6.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *19403100
57
+ version_requirements: *80393950
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mocha
60
- requirement: &19402360 !ruby/object:Gem::Requirement
60
+ requirement: &80393710 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.10.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *19402360
68
+ version_requirements: *80393710
69
69
  description: ! ' This library is meant to interface with PayPal''s Adaptive Payment
70
70
  Gateway.
71
71
 
@@ -76,17 +76,17 @@ executables: []
76
76
  extensions: []
77
77
  extra_rdoc_files: []
78
78
  files:
79
- - lib/active_paypal_adaptive_payment.rb
80
- - lib/active_merchant/billing/integrations/paypal_adaptive_payment.rb
81
- - lib/active_merchant/billing/integrations/paypal_adaptive_payment/helper.rb
82
79
  - lib/active_merchant/billing/integrations/paypal_adaptive_payment/return.rb
83
80
  - lib/active_merchant/billing/integrations/paypal_adaptive_payment/notification.rb
81
+ - lib/active_merchant/billing/integrations/paypal_adaptive_payment/helper.rb
82
+ - lib/active_merchant/billing/integrations/paypal_adaptive_payment.rb
84
83
  - lib/active_merchant/billing/integrations/notification.rb
85
- - lib/active_merchant/billing/gateways/paypal_adaptive_payment.rb
86
- - lib/active_merchant/billing/gateways/paypal_adaptive_payments/ext.rb
87
84
  - lib/active_merchant/billing/gateways/paypal_adaptive_payments/exceptions.rb
85
+ - lib/active_merchant/billing/gateways/paypal_adaptive_payments/ext.rb
88
86
  - lib/active_merchant/billing/gateways/paypal_adaptive_payments/adaptive_payment_response.rb
89
87
  - lib/active_merchant/billing/gateways/paypal_adaptive_payment_common.rb
88
+ - lib/active_merchant/billing/gateways/paypal_adaptive_payment.rb
89
+ - lib/active_paypal_adaptive_payment.rb
90
90
  - MIT-LICENSE
91
91
  - README.md
92
92
  - CHANGELOG.md