amazon_flex_pay 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 68253a01c923bf46f09496fdee4ace08ea2dd9ed
4
+ data.tar.gz: 6b40beb54028b808d4f41b36e0a7ac3e4e005dbb
5
+ SHA512:
6
+ metadata.gz: 7a7aaf429c63410b93674f2ae06635d46bbe0e551993f8e818714683a7b9d5a33e3e2570f330bbba30cc8f362359ee6942a16cfdefcd24934f16d83c56214c08
7
+ data.tar.gz: be5f27f8a729e0f68c494eafa105c7a2af8a4df3db4ce6fcbe462b3f6a862a53b2b9ba133a48dee74724e79beef1421cbec104c3f6cca73a5cc35d75bd293d5e
@@ -2,40 +2,72 @@
2
2
 
3
3
  Library for Amazon's Flexible Payment Service.
4
4
 
5
- == CONFIGURE
5
+ == INITIALIZE
6
6
 
7
- In config/initializers/amazon_flex_pay.rb, do the following:
7
+ Initialize the gem, probably in config/initializers/amazon_flex_pay.rb (for Rails):
8
8
 
9
9
  AmazonFlexPay.access_key = 'your access key'
10
10
  AmazonFlexPay.secret_key = 'your secret key'
11
- AmazonFlexPay.go_live! # if you're done with the sandbox
11
+ AmazonFlexPay.go_live! if Rails.env.production?
12
12
 
13
- == EXAMPLES
13
+ == CALL
14
14
 
15
- Note that while the examples are shown using Rails methods, the only Rails requirement is ActiveSupport's inflector.
15
+ === AmazonFlexPay::Pipelines
16
16
 
17
- 1. Construct a single-use pipeline for the user. This is where the user will agree to pay a certain amount to a specific recipient.
17
+ Start here. You'll need tokens for API calls. These are generated by users via
18
+ parameterized pipelines.
18
19
 
19
- pipeline = AmazonFlexPay.single_use_pipeline('mypipeline3292', :recipient_token => 'RTOKEN', :transaction_amount => '12.99')
20
- redirect_to pipeline.url('http://example.com/return')
20
+ ==== Example
21
21
 
22
- 2. Then on the return page, take the sender token and run a Pay request:
22
+ Construct a single-use pipeline for the user. This is where the user will agree
23
+ to pay a certain amount to a specific recipient (maybe you?).
23
24
 
24
- begin
25
- response = AmazonFlexPay.pay('12.99', 'USD', 'STOKEN', 'myrequest3292')
26
- flash[:notice] = "Thanks! Your payment is processing."
27
- rescue AmazonFlexPay::API::ErrorResponse => e
28
- flash[:error] = "Sorry, something went wrong."
29
- e.errors.each do |error|
30
- # notify yourself about error.code and error.message
31
- end
32
- end
33
- redirect_to product_path
25
+ redirect_to AmazonFlexPay.single_use_pipeline(
26
+ 'mypipeline3292',
27
+ 'http://example.com/return',
28
+ :recipient_token => 'RTOKEN',
29
+ :transaction_amount => '12.99'
30
+ )
34
31
 
35
- 3. Then wait for a IPN to your registered listening URL and check that it's successful.
32
+ === AmazonFlexPay::API
36
33
 
37
- == LEARN MORE
34
+ With tokens, you can make API calls. Note that results are asynchronous via IPNs.
35
+ Payment and Refund examples are below. You can see all available API methods
36
+ here[https://github.com/kickstarter/amazon_flex_pay/blob/master/lib/amazon_flex_pay/api.rb].
38
37
 
39
- All methods required for integrating API calls and Pipeline requests are found in the AmazonFlexPay module.
38
+ ==== Payment Example
40
39
 
41
- Copyright (c) 2012 Kickstarter, released under the MIT license.
40
+ Once you have a sender token, you can attempt to collect.
41
+
42
+ begin
43
+ response = AmazonFlexPay.pay('12.99', 'USD', 'senderToken123')
44
+ flash[:notice] = "Thanks! Your payment is processing."
45
+ rescue AmazonFlexPay::API::Error => e
46
+ flash[:error] = "Sorry, something went wrong."
47
+ e.errors.each do |error|
48
+ # notify yourself about error.code and error.message
49
+ end
50
+ end
51
+
52
+ redirect_to product_path
53
+
54
+ ==== Refund Example
55
+
56
+ If you would like to give your last order a $10 refund, you can call the refund
57
+ method like this:
58
+
59
+ order = Order.last
60
+
61
+ AmazonFlexPay.refund(
62
+ order.transaction_id,
63
+ order.id,
64
+ caller_description: 'Friends and family discount.',
65
+ refund_amount: { value: 10, currency_code: 'USD' },
66
+ )
67
+
68
+ Note: In this example, we are using the order id as the caller reference. You
69
+ can pass any reference that you like. Also, the 'caller_description' and
70
+ 'refund_amount' options are not required. The default refund amount is the
71
+ original transaction amount.
72
+
73
+ Copyright (c) 2013 Kickstarter, released under the MIT license.
data/Rakefile CHANGED
@@ -17,6 +17,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
17
17
  rdoc.rdoc_dir = 'rdoc'
18
18
  rdoc.title = 'AmazonFlexPay'
19
19
  rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.main = 'README.rdoc'
20
21
  rdoc.rdoc_files.include('README.rdoc')
21
22
  rdoc.rdoc_files.include('lib/**/*.rb')
22
23
  end
@@ -19,7 +19,6 @@ require_relative 'amazon_flex_pay/api'
19
19
  require_relative 'amazon_flex_pay/pipelines'
20
20
 
21
21
  module AmazonFlexPay
22
- VERSION = '0.10.0'
23
22
  API_VERSION = '2011-09-20'
24
23
  PIPELINE_VERSION = '2009-01-09'
25
24
 
@@ -1,5 +1,5 @@
1
1
  module AmazonFlexPay::API #:nodoc:
2
- class BaseRequest < AmazonFlexPay::Model
2
+ class BaseRequest < AmazonFlexPay::Model #:nodoc:
3
3
  def to_url
4
4
  AmazonFlexPay.api_endpoint + '?' + self.to_param
5
5
  end
@@ -27,7 +27,7 @@ module AmazonFlexPay::API #:nodoc:
27
27
  self.class.to_s.split('::').last
28
28
  end
29
29
 
30
- class BaseResponse < AmazonFlexPay::Model
30
+ class BaseResponse < AmazonFlexPay::Model #:nodoc:
31
31
  attribute :request
32
32
  attribute :request_id
33
33
 
@@ -45,7 +45,7 @@ module AmazonFlexPay::API #:nodoc:
45
45
  end
46
46
  end
47
47
 
48
- class ErrorResponse < AmazonFlexPay::Model
48
+ class ErrorResponse < AmazonFlexPay::Model #:nodoc:
49
49
  attribute :request_id
50
50
 
51
51
  def self.from_xml(xml)
@@ -1,5 +1,5 @@
1
1
  module AmazonFlexPay::Pipelines #:nodoc:
2
- class Base < AmazonFlexPay::Model
2
+ class Base < AmazonFlexPay::Model #:nodoc:
3
3
  attribute :'returnURL' # required
4
4
  attribute :caller_reference # required
5
5
  attribute :cobranding_style
@@ -0,0 +1,3 @@
1
+ module AmazonFlexPay
2
+ VERSION = '0.11.0'
3
+ end
@@ -376,12 +376,12 @@ class AmazonFlexPay::APITest < AmazonFlexPay::Test
376
376
 
377
377
  should "catch and parse errors" do
378
378
  net_http_res = stub(:code => 400)
379
- http_response = RestClient::Response.create(error_response, net_http_res, nil)
379
+ request = TestRequest.new(:foo => 'bar')
380
+ http_response = RestClient::Response.create(error_response, net_http_res, nil, request)
380
381
  RestClient.expects(:get).raises(RestClient::BadRequest.new(http_response))
381
382
 
382
383
  error = nil
383
384
  begin
384
- request = TestRequest.new(:foo => 'bar')
385
385
  AmazonFlexPay.send(:submit, request)
386
386
  rescue AmazonFlexPay::API::InvalidParams => e
387
387
  error = e
@@ -397,11 +397,11 @@ class AmazonFlexPay::APITest < AmazonFlexPay::Test
397
397
 
398
398
  ActiveSupport::Notifications.subscribed(callback, "amazon_flex_pay.api") do
399
399
  net_http_res = stub(:code => 400)
400
- http_response = RestClient::Response.create(error_response, net_http_res, nil)
400
+ request = TestRequest.new(:foo => 'bar')
401
+ http_response = RestClient::Response.create(error_response, net_http_res, nil, request)
401
402
  RestClient.expects(:get).raises(RestClient::BadRequest.new(http_response))
402
403
 
403
404
  begin
404
- request = TestRequest.new(:foo => 'bar')
405
405
  AmazonFlexPay.send(:submit, request)
406
406
  rescue AmazonFlexPay::API::Error
407
407
  end
@@ -1,19 +1,19 @@
1
1
  # load the support libraries
2
- require 'test/unit'
3
2
  require 'rubygems'
4
- gem 'rails', '3.2.5'
5
- require 'mocha'
3
+ require 'minitest/autorun'
4
+ require 'minitest/spec'
5
+ require 'minitest/pride'
6
+ require 'mocha/setup'
7
+ require 'shoulda'
6
8
 
7
9
  # load the gem
8
10
  require_relative '../lib/amazon_flex_pay'
9
11
 
10
12
  require_relative 'response_samples'
11
13
 
12
- class AmazonFlexPay::Test < Test::Unit::TestCase
13
- def default_test; end # quiet Test::Unit
14
-
15
- def self.should(name, &block) # very simple syntax
16
- define_method("test_should_#{name.gsub(/[ -]/, '_')}", &block)
14
+ class AmazonFlexPay::Test < MiniTest::Unit::TestCase
15
+ def assert_nothing_raised(*)
16
+ yield
17
17
  end
18
18
  end
19
19
 
metadata CHANGED
@@ -1,78 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon_flex_pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
5
- prerelease:
4
+ version: 0.11.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lance Ivy
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-11 00:00:00.000000000 Z
11
+ date: 2015-03-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rest-client
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.6.1
19
+ version: 1.8.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 1.6.1
26
+ version: 1.8.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: multi_xml
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: 0.5.2
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: 0.5.2
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: activesupport
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: 3.0.14
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: 3.0.14
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: mocha
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 3.2.5
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.2.5
111
+ - !ruby/object:Gem::Dependency
112
+ name: shoulda
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
76
123
  - !ruby/object:Gem::Version
77
124
  version: '0'
78
125
  description: A straight-forward REST API for Amazon's Flexible Payments Services.
@@ -81,6 +128,11 @@ executables: []
81
128
  extensions: []
82
129
  extra_rdoc_files: []
83
130
  files:
131
+ - LICENSE
132
+ - README.rdoc
133
+ - Rakefile
134
+ - lib/amazon_flex_pay.rb
135
+ - lib/amazon_flex_pay/api.rb
84
136
  - lib/amazon_flex_pay/api/base_request.rb
85
137
  - lib/amazon_flex_pay/api/cancel.rb
86
138
  - lib/amazon_flex_pay/api/cancel_token.rb
@@ -98,22 +150,18 @@ files:
98
150
  - lib/amazon_flex_pay/api/reserve.rb
99
151
  - lib/amazon_flex_pay/api/settle.rb
100
152
  - lib/amazon_flex_pay/api/verify_signature.rb
101
- - lib/amazon_flex_pay/api.rb
102
153
  - lib/amazon_flex_pay/data_types.rb
103
154
  - lib/amazon_flex_pay/enumerations.rb
104
155
  - lib/amazon_flex_pay/model.rb
156
+ - lib/amazon_flex_pay/pipelines.rb
105
157
  - lib/amazon_flex_pay/pipelines/base.rb
106
158
  - lib/amazon_flex_pay/pipelines/edit_token.rb
107
159
  - lib/amazon_flex_pay/pipelines/multi_use.rb
108
160
  - lib/amazon_flex_pay/pipelines/recipient.rb
109
161
  - lib/amazon_flex_pay/pipelines/single_use.rb
110
- - lib/amazon_flex_pay/pipelines.rb
111
162
  - lib/amazon_flex_pay/signature.rb
112
163
  - lib/amazon_flex_pay/util.rb
113
- - lib/amazon_flex_pay.rb
114
- - LICENSE
115
- - README.rdoc
116
- - Rakefile
164
+ - lib/amazon_flex_pay/version.rb
117
165
  - test/amazon_flex_pay/api/base_request_test.rb
118
166
  - test/amazon_flex_pay/api_test.rb
119
167
  - test/amazon_flex_pay/data_types_test.rb
@@ -125,27 +173,26 @@ files:
125
173
  - test/test_helper.rb
126
174
  homepage: http://github.com/kickstarter/amazon_flex_pay
127
175
  licenses: []
176
+ metadata: {}
128
177
  post_install_message:
129
178
  rdoc_options: []
130
179
  require_paths:
131
180
  - lib
132
181
  required_ruby_version: !ruby/object:Gem::Requirement
133
- none: false
134
182
  requirements:
135
- - - ! '>='
183
+ - - ">="
136
184
  - !ruby/object:Gem::Version
137
185
  version: '0'
138
186
  required_rubygems_version: !ruby/object:Gem::Requirement
139
- none: false
140
187
  requirements:
141
- - - ! '>='
188
+ - - ">="
142
189
  - !ruby/object:Gem::Version
143
190
  version: '0'
144
191
  requirements: []
145
192
  rubyforge_project:
146
- rubygems_version: 1.8.24
193
+ rubygems_version: 2.2.2
147
194
  signing_key:
148
- specification_version: 3
195
+ specification_version: 4
149
196
  summary: API layer for Amazon FPS
150
197
  test_files:
151
198
  - test/amazon_flex_pay/api/base_request_test.rb
@@ -157,4 +204,3 @@ test_files:
157
204
  - test/amazon_flex_pay/util_test.rb
158
205
  - test/response_samples.rb
159
206
  - test/test_helper.rb
160
- has_rdoc: