paypal-express 0.2.10 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.10
1
+ 0.3.0
data/lib/paypal.rb CHANGED
@@ -73,6 +73,7 @@ require 'paypal/payment/response'
73
73
  require 'paypal/payment/response/info'
74
74
  require 'paypal/payment/response/item'
75
75
  require 'paypal/payment/response/payer'
76
+ require 'paypal/payment/response/refund'
76
77
  require 'paypal/payment/response/ship_to'
77
78
  require 'paypal/payment/recurring'
78
79
  require 'paypal/payment/recurring/activation'
@@ -1,12 +1,11 @@
1
1
  module Paypal
2
2
  module Express
3
3
  class Request < NVP::Request
4
- attr_required :return_url, :cancel_url
5
4
 
6
- def setup(payment_requests, options = {})
5
+ def setup(payment_requests, return_url, cancel_url, options = {})
7
6
  params = {
8
- :RETURNURL => self.return_url,
9
- :CANCELURL => self.cancel_url
7
+ :RETURNURL => return_url,
8
+ :CANCELURL => cancel_url
10
9
  }
11
10
  if options[:no_shipping]
12
11
  params[:REQCONFIRMSHIPPING] = 0
@@ -53,16 +52,38 @@ module Paypal
53
52
  Response.new response
54
53
  end
55
54
 
56
- def renew!(profile_id, action, note = '')
55
+ def renew!(profile_id, action, options = {})
57
56
  params = {
58
57
  :PROFILEID => profile_id,
59
- :ACTION => action,
60
- :NOTE => note
58
+ :ACTION => action
61
59
  }
60
+ if options[:note]
61
+ params[:NOTE] = options[:note]
62
+ end
62
63
  response = self.request :ManageRecurringPaymentsProfileStatus, params
63
64
  Response.new response
64
65
  end
65
66
 
67
+ def refund!(transaction_id, options = {})
68
+ params = {
69
+ :TRANSACTIONID => transaction_id,
70
+ :REFUNDTYPE => :Full
71
+ }
72
+ if options[:invoice_id]
73
+ params[:INVOICEID] = options[:invoice_id]
74
+ end
75
+ if options[:type]
76
+ params[:REFUNDTYPE] = options[:type]
77
+ params[:AMT] = options[:amount]
78
+ params[:CURRENCYCODE] = options[:currency_code]
79
+ end
80
+ if options[:note]
81
+ params[:NOTE] = options[:note]
82
+ end
83
+ response = self.request :RefundTransaction, params
84
+ Response.new response
85
+ end
86
+
66
87
  end
67
88
  end
68
89
  end
@@ -12,14 +12,14 @@ module Paypal
12
12
  :COUNTRYCODE => :country_code,
13
13
  :CURRENCYCODE => :currency_code,
14
14
  :DESC => :description,
15
+ :NOTIFYURL => :notify_url,
15
16
  :TIMESTAMP => :timestamp,
16
17
  :TOKEN => :token,
17
- :NOTIFYURL => :notify_url,
18
18
  :VERSION => :version
19
19
  }
20
20
  attr_accessor *@@attribute_mapping.values
21
21
  attr_accessor :shipping_options_is_default, :success_page_redirect_requested, :insurance_option_selected
22
- attr_accessor :amount, :description, :ship_to, :payer, :recurring, :payment_responses, :payment_info, :items
22
+ attr_accessor :amount, :description, :ship_to, :payer, :recurring, :payment_responses, :payment_info, :items, :refund
23
23
 
24
24
  def initialize(attributes = {})
25
25
  attrs = attributes.dup
@@ -59,6 +59,17 @@ module Paypal
59
59
  :email => attrs.delete(:EMAIL)
60
60
  )
61
61
  end
62
+ if attrs[:REFUNDTRANSACTIONID]
63
+ @refund = Payment::Response::Refund.new(
64
+ :transaction_id => attrs.delete(:REFUNDTRANSACTIONID),
65
+ :amount => {
66
+ :total => attrs.delete(:TOTALREFUNDEDAMOUNT),
67
+ :fee => attrs.delete(:FEEREFUNDAMT),
68
+ :gross => attrs.delete(:GROSSREFUNDAMT),
69
+ :net => attrs.delete(:NETREFUNDAMT)
70
+ }
71
+ )
72
+ end
62
73
  if attrs[:PROFILEID]
63
74
  @recurring = Payment::Recurring.new(
64
75
  :identifier => attrs.delete(:PROFILEID),
@@ -120,7 +131,7 @@ module Paypal
120
131
  end
121
132
  if prefix
122
133
  payment_responses[index.to_i] ||= {}
123
- payment_responses[index.to_i][key.to_sym] ||= attrs.delete(_attr_)
134
+ payment_responses[index.to_i][key.to_sym] = attrs.delete(_attr_)
124
135
  end
125
136
  end
126
137
  @payment_responses = payment_responses.collect do |_attrs_|
@@ -2,7 +2,7 @@ module Paypal
2
2
  module Payment
3
3
  module Common
4
4
  class Amount < Base
5
- attr_optional :total, :item, :fee, :handing, :insurance, :ship_disc, :shipping, :tax
5
+ attr_optional :total, :item, :fee, :handing, :insurance, :ship_disc, :shipping, :tax, :gross, :net
6
6
 
7
7
  def numeric_attribute?(key)
8
8
  true
@@ -10,4 +10,4 @@ module Paypal
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -1,7 +1,7 @@
1
1
  module Paypal
2
2
  module Payment
3
3
  class Response < Base
4
- attr_accessor :amount, :ship_to, :description, :note, :items, :notify_url, :insurance_option_offered, :currency_code, :error_code
4
+ attr_accessor :amount, :ship_to, :description, :note, :items, :notify_url, :insurance_option_offered, :currency_code, :error_code, :transaction_id
5
5
 
6
6
  def initialize(attributes = {})
7
7
  attrs = attributes.dup
@@ -30,6 +30,7 @@ module Paypal
30
30
  @insurance_option_offered = attrs.delete(:INSURANCEOPTIONOFFERED) == 'true'
31
31
  @currency_code = attrs.delete(:CURRENCYCODE)
32
32
  @error_code = attrs.delete(:ERRORCODE)
33
+ @transaction_id = attrs.delete(:TRANSACTIONID)
33
34
 
34
35
  # items
35
36
  items = []
@@ -13,9 +13,10 @@ module Paypal
13
13
  :PROTECTIONELIGIBILITY => :protection_eligibility,
14
14
  :PROTECTIONELIGIBILITYTYPE => :protection_eligibility_type,
15
15
  :REASONCODE => :reason_code,
16
+ :RECEIPTID => :receipt_id,
17
+ :SECUREMERCHANTACCOUNTID => :secure_merchant_account_id,
16
18
  :TRANSACTIONID => :transaction_id,
17
19
  :TRANSACTIONTYPE => :transaction_type,
18
- :RECEIPTID => :receipt_id
19
20
  }
20
21
  attr_accessor *@@attribute_mapping.values
21
22
  attr_accessor :amount
@@ -0,0 +1,13 @@
1
+ module Paypal
2
+ module Payment
3
+ class Response::Refund < Base
4
+ attr_optional :transaction_id
5
+ attr_accessor :amount
6
+
7
+ def initialize(attributes = {})
8
+ super
9
+ @amount = Common::Amount.new(attributes[:amount])
10
+ end
11
+ end
12
+ end
13
+ end
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.add_dependency "i18n"
18
18
  s.add_dependency "restclient_with_cert"
19
19
  s.add_dependency "attr_required", ">= 0.0.3"
20
- s.add_development_dependency "rake", ">= 0.8"
20
+ s.add_development_dependency "rake", ">= 0.8", "< 0.9"
21
21
  s.add_development_dependency "rcov", ">= 0.9"
22
22
  s.add_development_dependency "rspec", ">= 2"
23
23
  s.add_development_dependency "fakeweb", ">= 1.3.0"
@@ -0,0 +1 @@
1
+ REFUNDTRANSACTIONID=6D456341FS516215S&FEEREFUNDAMT=0%2e50&GROSSREFUNDAMT=10%2e00&NETREFUNDAMT=9%2e50&CURRENCYCODE=USD&TOTALREFUNDEDAMOUNT=10%2e00&TIMESTAMP=2011%2d05%2d21T14%3a13%3a32Z&CORRELATIONID=862bfc523cca2&ACK=Success&VERSION=72%2e0&BUILD=1882144
@@ -11,13 +11,14 @@ describe Paypal::Express::Request do
11
11
  alias_method_chain :post, :logging
12
12
  end
13
13
 
14
+ let(:return_url) { 'http://example.com/success' }
15
+ let(:cancel_url) { 'http://example.com/cancel' }
16
+ let(:nvp_endpoint) { Paypal::NVP::Request::ENDPOINT[:production] }
14
17
  let :attributes do
15
18
  {
16
19
  :username => 'nov',
17
20
  :password => 'password',
18
- :signature => 'sig',
19
- :return_url => 'http://example.com/success',
20
- :cancel_url => 'http://example.com/cancel'
21
+ :signature => 'sig'
21
22
  }
22
23
  end
23
24
 
@@ -77,19 +78,19 @@ describe Paypal::Express::Request do
77
78
  describe '#setup' do
78
79
  it 'should return Paypal::Express::Response' do
79
80
  fake_response 'SetExpressCheckout/success'
80
- response = instance.setup recurring_payment_request
81
+ response = instance.setup recurring_payment_request, return_url, cancel_url
81
82
  response.should be_instance_of(Paypal::Express::Response)
82
83
  end
83
84
 
84
85
  it 'should support no_shipping option' do
85
86
  expect do
86
- instance.setup instant_payment_request, :no_shipping => true
87
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
87
+ instance.setup instant_payment_request, return_url, cancel_url, :no_shipping => true
88
+ end.should request_to nvp_endpoint, :post
88
89
  instance._method_.should == :SetExpressCheckout
89
90
  instance._sent_params_.should == {
90
91
  :PAYMENTREQUEST_0_DESC => 'Instant Payment Request',
91
- :RETURNURL => 'http://example.com/success',
92
- :CANCELURL => 'http://example.com/cancel',
92
+ :RETURNURL => return_url,
93
+ :CANCELURL => cancel_url,
93
94
  :PAYMENTREQUEST_0_AMT => '1000.00',
94
95
  :PAYMENTREQUEST_0_TAXAMT => "0.00",
95
96
  :PAYMENTREQUEST_0_SHIPPINGAMT => "0.00",
@@ -101,13 +102,13 @@ describe Paypal::Express::Request do
101
102
  context 'when instance payment request given' do
102
103
  it 'should call SetExpressCheckout' do
103
104
  expect do
104
- instance.setup instant_payment_request
105
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
105
+ instance.setup instant_payment_request, return_url, cancel_url
106
+ end.should request_to nvp_endpoint, :post
106
107
  instance._method_.should == :SetExpressCheckout
107
108
  instance._sent_params_.should == {
108
109
  :PAYMENTREQUEST_0_DESC => 'Instant Payment Request',
109
- :RETURNURL => 'http://example.com/success',
110
- :CANCELURL => 'http://example.com/cancel',
110
+ :RETURNURL => return_url,
111
+ :CANCELURL => cancel_url,
111
112
  :PAYMENTREQUEST_0_AMT => '1000.00',
112
113
  :PAYMENTREQUEST_0_TAXAMT => "0.00",
113
114
  :PAYMENTREQUEST_0_SHIPPINGAMT => "0.00"
@@ -118,14 +119,14 @@ describe Paypal::Express::Request do
118
119
  context 'when recurring payment request given' do
119
120
  it 'should call SetExpressCheckout' do
120
121
  expect do
121
- instance.setup recurring_payment_request
122
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
122
+ instance.setup recurring_payment_request, return_url, cancel_url
123
+ end.should request_to nvp_endpoint, :post
123
124
  instance._method_.should == :SetExpressCheckout
124
125
  instance._sent_params_.should == {
125
126
  :L_BILLINGTYPE0 => :RecurringPayments,
126
127
  :L_BILLINGAGREEMENTDESCRIPTION0 => 'Recurring Payment Request',
127
- :RETURNURL => 'http://example.com/success',
128
- :CANCELURL => 'http://example.com/cancel',
128
+ :RETURNURL => return_url,
129
+ :CANCELURL => cancel_url,
129
130
  :PAYMENTREQUEST_0_AMT => '0.00',
130
131
  :PAYMENTREQUEST_0_TAXAMT => "0.00",
131
132
  :PAYMENTREQUEST_0_SHIPPINGAMT => "0.00"
@@ -144,7 +145,7 @@ describe Paypal::Express::Request do
144
145
  it 'should call GetExpressCheckoutDetails' do
145
146
  expect do
146
147
  instance.details 'token'
147
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
148
+ end.should request_to nvp_endpoint, :post
148
149
  instance._method_.should == :GetExpressCheckoutDetails
149
150
  instance._sent_params_.should == {
150
151
  :TOKEN => 'token'
@@ -162,7 +163,7 @@ describe Paypal::Express::Request do
162
163
  it 'should call DoExpressCheckoutPayment' do
163
164
  expect do
164
165
  instance.checkout! 'token', 'payer_id', instant_payment_request
165
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
166
+ end.should request_to nvp_endpoint, :post
166
167
  instance._method_.should == :DoExpressCheckoutPayment
167
168
  instance._sent_params_.should == {
168
169
  :PAYERID => 'payer_id',
@@ -185,7 +186,7 @@ describe Paypal::Express::Request do
185
186
  it 'should call CreateRecurringPaymentsProfile' do
186
187
  expect do
187
188
  instance.subscribe! 'token', recurring_profile
188
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
189
+ end.should request_to nvp_endpoint, :post
189
190
  instance._method_.should == :CreateRecurringPaymentsProfile
190
191
  instance._sent_params_.should == {
191
192
  :DESC => 'Recurring Profile',
@@ -215,7 +216,7 @@ describe Paypal::Express::Request do
215
216
  it 'should call GetRecurringPaymentsProfileDetails' do
216
217
  expect do
217
218
  instance.subscription 'profile_id'
218
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
219
+ end.should request_to nvp_endpoint, :post
219
220
  instance._method_.should == :GetRecurringPaymentsProfileDetails
220
221
  instance._sent_params_.should == {
221
222
  :PROFILEID => 'profile_id'
@@ -233,12 +234,30 @@ describe Paypal::Express::Request do
233
234
  it 'should call ManageRecurringPaymentsProfileStatus' do
234
235
  expect do
235
236
  instance.renew! 'profile_id', :Cancel
236
- end.should request_to 'https://api-3t.paypal.com/nvp', :post
237
+ end.should request_to nvp_endpoint, :post
237
238
  instance._method_.should == :ManageRecurringPaymentsProfileStatus
238
239
  instance._sent_params_.should == {
239
240
  :ACTION => :Cancel,
240
- :PROFILEID => 'profile_id',
241
- :NOTE => ''
241
+ :PROFILEID => 'profile_id'
242
+ }
243
+ end
244
+ end
245
+
246
+ describe '#refund!' do
247
+ it 'should return Paypal::Express::Response' do
248
+ fake_response 'RefundTransaction/full'
249
+ response = instance.refund! 'transaction_id'
250
+ response.should be_instance_of(Paypal::Express::Response)
251
+ end
252
+
253
+ it 'should call RefundTransaction' do
254
+ expect do
255
+ instance.refund! 'transaction_id'
256
+ end.should request_to nvp_endpoint, :post
257
+ instance._method_.should == :RefundTransaction
258
+ instance._sent_params_.should == {
259
+ :TRANSACTIONID => 'transaction_id',
260
+ :REFUNDTYPE => :Full
242
261
  }
243
262
  end
244
263
  end
@@ -3,13 +3,13 @@ require 'spec_helper.rb'
3
3
  describe Paypal::Express::Response do
4
4
  before { fake_response 'SetExpressCheckout/success' }
5
5
 
6
+ let(:return_url) { 'http://example.com/success' }
7
+ let(:cancel_url) { 'http://example.com/cancel' }
6
8
  let :request do
7
9
  Paypal::Express::Request.new(
8
10
  :username => 'nov',
9
11
  :password => 'password',
10
- :signature => 'sig',
11
- :return_url => 'http://example.com/success',
12
- :cancel_url => 'http://example.com/cancel'
12
+ :signature => 'sig'
13
13
  )
14
14
  end
15
15
  let :payment_request do
@@ -18,7 +18,7 @@ describe Paypal::Express::Response do
18
18
  :billing_agreement_description => 'Recurring Payment Request'
19
19
  )
20
20
  end
21
- let(:response) { request.setup payment_request }
21
+ let(:response) { request.setup payment_request, return_url, cancel_url }
22
22
 
23
23
  describe '#redirect_uri' do
24
24
  subject { response.redirect_uri }
@@ -31,7 +31,7 @@ describe Paypal::Express::Response do
31
31
  end
32
32
 
33
33
  context 'when pay_on_paypal option is given' do
34
- let(:response) { request.setup payment_request, :pay_on_paypal => true }
34
+ let(:response) { request.setup payment_request, return_url, cancel_url, :pay_on_paypal => true }
35
35
 
36
36
  subject { response }
37
37
  its(:pay_on_paypal) { should be_true }
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper.rb'
2
2
 
3
3
  describe Paypal::NVP::Response do
4
+ let(:return_url) { 'http://example.com/success' }
5
+ let(:cancel_url) { 'http://example.com/cancel' }
4
6
  let :request do
5
7
  Paypal::Express::Request.new(
6
8
  :username => 'nov',
7
9
  :password => 'password',
8
- :signature => 'sig',
9
- :return_url => 'http://example.com/success',
10
- :cancel_url => 'http://example.com/cancel'
10
+ :signature => 'sig'
11
11
  )
12
12
  end
13
13
 
@@ -49,7 +49,7 @@ describe Paypal::NVP::Response do
49
49
 
50
50
  it 'should handle all attributes' do
51
51
  Paypal.logger.should_not_receive(:warn)
52
- response = request.setup payment_request
52
+ response = request.setup payment_request, return_url, cancel_url
53
53
  response.token.should == 'EC-5YJ90598G69065317'
54
54
  end
55
55
  end
@@ -22,7 +22,8 @@ describe Paypal::Payment::Response::Info do
22
22
  :AMT => '14.00',
23
23
  :FEEAMT => '0.85',
24
24
  :TAXAMT => '0.00',
25
- :RECEIPTID => '12345'
25
+ :RECEIPTID => '12345',
26
+ :SECUREMERCHANTACCOUNTID => '123456789'
26
27
  }
27
28
  end
28
29
 
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paypal-express
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease:
5
- version: 0.2.10
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
6
11
  platform: ruby
7
12
  authors:
8
13
  - nov matake
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-05-21 00:00:00 Z
18
+ date: 2011-05-23 00:00:00 Z
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: activesupport
@@ -20,6 +25,10 @@ dependencies:
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 2
31
+ - 3
23
32
  version: "2.3"
24
33
  type: :runtime
25
34
  version_requirements: *id001
@@ -31,6 +40,9 @@ dependencies:
31
40
  requirements:
32
41
  - - ">="
33
42
  - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
34
46
  version: "0"
35
47
  type: :runtime
36
48
  version_requirements: *id002
@@ -42,6 +54,9 @@ dependencies:
42
54
  requirements:
43
55
  - - ">="
44
56
  - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
45
60
  version: "0"
46
61
  type: :runtime
47
62
  version_requirements: *id003
@@ -53,6 +68,11 @@ dependencies:
53
68
  requirements:
54
69
  - - ">="
55
70
  - !ruby/object:Gem::Version
71
+ hash: 25
72
+ segments:
73
+ - 0
74
+ - 0
75
+ - 3
56
76
  version: 0.0.3
57
77
  type: :runtime
58
78
  version_requirements: *id004
@@ -64,7 +84,18 @@ dependencies:
64
84
  requirements:
65
85
  - - ">="
66
86
  - !ruby/object:Gem::Version
87
+ hash: 27
88
+ segments:
89
+ - 0
90
+ - 8
67
91
  version: "0.8"
92
+ - - <
93
+ - !ruby/object:Gem::Version
94
+ hash: 25
95
+ segments:
96
+ - 0
97
+ - 9
98
+ version: "0.9"
68
99
  type: :development
69
100
  version_requirements: *id005
70
101
  - !ruby/object:Gem::Dependency
@@ -75,6 +106,10 @@ dependencies:
75
106
  requirements:
76
107
  - - ">="
77
108
  - !ruby/object:Gem::Version
109
+ hash: 25
110
+ segments:
111
+ - 0
112
+ - 9
78
113
  version: "0.9"
79
114
  type: :development
80
115
  version_requirements: *id006
@@ -86,6 +121,9 @@ dependencies:
86
121
  requirements:
87
122
  - - ">="
88
123
  - !ruby/object:Gem::Version
124
+ hash: 7
125
+ segments:
126
+ - 2
89
127
  version: "2"
90
128
  type: :development
91
129
  version_requirements: *id007
@@ -97,6 +135,11 @@ dependencies:
97
135
  requirements:
98
136
  - - ">="
99
137
  - !ruby/object:Gem::Version
138
+ hash: 27
139
+ segments:
140
+ - 1
141
+ - 3
142
+ - 0
100
143
  version: 1.3.0
101
144
  type: :development
102
145
  version_requirements: *id008
@@ -140,6 +183,7 @@ files:
140
183
  - lib/paypal/payment/response/info.rb
141
184
  - lib/paypal/payment/response/item.rb
142
185
  - lib/paypal/payment/response/payer.rb
186
+ - lib/paypal/payment/response/refund.rb
143
187
  - lib/paypal/payment/response/ship_to.rb
144
188
  - lib/paypal/util.rb
145
189
  - paypal-express.gemspec
@@ -155,6 +199,7 @@ files:
155
199
  - spec/fake_response/IPN/valid.txt
156
200
  - spec/fake_response/ManageRecurringPaymentsProfileStatus/failure.txt
157
201
  - spec/fake_response/ManageRecurringPaymentsProfileStatus/success.txt
202
+ - spec/fake_response/RefundTransaction/full.txt
158
203
  - spec/fake_response/SetExpressCheckout/failure.txt
159
204
  - spec/fake_response/SetExpressCheckout/success.txt
160
205
  - spec/helpers/fake_response_helper.rb
@@ -190,12 +235,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
235
  requirements:
191
236
  - - ">="
192
237
  - !ruby/object:Gem::Version
238
+ hash: 3
239
+ segments:
240
+ - 0
193
241
  version: "0"
194
242
  required_rubygems_version: !ruby/object:Gem::Requirement
195
243
  none: false
196
244
  requirements:
197
245
  - - ">="
198
246
  - !ruby/object:Gem::Version
247
+ hash: 23
248
+ segments:
249
+ - 1
250
+ - 3
251
+ - 6
199
252
  version: 1.3.6
200
253
  requirements: []
201
254
 
@@ -217,6 +270,7 @@ test_files:
217
270
  - spec/fake_response/IPN/valid.txt
218
271
  - spec/fake_response/ManageRecurringPaymentsProfileStatus/failure.txt
219
272
  - spec/fake_response/ManageRecurringPaymentsProfileStatus/success.txt
273
+ - spec/fake_response/RefundTransaction/full.txt
220
274
  - spec/fake_response/SetExpressCheckout/failure.txt
221
275
  - spec/fake_response/SetExpressCheckout/success.txt
222
276
  - spec/helpers/fake_response_helper.rb