atpay_ruby 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7aabb3c212ebc71b0d6117fd03613932e3fdcf95
4
- data.tar.gz: 61a5bdf7c452b597c661a014ead7d05b0224ae05
3
+ metadata.gz: ecb0aa51eec280c6ff9882cb459a0d8368a17198
4
+ data.tar.gz: bea46f16c8c30d58f9f77080763606582da9f9dd
5
5
  SHA512:
6
- metadata.gz: 866fcd4e849c8dede243c29cfac999accc57cf10e58f1fe0d8af571568bbcc08bf501997c01d5649e48151187d2164f51210e13ee0f162edeb10f04c6b39cfb3
7
- data.tar.gz: 2a6cc9ca6be9c8b862f56a86f78902cc40639eee5115093c05c653010afd514ce862121c247a8c281bdf307dc9fccd44122c499d892c5f17149f6da30418b2ef
6
+ metadata.gz: 49e4843cb6fed21a8a5fb5a850274c2b115fc86e5f2ec68de850bfd999e8968034768773f2ad8c8536f84db35cf7cb9615da533dee78b40cdb841a5b6ca81c22
7
+ data.tar.gz: 357a2dc201c26e0a1a731f5a2a491dfeeab0e281fe908c43975ff88afb9f4efa05b7d3c864eccfd8ff45c51154bd5e7bc41f20ad946d78af0e923fd9cb570103
data/README.md CHANGED
@@ -59,8 +59,8 @@ or a product sales offer, for instance). When a **Token** is sent to
59
59
  `transaction@processor.atpay.com` from an address associated with a **Payment Method**,
60
60
  it will create a **Transaction**.
61
61
 
62
- There are two classes of **Token** @Pay processes - the **Invoice Token**, which should
63
- be used for sending invoices or transactions applicable to a single
62
+ There are two classes of **Token** @Pay processes - the **Targeted Token**, which should
63
+ be used for sending transactions applicable to a single
64
64
  recipient, and the **Bulk Token**, which is suitable for email marketing lists.
65
65
 
66
66
  An **Email Button** is a link embedded in an email message. When activated, this link
@@ -69,19 +69,20 @@ prefilled. By default this email contains one of the two token types. Clicking
69
69
  'Send' delivers the email to @Pay and triggers **Transaction** processing. The sender will
70
70
  receive a receipt or further instructions.
71
71
 
72
- ## Invoice Tokens
72
+ ## Targeted Tokens
73
73
 
74
- An **Invoice** token is ideal for sending invoices or for transactions that are
75
- only applicable to a single recipient (shopping cart abandonment, specialized
76
- offers, etc).
74
+ A **targeted** token is ideal for sending invoices or for transactions that are
75
+ only applicable to a single recipient (specialized offers, etc).
77
76
 
78
77
  The following creates a token for a 20 dollar transaction specifically for the
79
78
  credit card @Pay has associated with 'test@example.com':
80
79
 
81
80
  ```ruby
82
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
81
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
83
82
  puts token.to_s
84
83
  ```
84
+ *Note: **Targeted** tokens used to be known as **Invoice** tokens. Please use **Targeted** tokens, as **Invoice** tokens will be deprecated.*
85
+
85
86
 
86
87
  ## Bulk Tokens
87
88
 
@@ -114,7 +115,7 @@ simultaneously. If you're shipping a physical good, or for some other reason
114
115
  want to delay the capture, use the `auth_only!` method to adjust this behavior:
115
116
 
116
117
  ```ruby
117
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
118
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
118
119
  token.auth_only!
119
120
  email(token.to_s)
120
121
  ```
@@ -126,7 +127,7 @@ after the expiration results in a polite error message being sent to the sender.
126
127
  To adjust the expiration:
127
128
 
128
129
  ```ruby
129
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
130
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
130
131
  token.expires_in_seconds = 60 * 60 * 24 * 7 # 1 week
131
132
  ```
132
133
 
@@ -141,7 +142,7 @@ your own site (Enable @Pay Card tokenization on your own page with the
141
142
  URL:
142
143
 
143
144
  ```ruby
144
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
145
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
145
146
  token.url = 'https://example.com/invoices/123'
146
147
  ```
147
148
 
@@ -164,7 +165,7 @@ when the URL is requested from @Pay prior to the first use. To request the URL,
164
165
  must contact @Pay's server:
165
166
 
166
167
  ```ruby
167
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
168
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
168
169
  registration = token.register!
169
170
 
170
171
  registration.url
@@ -186,7 +187,7 @@ consultation.
186
187
  You can set an **item name** that will display on the **Hosted Payment Capture Page**.
187
188
 
188
189
  ```ruby
189
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
190
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
190
191
  token.name = "A Cool Offer"
191
192
  email(token.to_s, receipient_address)
192
193
  ```
@@ -197,7 +198,7 @@ You can set an **item details** that will display on the **Hosted Payment Captur
197
198
 
198
199
 
199
200
  ```ruby
200
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
201
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
201
202
  token.item_details = "Lorem Ipsum ..."
202
203
  email(token.to_s, receipient_address)
203
204
  ```
@@ -210,7 +211,7 @@ of shipping or billing address with `requires_shipping_address=` and
210
211
  `requires_billing_address=`:
211
212
 
212
213
  ```
213
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
214
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
214
215
  token.requires_shipping_address = true
215
216
  token.requires_billing_address = true
216
217
  email(token.to_s, receipient_address)
@@ -221,7 +222,7 @@ email(token.to_s, receipient_address)
221
222
  If you are using @Pay's webhook for inventory control, you can specify an initial quantity for the offer you are creating.
222
223
 
223
224
  ```ruby
224
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
225
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
225
226
  token.item_quantity = 3
226
227
  email(token.to_s, receipient_address)
227
228
  ```
@@ -234,7 +235,7 @@ email(token.to_s, receipient_address)
234
235
  A Transaction should be Captured only when fulfillment is completed.
235
236
 
236
237
  ```ruby
237
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
238
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
238
239
  token.estimated_fulfillment_days = 3
239
240
  email(token.to_s, receipient_address)
240
241
  ```
@@ -245,7 +246,7 @@ email(token.to_s, receipient_address)
245
246
  response on processing the token. It has a limit of 2500 characters.
246
247
 
247
248
  ```ruby
248
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
249
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
249
250
  token.custom_user_data = 'some-value'
250
251
  email(token.to_s, receipient_address)
251
252
  ```
@@ -256,7 +257,7 @@ email(token.to_s, receipient_address)
256
257
  To create a friendly button that wraps your token:
257
258
 
258
259
  ```ruby
259
- token = AtPay::Token::Invoice.new(session, 20.00, 'test@example.com')
260
+ token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
260
261
  button = AtPay::Button.new(token.to_s, 20.00, 'My Company', wrap: true).render
261
262
  email(button, recipient_address)
262
263
  ```
@@ -283,16 +284,16 @@ File.write("code.svg", qr.svg) # Export SVG
283
284
 
284
285
  ## Command Line Usage
285
286
 
286
- The `atpay` utility generates **Invoice Tokens**, **Bulk Tokens**, and **Email Buttons**
287
+ The `atpay` utility generates **Targeted Tokens**, **Bulk Tokens**, and **Email Buttons**
287
288
  that you can embed in outgoing email. Run `atpay help` for more details.
288
289
 
289
290
  ```bash
290
- $ atpay token invoice --partner_id=X --private_key=X --amount=20.55 --target=test@example.com --user-data=sku-123
291
+ $ atpay token targeted --partner_id=X --private_key=X --amount=20.55 --target=test@example.com --user-data=sku-123
291
292
  => @...@
292
293
 
293
294
  $ atpay token bulk --partner_id=X --private-key=X --amount=20.55 --url="http://example.com/product"
294
295
  => @...@
295
296
 
296
- $ atpay token invoice --partner_id=X --private_key=X --amount=20.55 --target=test@example.com --user-data=sku-123 | atpay button generic --amount=20.55 --merchant="Mom's"
297
+ $ atpay token targeted --partner_id=X --private_key=X --amount=20.55 --target=test@example.com --user-data=sku-123 | atpay button generic --amount=20.55 --merchant="Mom's"
297
298
  => <p>...</p>
298
299
  ```
data/atpay_ruby.gemspec CHANGED
@@ -2,7 +2,7 @@ $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'atpay_ruby'
5
- s.version = '0.0.11'
5
+ s.version = '0.0.12'
6
6
  s.summary = 'Ruby bindings for the @Pay API'
7
7
  s.description = ""
8
8
  s.authors = ['James Kassemi', 'Isaiah Baca']
data/bin/atpay CHANGED
@@ -21,6 +21,14 @@ module AtPay
21
21
  puts AtPay::Token::Invoice.new(session, options[:amount], options[:email], options[:user_data]).to_s
22
22
  end
23
23
 
24
+ desc 'targeted', 'Generate an targeted token'
25
+ option :amount, type: :numeric, required: true, desc: "Dollar amount to process"
26
+ option :email, type: :string, required: true, desc: "Email address expected to complete the transaction"
27
+ option :user_data, default: nil, desc: "Additional data to append to transaction details"
28
+ def targeted
29
+ puts AtPay::Token::Targeted.new(session, options[:amount], options[:email], options[:user_data]).to_s
30
+ end
31
+
24
32
  desc 'bulk', 'Generate a bulk token'
25
33
  option :amount, type: :numeric, required: true, desc: "Dollar amount to process"
26
34
  option :user_data, default: '', desc: "Additional data to append to transaction details"
data/lib/atpay.rb CHANGED
@@ -5,6 +5,7 @@ require 'atpay/error'
5
5
  require 'atpay/button'
6
6
  require 'atpay/token/invoice'
7
7
  require 'atpay/token/bulk'
8
+ require 'atpay/token/targeted'
8
9
  require 'atpay/hook'
9
10
  require 'atpay/railtie' if defined?(Rails)
10
11
  require 'base64'
@@ -0,0 +1,17 @@
1
+ require 'atpay/token/core'
2
+ require 'atpay/token/encoder'
3
+
4
+ module AtPay
5
+ module Token
6
+ class Targeted < Core
7
+ def initialize(session, amount, email_address, custom_data={})
8
+ super
9
+
10
+ self.session = session
11
+ self.amount = amount
12
+ self.email_address = email_address
13
+ self.user_data.custom_data = custom_data
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ require 'atpay/session'
3
+ require 'atpay/token/targeted'
4
+
5
+ describe AtPay::Token::Targeted do
6
+ let(:partner_id) { 1 }
7
+ let(:private_key) { 'xx5okSjkqJu30biXEFI/y05B68JRCr7ReSdufmtrILY=' }
8
+ let(:public_key) { 'gOVRRMKRwCHD0nkGiQ1/1EKcSUjO/einHq7MZ/AMkzQ=' }
9
+ let(:atpay_public_key) { 'x3iJge6NCMx9cYqxoJHmFgUryVyXqCwapGapFURYh18=' }
10
+ let(:atpay_private_key) { '' }
11
+
12
+ let(:session) { AtPay::Session.new(partner_id, public_key, private_key) }
13
+ let(:amount) { 20.0 }
14
+ let(:email_address) { 'http://example.com/' }
15
+ let(:user_data) { 'sku-123' }
16
+
17
+ it 'creates a new token without exception' do
18
+ AtPay::Token::Targeted.new(session, amount, email_address, user_data).to_s
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atpay_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Kassemi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-27 00:00:00.000000000 Z
12
+ date: 2014-09-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rbnacl-libsodium
@@ -158,6 +158,7 @@ files:
158
158
  - lib/atpay/token/encoder.rb
159
159
  - lib/atpay/token/invoice.rb
160
160
  - lib/atpay/token/registration.rb
161
+ - lib/atpay/token/targeted.rb
161
162
  - spec/button/qr_code_spec.rb
162
163
  - spec/button_spec.rb
163
164
  - spec/hook_spec.rb
@@ -167,6 +168,7 @@ files:
167
168
  - spec/token/encoder_spec.rb
168
169
  - spec/token/invoice_spec.rb
169
170
  - spec/token/registration.rb
171
+ - spec/token/targeted_spec.rb
170
172
  homepage: https://atpay.com
171
173
  licenses:
172
174
  - MIT
@@ -201,3 +203,4 @@ test_files:
201
203
  - spec/token/encoder_spec.rb
202
204
  - spec/token/invoice_spec.rb
203
205
  - spec/token/registration.rb
206
+ - spec/token/targeted_spec.rb