alpha_card 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +24 -6
- data/alpha_card.gemspec +4 -4
- data/lib/alpha_card.rb +8 -17
- data/lib/alpha_card/order.rb +2 -1
- data/lib/alpha_card/sale.rb +2 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ca151fb5ff57a0e885ee58031cc037b36bff410
|
4
|
+
data.tar.gz: a2c4814fd862a98e1cc26b0b0bdac870368e5e15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c36aeb545f3ee57bb5477d6bc09669edda527e5335da16e6c3a5ba09a631be81502694c0906d6270e860375ac1228dac145947f42544e54a2a50abb5517af85
|
7
|
+
data.tar.gz: 516c6219c3ca1ad01646f3052f0bcb7b8849f00e77f68a7aefd2931d69b99703a80fce250e2686c3fbbdd10275b069c807c4e36a3f34dceedee8edf9e95660de
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# Ruby lib for creating payments with AlphaCard DirectPost API
|
2
2
|
[](http://badge.fury.io/rb/alpha_card)
|
3
|
+
[](https://gemnasium.com/budev/alpha_card)
|
3
4
|
|
4
5
|
This gem can help your ruby/rails application to integrate with AlphaCard service.
|
5
6
|
|
6
|
-
AlphaCard:
|
7
|
+
AlphaCard Services:
|
7
8
|
http://www.alphacardservices.com/
|
8
9
|
|
9
10
|
Payment Gateway Integration Portal:
|
@@ -33,7 +34,7 @@ gem install alpha_card
|
|
33
34
|
Dependencies required:
|
34
35
|
|
35
36
|
* ruby >= 1.9.3
|
36
|
-
*
|
37
|
+
* rest_client
|
37
38
|
* virtus (for nice OOP objects of AlphaCard)
|
38
39
|
|
39
40
|
## Objects
|
@@ -161,7 +162,7 @@ sale = AlphaCard::Sale.new({})
|
|
161
162
|
sale.create(order, account)
|
162
163
|
```
|
163
164
|
|
164
|
-
Method
|
165
|
+
Method `create` returns _true_ if sale was created successfully and raise an `AlphaCardError`
|
165
166
|
exception if some of the fields is invalid.
|
166
167
|
|
167
168
|
## Example of usage
|
@@ -169,6 +170,8 @@ exception if some of the fields is invalid.
|
|
169
170
|
Create AlphaCard sale:
|
170
171
|
|
171
172
|
```ruby
|
173
|
+
require 'alpha_card'
|
174
|
+
|
172
175
|
def create_payment
|
173
176
|
account = AlphaCard::Account.new('demo', 'password')
|
174
177
|
|
@@ -187,13 +190,28 @@ rescue AlphaCard::AlphaCardError => e
|
|
187
190
|
end
|
188
191
|
```
|
189
192
|
|
190
|
-
Billing and shipping is an _optional_ parameters and can be not specified.
|
193
|
+
`Billing` and `shipping` is an _optional_ parameters and can be not specified.
|
191
194
|
|
192
|
-
|
193
|
-
_Direct Post API_ -> _Documentation_ -> _Transaction Variables_
|
195
|
+
_Note_: take a look to the `amount` of the Order. It's format must be 'xx.xx'. All information about formats
|
196
|
+
can be found on _Alpha Card Payment Gateway Integration Portal_ -> _Direct Post API_ -> _Documentation_ -> _Transaction Variables_
|
194
197
|
|
195
198
|
Naming convention of attributes (such as "ccexp" or "orderid") was saved due to compatibility with AlphaCard API.
|
196
199
|
|
200
|
+
To raise some exceptions do the next:
|
201
|
+
|
202
|
+
* to cause a declined message, pass an amount less than 1.00;
|
203
|
+
* to trigger a fatal error message, pass an invalid card number;
|
204
|
+
* to simulate an AVS match, pass 888 in the address1 field, 77777 for zip;
|
205
|
+
* to simulate a CVV match, pass 999 in the cvv field.
|
206
|
+
|
207
|
+
Example of exception:
|
208
|
+
|
209
|
+
```ruby
|
210
|
+
...
|
211
|
+
2.1.1 :019 > sale.create(order, account)
|
212
|
+
AlphaCard::AlphaCardError: Invalid Credit Card Number REFID:127145481
|
213
|
+
```
|
214
|
+
|
197
215
|
## Copyright
|
198
216
|
|
199
217
|
Copyright (c) 2014 Nikita Bulaj (bulajnikita@gmail.com).
|
data/alpha_card.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = 'alpha_card'
|
3
|
-
gem.version = '0.1.
|
3
|
+
gem.version = '0.1.3'
|
4
4
|
gem.date = '2014-06-25'
|
5
|
-
gem.summary =
|
6
|
-
gem.description =
|
7
|
-
gem.authors = [
|
5
|
+
gem.summary = 'Alpha Card Services DirectPost API for Ruby'
|
6
|
+
gem.description = 'Gem for creating sales with Alpha Card Services DirectPost API'
|
7
|
+
gem.authors = ['Nikita Bulaj']
|
8
8
|
gem.email = 'bulajnikita@gmail.com'
|
9
9
|
gem.require_paths = ["lib"]
|
10
10
|
gem.files = `git ls-files`.split($/)
|
data/lib/alpha_card.rb
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
-
require 'curb'
|
2
1
|
require 'yaml'
|
3
2
|
require 'virtus'
|
4
3
|
require 'rack'
|
4
|
+
require 'rest_client'
|
5
5
|
|
6
6
|
require 'alpha_card/object'
|
7
|
-
|
7
|
+
require 'alpha_card/alpha_card_object'
|
8
8
|
require 'alpha_card/alpha_card_response'
|
9
9
|
require 'alpha_card/alpha_card_error'
|
10
|
-
require 'alpha_card/alpha_card_object'
|
11
10
|
|
12
11
|
require 'alpha_card/account'
|
12
|
+
require 'alpha_card/shipping'
|
13
13
|
require 'alpha_card/billing'
|
14
14
|
require 'alpha_card/order'
|
15
15
|
require 'alpha_card/sale'
|
16
|
-
require 'alpha_card/shipping'
|
17
16
|
|
18
17
|
module AlphaCard
|
19
18
|
@api_base = 'https://secure.alphacardgateway.com/api/transact.php'
|
@@ -24,25 +23,17 @@ module AlphaCard
|
|
24
23
|
attr_accessor :api_base
|
25
24
|
end
|
26
25
|
|
27
|
-
def self.request(params, account)
|
26
|
+
def self.request(params = {}, account)
|
28
27
|
unless account.filled?
|
29
28
|
raise AlphaCardError.new('You must set credentials to create the sale!')
|
30
29
|
end
|
31
30
|
|
32
|
-
|
33
|
-
|
34
|
-
curl = Curl::Easy.new(@api_base)
|
35
|
-
curl.connect_timeout = 15
|
36
|
-
curl.timeout = 15
|
37
|
-
curl.header_in_body = false
|
38
|
-
curl.ssl_verify_peer = false
|
39
|
-
curl.post_body = [auth_params, params].join('&')
|
40
|
-
curl.perform
|
31
|
+
response = RestClient.post(@api_base, params.merge(account.attributes))
|
41
32
|
|
42
|
-
|
43
|
-
handle_errors(
|
33
|
+
alpha_card_response = AlphaCardResponse.new(response.to_str)
|
34
|
+
handle_errors(alpha_card_response)
|
44
35
|
|
45
|
-
|
36
|
+
alpha_card_response
|
46
37
|
end
|
47
38
|
|
48
39
|
private
|
data/lib/alpha_card/order.rb
CHANGED
data/lib/alpha_card/sale.rb
CHANGED
@@ -12,12 +12,8 @@ module AlphaCard
|
|
12
12
|
raise Exception.new("No #{attr.to_s} information provided") if self.send(attr.to_s).blank?
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
billing_query = order.billing.try(:to_query)
|
18
|
-
shipping_query = order.shipping.try(:to_query)
|
19
|
-
|
20
|
-
params = [order_query, billing_query, sale_query, shipping_query].reject(&:blank?).join('&')
|
15
|
+
params = self.filled_attributes || {}
|
16
|
+
[order, order.billing, order.shipping].compact.each { |obj| params.merge!(obj.try(:filled_attributes)) }
|
21
17
|
|
22
18
|
AlphaCard.request(params, account).success?
|
23
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alpha_card
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Bulaj
|
@@ -10,7 +10,7 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: Gem for
|
13
|
+
description: Gem for creating sales with Alpha Card Services DirectPost API
|
14
14
|
email: bulajnikita@gmail.com
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
@@ -54,5 +54,5 @@ rubyforge_project:
|
|
54
54
|
rubygems_version: 2.2.2
|
55
55
|
signing_key:
|
56
56
|
specification_version: 4
|
57
|
-
summary: Alpha Card DirectPost API for Ruby
|
57
|
+
summary: Alpha Card Services DirectPost API for Ruby
|
58
58
|
test_files: []
|