paypal-express 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paypal-express (0.5.2)
4
+ paypal-express (0.5.3)
5
5
  activesupport (>= 2.3)
6
6
  attr_required (>= 0.0.5)
7
7
  i18n
@@ -10,7 +10,7 @@ PATH
10
10
  GEM
11
11
  remote: http://rubygems.org/
12
12
  specs:
13
- activesupport (3.2.9)
13
+ activesupport (3.2.11)
14
14
  i18n (~> 0.6)
15
15
  multi_json (~> 1.0)
16
16
  attr_required (0.0.5)
@@ -40,7 +40,7 @@ GEM
40
40
  rspec-core (2.12.2)
41
41
  rspec-expectations (2.12.1)
42
42
  diff-lcs (~> 1.1.3)
43
- rspec-mocks (2.12.0)
43
+ rspec-mocks (2.12.2)
44
44
  yamler (0.1.0)
45
45
 
46
46
  PLATFORMS
data/README.rdoc CHANGED
@@ -4,6 +4,9 @@ Handle PayPal Express Checkout.
4
4
  Both Instance Payment and Recurring Payment are supported.
5
5
  Express Checkout for Digital Goods is also supported.
6
6
 
7
+ {<img src="https://secure.travis-ci.org/nov/paypal-express.png" />}[http://travis-ci.org/nov/paypal-express]
8
+ {<img src="http://www.pledgie.com/campaigns/19045.png?skin_name=chrome" />}[http://pledgie.com/campaigns/19045]
9
+
7
10
  == Installation
8
11
 
9
12
  gem install paypal-express
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.5.3
@@ -14,12 +14,11 @@ module Paypal
14
14
  params[:NOSHIPPING] = 1
15
15
  end
16
16
  {
17
- :solution_type => :SOLUTIONTYPE,
18
- :landing_page => :LANDINGPAGE,
19
- :email => :EMAIL,
20
- :brand => :BRANDNAME,
21
- :locale => :LOCALECODE,
22
- :invoice_number => :INVNUM
17
+ :solution_type => :SOLUTIONTYPE,
18
+ :landing_page => :LANDINGPAGE,
19
+ :email => :EMAIL,
20
+ :brand => :BRANDNAME,
21
+ :locale => :LOCALECODE
23
22
  }.each do |option_key, param_key|
24
23
  params[param_key] = options[option_key] if options[option_key]
25
24
  end
@@ -1,8 +1,8 @@
1
1
  module Paypal
2
2
  module Payment
3
3
  class Request < Base
4
- attr_optional :action, :currency_code, :description, :notify_url, :billing_type, :billing_agreement_description, :billing_agreement_id, :request_id, :seller_id
5
- attr_accessor :amount, :items
4
+ attr_optional :action, :currency_code, :description, :notify_url, :billing_type, :billing_agreement_description, :billing_agreement_id, :request_id, :seller_id, :invoice_number, :custom
5
+ attr_accessor :amount, :items, :custom_fields
6
6
 
7
7
  def initialize(attributes = {})
8
8
  @amount = if attributes[:amount].is_a?(Common::Amount)
@@ -18,6 +18,7 @@ module Paypal
18
18
  Array(attributes[:items]).each do |item_attrs|
19
19
  @items << Item.new(item_attrs)
20
20
  end
21
+ @custom_fields = attributes[:custom_fields] || {}
21
22
  super
22
23
  end
23
24
 
@@ -29,6 +30,8 @@ module Paypal
29
30
  :"PAYMENTREQUEST_#{index}_SHIPPINGAMT" => Util.formatted_amount(self.amount.shipping),
30
31
  :"PAYMENTREQUEST_#{index}_CURRENCYCODE" => self.currency_code,
31
32
  :"PAYMENTREQUEST_#{index}_DESC" => self.description,
33
+ :"PAYMENTREQUEST_#{index}_INVNUM" => self.invoice_number,
34
+ :"PAYMENTREQUEST_#{index}_CUSTOM" => self.custom,
32
35
  # NOTE:
33
36
  # notify_url works only when DoExpressCheckoutPayment called.
34
37
  # recurring payment doesn't support dynamic notify_url.
@@ -47,6 +50,10 @@ module Paypal
47
50
  params.merge! item.to_params(index, item_index)
48
51
  end
49
52
  end
53
+ self.custom_fields.each do |key, value|
54
+ field = key.to_s.upcase.gsub("{N}", index.to_s).to_sym
55
+ params[field] = value
56
+ end
50
57
  params
51
58
  end
52
59
 
@@ -18,7 +18,8 @@ module Paypal
18
18
  :TRANSACTIONID => :transaction_id,
19
19
  :TRANSACTIONTYPE => :transaction_type,
20
20
  :PAYMENTREQUESTID => :request_id,
21
- :SELLERPAYPALACCOUNTID => :seller_id
21
+ :SELLERPAYPALACCOUNTID => :seller_id,
22
+ :EXCHANGERATE => :exchange_rate
22
23
  }
23
24
  attr_accessor *@@attribute_mapping.values
24
25
  attr_accessor :amount
@@ -41,4 +42,4 @@ module Paypal
41
42
  end
42
43
  end
43
44
  end
44
- end
45
+ end
@@ -131,8 +131,7 @@ describe Paypal::Express::Request do
131
131
  :landing_page => :LANDINGPAGE,
132
132
  :email => :EMAIL,
133
133
  :brand => :BRANDNAME,
134
- :locale => :LOCALECODE,
135
- :invoice_number => :INVNUM
134
+ :locale => :LOCALECODE
136
135
  }.each do |option_key, param_key|
137
136
  it "should support #{option_key} option" do
138
137
  expect do
@@ -9,6 +9,8 @@ describe Paypal::Payment::Request do
9
9
  :currency_code => :JPY,
10
10
  :description => 'Instant Payment Request',
11
11
  :notify_url => 'http://merchant.example.com/notify',
12
+ :invoice_number => 'ABC123',
13
+ :custom => 'Custom',
12
14
  :items => [{
13
15
  :quantity => 2,
14
16
  :name => 'Item1',
@@ -19,7 +21,10 @@ describe Paypal::Payment::Request do
19
21
  :name => 'Item2',
20
22
  :description => 'Awesome Item 2!',
21
23
  :amount => 1.1
22
- }]
24
+ }],
25
+ :custom_fields => {
26
+ "l_surveychoice{n}" => 'abcd' # The '{n}' will be replaced with the index
27
+ }
23
28
  )
24
29
  end
25
30
 
@@ -69,9 +74,11 @@ describe Paypal::Payment::Request do
69
74
  :PAYMENTREQUEST_0_TAXAMT => "0.40",
70
75
  :PAYMENTREQUEST_0_SHIPPINGAMT => "1.50",
71
76
  :PAYMENTREQUEST_0_CURRENCYCODE => :JPY,
72
- :PAYMENTREQUEST_0_DESC => "Instant Payment Request",
77
+ :PAYMENTREQUEST_0_DESC => "Instant Payment Request",
73
78
  :PAYMENTREQUEST_0_NOTIFYURL => "http://merchant.example.com/notify",
74
79
  :PAYMENTREQUEST_0_ITEMAMT => "23.80",
80
+ :PAYMENTREQUEST_0_INVNUM => "ABC123",
81
+ :PAYMENTREQUEST_0_CUSTOM => "Custom",
75
82
  :L_PAYMENTREQUEST_0_NAME0 => "Item1",
76
83
  :L_PAYMENTREQUEST_0_DESC0 => "Awesome Item 1!",
77
84
  :L_PAYMENTREQUEST_0_AMT0 => "10.25",
@@ -79,7 +86,8 @@ describe Paypal::Payment::Request do
79
86
  :L_PAYMENTREQUEST_0_NAME1 => "Item2",
80
87
  :L_PAYMENTREQUEST_0_DESC1 => "Awesome Item 2!",
81
88
  :L_PAYMENTREQUEST_0_AMT1 => "1.10",
82
- :L_PAYMENTREQUEST_0_QTY1 => 3
89
+ :L_PAYMENTREQUEST_0_QTY1 => 3,
90
+ :L_SURVEYCHOICE0 => 'abcd' # Note the 'n' was replaced by the index
83
91
  }
84
92
  end
85
93
 
@@ -25,7 +25,8 @@ describe Paypal::Payment::Response::Info do
25
25
  :RECEIPTID => '12345',
26
26
  :SECUREMERCHANTACCOUNTID => '123456789',
27
27
  :PAYMENTREQUESTID => '12345',
28
- :SELLERPAYPALACCOUNTID => 'seller@shop.example.com'
28
+ :SELLERPAYPALACCOUNTID => 'seller@shop.example.com',
29
+ :EXCHANGERATE => '0.811965'
29
30
  }
30
31
  end
31
32
 
@@ -89,4 +90,4 @@ describe Paypal::Payment::Response::Info do
89
90
  end
90
91
  end
91
92
  end
92
- end
93
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paypal-express
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-17 00:00:00.000000000 Z
12
+ date: 2013-02-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -245,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
245
  version: '0'
246
246
  segments:
247
247
  - 0
248
- hash: -2376280360694754319
248
+ hash: 2957452685464048552
249
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  none: false
251
251
  requirements: