atpay_ruby 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -36
- data/assets/button/templates/mailto_body.liquid +1 -8
- data/atpay_ruby.gemspec +3 -3
- data/bin/atpay +1 -1
- data/lib/atpay/button.rb +17 -15
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47522dffa39c809294e5009c68539a3d796ba456
|
4
|
+
data.tar.gz: ef373de8ecb66207ba17ebcfd201004cecf8ac19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7716f02544430ad2d30ee0ccac43e8aaeb24243063ef727df80aaae14e32652d57eef7243527c43a5d2661b728ee698dcb5de595836ee85219e488368e60efd1
|
7
|
+
data.tar.gz: 8b5fefef2362498010f8259b037883ea23aa264661ae43fbe2f96a0148c50aefed39221f177c6a67e4da3d38a4476ddcd10ed5ba23adfaa77b034b9bb80e33fd
|
data/README.md
CHANGED
@@ -79,7 +79,19 @@ credit card @Pay has associated with 'test@example.com':
|
|
79
79
|
|
80
80
|
```ruby
|
81
81
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
82
|
-
|
82
|
+
registration = token.register!
|
83
|
+
|
84
|
+
registration.url
|
85
|
+
=> "https://example.secured.atpay.com/{token_identifier}"
|
86
|
+
|
87
|
+
registration.short
|
88
|
+
=> "atpay://{token_identifier}"
|
89
|
+
|
90
|
+
registration.id
|
91
|
+
=> "{token_identifier}"
|
92
|
+
|
93
|
+
registration.qrcode_url
|
94
|
+
=> "https://dashboard.atpay.com/offers/{token_identifier}.png"
|
83
95
|
```
|
84
96
|
Note: **Targeted** tokens used to be known as **Invoice** tokens. Please use **Targeted** tokens, as **Invoice** tokens will be deprecated.
|
85
97
|
|
@@ -99,6 +111,7 @@ To create a **Bulk Token** for a 30 dollar offer:
|
|
99
111
|
|
100
112
|
```ruby
|
101
113
|
token = AtPay::Token::Bulk.new(session, 30.00)
|
114
|
+
registration = token.register!
|
102
115
|
```
|
103
116
|
|
104
117
|
If a recipient of this token attempts to purchase the product via email but
|
@@ -108,6 +121,8 @@ on that page to enable Customers' two-click email transactions in the future.
|
|
108
121
|
|
109
122
|
## General Token Attributes
|
110
123
|
|
124
|
+
These attributes have to be set before calling the register function on the token.
|
125
|
+
|
111
126
|
### Auth Only
|
112
127
|
|
113
128
|
A **Token** will trigger a funds authorization and a funds capture
|
@@ -117,7 +132,6 @@ want to delay the capture, use the `auth_only!` method to adjust this behavior:
|
|
117
132
|
```ruby
|
118
133
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
119
134
|
token.auth_only!
|
120
|
-
email(token.to_s)
|
121
135
|
```
|
122
136
|
|
123
137
|
### Expiration
|
@@ -157,31 +171,6 @@ token = AtPay::Token::Bulk.new(session, 20.00)
|
|
157
171
|
token.request_custom_data!('gift_message', required: false)
|
158
172
|
```
|
159
173
|
|
160
|
-
#### Requesting the URL of a Hosted Signup Page
|
161
|
-
|
162
|
-
The **Hosted Payment Capture Page** is related directly to a Token. It is
|
163
|
-
created when the token is first received at `transaction@processor.atpay.com` or
|
164
|
-
when the URL is requested from @Pay prior to the first use. To request the URL, you
|
165
|
-
must contact @Pay's server:
|
166
|
-
|
167
|
-
```ruby
|
168
|
-
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
169
|
-
registration = token.register!
|
170
|
-
|
171
|
-
registration.url
|
172
|
-
=> "https://example.secured.atpay.com/{token_identifier}"
|
173
|
-
|
174
|
-
registration.short
|
175
|
-
=> "atpay://{token_identifier}"
|
176
|
-
|
177
|
-
registration.qrcode_url
|
178
|
-
=> "https://dashboard.atpay.com/offers/{token_identifier}.png"
|
179
|
-
```
|
180
|
-
|
181
|
-
NOTE: For high traffic this solution may be inadequate. Contact @Pay for
|
182
|
-
consultation.
|
183
|
-
|
184
|
-
|
185
174
|
#### Item Name
|
186
175
|
|
187
176
|
You can set an **item name** that will display on the **Hosted Payment Capture Page**.
|
@@ -189,7 +178,6 @@ You can set an **item name** that will display on the **Hosted Payment Capture P
|
|
189
178
|
```ruby
|
190
179
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
191
180
|
token.name = "A Cool Offer"
|
192
|
-
email(token.to_s, receipient_address)
|
193
181
|
```
|
194
182
|
|
195
183
|
#### Item Details
|
@@ -200,7 +188,6 @@ You can set an **item details** that will display on the **Hosted Payment Captur
|
|
200
188
|
```ruby
|
201
189
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
202
190
|
token.item_details = "Lorem Ipsum ..."
|
203
|
-
email(token.to_s, receipient_address)
|
204
191
|
```
|
205
192
|
|
206
193
|
|
@@ -214,7 +201,6 @@ of shipping or billing address with `requires_shipping_address=` and
|
|
214
201
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
215
202
|
token.requires_shipping_address = true
|
216
203
|
token.requires_billing_address = true
|
217
|
-
email(token.to_s, receipient_address)
|
218
204
|
```
|
219
205
|
|
220
206
|
### Set Item Quantity
|
@@ -224,7 +210,6 @@ If you are using @Pay's webhook for inventory control, you can specify an initia
|
|
224
210
|
```ruby
|
225
211
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
226
212
|
token.item_quantity = 3
|
227
|
-
email(token.to_s, receipient_address)
|
228
213
|
```
|
229
214
|
|
230
215
|
|
@@ -237,7 +222,6 @@ A Transaction should be Captured only when fulfillment is completed.
|
|
237
222
|
```ruby
|
238
223
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
239
224
|
token.estimated_fulfillment_days = 3
|
240
|
-
email(token.to_s, receipient_address)
|
241
225
|
```
|
242
226
|
|
243
227
|
### Custom User Data
|
@@ -248,7 +232,6 @@ response on processing the token. It has a limit of 2500 characters.
|
|
248
232
|
```ruby
|
249
233
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
250
234
|
token.custom_user_data = 'some-value'
|
251
|
-
email(token.to_s, receipient_address)
|
252
235
|
```
|
253
236
|
|
254
237
|
|
@@ -258,7 +241,8 @@ To create a friendly button that wraps your token:
|
|
258
241
|
|
259
242
|
```ruby
|
260
243
|
token = AtPay::Token::Targeted.new(session, 20.00, 'test@example.com')
|
261
|
-
|
244
|
+
registration = token.register!
|
245
|
+
button = AtPay::Button.new(registration.short, registration.id, 20.00, 'My Company', wrap: true).render
|
262
246
|
email(button, recipient_address)
|
263
247
|
```
|
264
248
|
|
@@ -282,7 +266,7 @@ File.write("code.png", qr.png) # Export PNG
|
|
282
266
|
File.write("code.svg", qr.svg) # Export SVG
|
283
267
|
```
|
284
268
|
|
285
|
-
## Command Line Usage
|
269
|
+
<!-- ## Command Line Usage
|
286
270
|
|
287
271
|
The `atpay` utility generates **Targeted Tokens**, **Bulk Tokens**, and **Email Buttons**
|
288
272
|
that you can embed in outgoing email. Run `atpay help` for more details.
|
@@ -296,4 +280,4 @@ $ atpay token bulk --partner_id=X --private-key=X --amount=20.55 --url="http://e
|
|
296
280
|
|
297
281
|
$ 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"
|
298
282
|
=> <p>...</p>
|
299
|
-
```
|
283
|
+
``` -->
|
@@ -1,8 +1 @@
|
|
1
|
-
|
2
|
-
Send this email order form to confirm your purchase of {{amount}}. If we need more info we will let you know. Thanks!
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
---
|
7
|
-
|
8
|
-
This code secures and validates your transaction:
|
1
|
+
{{merchant_name}} makes it easy to pay. Simply press "send" to confirm your payment of {{amount}}. If we need more info, we will let you know. Thanks!
|
data/atpay_ruby.gemspec
CHANGED
@@ -2,11 +2,11 @@ $:.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.
|
5
|
+
s.version = '0.0.16'
|
6
6
|
s.summary = 'Ruby bindings for the @Pay API'
|
7
7
|
s.description = ""
|
8
|
-
s.authors = ['James Kassemi', 'Isaiah Baca']
|
9
|
-
s.email = ['james@atpay.com', 'isaiah@atpay.com']
|
8
|
+
s.authors = ['James Kassemi', 'Isaiah Baca', 'Tyler Thompson']
|
9
|
+
s.email = ['james@atpay.com', 'isaiah@atpay.com', 'tyler@atpay.com']
|
10
10
|
s.homepage = 'https://atpay.com'
|
11
11
|
s.license = 'MIT'
|
12
12
|
|
data/bin/atpay
CHANGED
@@ -49,7 +49,7 @@ module AtPay
|
|
49
49
|
option :merchant, type: :string, required: true, desc: "Merchant name"
|
50
50
|
def generic
|
51
51
|
token = $stdin.read
|
52
|
-
puts AtPay::Button.new(token, options[:amount], options[:merchant]).render
|
52
|
+
puts AtPay::Button.new(token, token, options[:amount], options[:merchant]).render
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
data/lib/atpay/button.rb
CHANGED
@@ -11,23 +11,24 @@ module AtPay
|
|
11
11
|
background_color: '#6dbe45',
|
12
12
|
foreground_color: '#ffffff',
|
13
13
|
image: 'https://www.atpay.com/wp-content/themes/atpay/images/bttn_cart.png',
|
14
|
-
processor: ENV['ATPAY_PAYMENT_ADDRESS'] || '
|
14
|
+
processor: ENV['ATPAY_PAYMENT_ADDRESS'] || 'payments.atpay.com',
|
15
15
|
templates: File.join(File.dirname(__FILE__), '..', '..', 'assets', 'button', 'templates'),
|
16
16
|
analytic_url: nil,
|
17
17
|
wrap: false,
|
18
18
|
wrap_text: 'Made for Mobile'
|
19
19
|
}
|
20
20
|
|
21
|
-
def initialize(token, amount, merchant_name, options={})
|
22
|
-
@token
|
23
|
-
@
|
24
|
-
@
|
25
|
-
@
|
26
|
-
@options
|
21
|
+
def initialize(token, short_token, amount, merchant_name, options={})
|
22
|
+
@token = token
|
23
|
+
@short_token = short_token
|
24
|
+
@amount = amount
|
25
|
+
@merchant_name = merchant_name
|
26
|
+
@options = OPTIONS.merge(options)
|
27
|
+
@options[:image] = nil if @options[:image] == ''
|
27
28
|
end
|
28
29
|
|
29
30
|
def default_mailto
|
30
|
-
"mailto:#{
|
31
|
+
"mailto:#{mailto_processor}?subject=#{mailto_subject}&body=#{mailto_body}"
|
31
32
|
end
|
32
33
|
|
33
34
|
def render(args={})
|
@@ -70,15 +71,15 @@ module AtPay
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def mailto_subject
|
73
|
-
URI.encode(@
|
74
|
+
URI.encode("Press send to pay #{amount} to #{@merchant_name} ")
|
74
75
|
end
|
75
76
|
|
76
77
|
def yahoo_mailto
|
77
|
-
"http://compose.mail.yahoo.com/?to=#{
|
78
|
+
"http://compose.mail.yahoo.com/?to=#{mailto_processor}&subject=#{mailto_subject}&body=#{mailto_body}"
|
78
79
|
end
|
79
80
|
|
80
81
|
def outlook_mailto
|
81
|
-
"https://www.hotmail.com/secure/start?action=compose&to=#{
|
82
|
+
"https://www.hotmail.com/secure/start?action=compose&to=#{mailto_processor}&subject=#{mailto_subject}&body=#{mailto_body}"
|
82
83
|
end
|
83
84
|
|
84
85
|
# Load the mailto body template from the specified location
|
@@ -86,17 +87,18 @@ module AtPay
|
|
86
87
|
Liquid::Template.parse(File.read(File.join(@options[:templates], "mailto_body.liquid")))
|
87
88
|
end
|
88
89
|
|
90
|
+
def mailto_processor
|
91
|
+
"payment-id-#{@short_token}@#{@options[:processor]}"
|
92
|
+
end
|
93
|
+
|
89
94
|
# Parse the mailto body, this is where we inject the token, merchant_name and amount values we received in
|
90
95
|
# the options.
|
91
96
|
#
|
92
97
|
# @return [String]
|
93
98
|
def mailto_body
|
94
|
-
|
99
|
+
URI.encode(mailto_body_template.render({
|
95
100
|
'amount' => amount,
|
96
101
|
'merchant_name' => @merchant_name}))
|
97
|
-
part_b = CGI.escape(token)
|
98
|
-
part_z = "#{part_a}%0A%0A#{part_b}"
|
99
|
-
return part_z
|
100
102
|
end
|
101
103
|
|
102
104
|
# This is processed as liquid - in the future we can allow overwriting the
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atpay_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Kassemi
|
8
8
|
- Isaiah Baca
|
9
|
+
- Tyler Thompson
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2014-
|
13
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rbnacl-libsodium
|
@@ -127,6 +128,7 @@ description: ''
|
|
127
128
|
email:
|
128
129
|
- james@atpay.com
|
129
130
|
- isaiah@atpay.com
|
131
|
+
- tyler@atpay.com
|
130
132
|
executables:
|
131
133
|
- atpay
|
132
134
|
extensions: []
|