alpha_card 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +13 -0
- data/Gemfile +1 -1
- data/README.md +22 -28
- data/alpha_card.gemspec +2 -2
- data/lib/alpha_card/data/codes.yml +4 -4
- data/lib/alpha_card/order.rb +1 -0
- data/lib/alpha_card/sale.rb +1 -1
- data/spec/alpha_card/alpha_card_spec.rb +8 -0
- data/spec/spec_helper.rb +2 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7e8e249cdf49bffd9bbda0825018bc6406e0c52
|
4
|
+
data.tar.gz: 6241892718864310e112ec3c39eb6cdc7efac26f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d604d1ca794b016047390a7bd9915a54ae3ef4d4b25d4514808ac28f109a5f2aeb9e328793f58df4b706ddc7b3557800c15906df9893e6d23d68687a6beec605
|
7
|
+
data.tar.gz: 7a46b389c6aaeec686a189e5add88b864929ffe1be3169fa5f5e40c285da37efb5e593d8635367ce722329d12dc24d5781aa33970717ca6dc6d0c9c0dd35e65b
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
# Ruby lib for creating payments with AlphaCard DirectPost API
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/alpha_card.svg)](http://badge.fury.io/rb/alpha_card)
|
3
3
|
[![Dependency Status](https://gemnasium.com/budev/alpha_card.png)](https://gemnasium.com/budev/alpha_card)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/budev/alpha_card.png)](https://codeclimate.com/github/budev/alpha_card)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/budev/alpha_card/badge.png?branch=master)](https://coveralls.io/r/budev/alpha_card?branch=master)
|
6
|
+
[![Build Status](https://travis-ci.org/budev/alpha_card.svg?branch=master)](https://travis-ci.org/budev/alpha_card)
|
4
7
|
|
5
|
-
This gem can help your
|
8
|
+
This gem can help your Ruby or Ruby on Rails application to integrate with Alpha Card Service, Inc.
|
6
9
|
|
7
|
-
|
10
|
+
Alpha Card Services:
|
8
11
|
http://www.alphacardservices.com/
|
9
12
|
|
10
13
|
Payment Gateway Integration Portal:
|
@@ -19,13 +22,13 @@ If using bundler, first add 'alpha_card' to your Gemfile:
|
|
19
22
|
gem "alpha_card"
|
20
23
|
```
|
21
24
|
|
22
|
-
And run
|
25
|
+
And run:
|
23
26
|
|
24
27
|
```sh
|
25
28
|
bundle install
|
26
29
|
```
|
27
30
|
|
28
|
-
Otherwise simply
|
31
|
+
Otherwise simply install the gem:
|
29
32
|
|
30
33
|
```sh
|
31
34
|
gem install alpha_card
|
@@ -33,13 +36,14 @@ gem install alpha_card
|
|
33
36
|
|
34
37
|
Dependencies required:
|
35
38
|
|
36
|
-
* ruby >= 1.9.3
|
37
|
-
*
|
38
|
-
*
|
39
|
+
* ruby >= 1.9.3;
|
40
|
+
* rack;
|
41
|
+
* rest_client;
|
42
|
+
* virtus (for nice OOP objects of AlphaCard).
|
39
43
|
|
40
44
|
## Objects
|
41
45
|
|
42
|
-
|
46
|
+
Alpha Card sales operates with next 5 objects:
|
43
47
|
|
44
48
|
* Account
|
45
49
|
* Order
|
@@ -49,7 +53,8 @@ To create sale with Alpha Card Services you must operate with 5 objects:
|
|
49
53
|
|
50
54
|
### Account
|
51
55
|
|
52
|
-
|
56
|
+
Account represents credentials data to access Alpha Card Services, Inc.
|
57
|
+
All sales will be created for the specified account.
|
53
58
|
|
54
59
|
_Required fields_:
|
55
60
|
|
@@ -64,16 +69,14 @@ AlphaCard::Account.new(username, password)
|
|
64
69
|
|
65
70
|
### Order
|
66
71
|
|
67
|
-
|
72
|
+
Order represents itself.
|
68
73
|
|
69
|
-
|
74
|
+
_Unnecessary fields_:
|
70
75
|
|
71
76
|
* orderid : String
|
72
77
|
* orderdescription : String
|
73
|
-
|
74
|
-
_Unnecessary fields_:
|
75
|
-
|
76
78
|
* ponumber : String
|
79
|
+
* tax : String
|
77
80
|
* billing : AlphaCard::Billing
|
78
81
|
* shipping : AlphaCard::Shipping
|
79
82
|
|
@@ -83,14 +86,6 @@ _Constructor_:
|
|
83
86
|
AlphaCard::Order.new({field_name: value, ...})
|
84
87
|
```
|
85
88
|
|
86
|
-
Set up billing or shipping:
|
87
|
-
|
88
|
-
```ruby
|
89
|
-
order = AlphaCard::Order.new({})
|
90
|
-
order.shipping = AlphaCard::Shipping.new({})
|
91
|
-
order.billing = AlphaCard::Billing.new({})
|
92
|
-
```
|
93
|
-
|
94
89
|
### Billing
|
95
90
|
|
96
91
|
Specify Billing information for Order.
|
@@ -137,7 +132,7 @@ AlphaCard::Shipping.new({field_name: value, ...})
|
|
137
132
|
|
138
133
|
### Sale
|
139
134
|
|
140
|
-
|
135
|
+
Sale is the main object of the Alpha Card Services. It processes fees associated with credit cards.
|
141
136
|
|
142
137
|
_Required fields_:
|
143
138
|
|
@@ -154,7 +149,7 @@ _Constructor_:
|
|
154
149
|
AlphaCard::Sale.new({field_name: value, ...})
|
155
150
|
```
|
156
151
|
|
157
|
-
To
|
152
|
+
To create the payment you must call *create(_alpha_card_order_, _alpha_card_account_)* method:
|
158
153
|
|
159
154
|
```ruby
|
160
155
|
...
|
@@ -162,8 +157,7 @@ sale = AlphaCard::Sale.new({})
|
|
162
157
|
sale.create(order, account)
|
163
158
|
```
|
164
159
|
|
165
|
-
|
166
|
-
exception if some of the fields is invalid.
|
160
|
+
This method returns _true_ if sale was created successfully and raise an `AlphaCardError` exception if some of the fields is invalid.
|
167
161
|
|
168
162
|
## Example of usage
|
169
163
|
|
@@ -192,10 +186,10 @@ end
|
|
192
186
|
|
193
187
|
`Billing` and `shipping` is an _optional_ parameters and can be not specified.
|
194
188
|
|
195
|
-
_Note_: take a look
|
189
|
+
_Note_: take a look at the `amount` of the Order. It's format must be 'xx.xx'. All information about variables formats
|
196
190
|
can be found on _Alpha Card Payment Gateway Integration Portal_ -> _Direct Post API_ -> _Documentation_ -> _Transaction Variables_
|
197
191
|
|
198
|
-
Naming convention of attributes (such as "ccexp" or "orderid") was saved
|
192
|
+
Naming convention of attributes (such as "ccexp" or "orderid") was saved for compatibility with AlphaCard API.
|
199
193
|
|
200
194
|
To raise some exceptions do the next:
|
201
195
|
|
data/alpha_card.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = 'alpha_card'
|
3
|
-
gem.version = '0.1.
|
4
|
-
gem.date = '2014-06-
|
3
|
+
gem.version = '0.1.6'
|
4
|
+
gem.date = '2014-06-26'
|
5
5
|
gem.summary = 'Alpha Card Services DirectPost API for Ruby'
|
6
6
|
gem.description = 'Gem for creating sales with Alpha Card Services DirectPost API'
|
7
7
|
gem.authors = ['Nikita Bulaj']
|
@@ -9,7 +9,7 @@
|
|
9
9
|
"CALL TK": 'Refer to TeleCheck.'
|
10
10
|
"CALL WC": 'Refer to Worldcheck.'
|
11
11
|
"CALL XXXXXXXXXX": 'Call indicated number.'
|
12
|
-
"ISSUER UNAVAIL
|
12
|
+
"ISSUER UNAVAIL": 'NDC cannot contact issuing bank for authorization.'
|
13
13
|
"INVLD MERCH ID": 'Invalid Merchant ID.'
|
14
14
|
"PIC UP": 'Authorization declined.'
|
15
15
|
"DECLINE": 'Authorization declined.'
|
@@ -47,7 +47,7 @@
|
|
47
47
|
"DB UNAVAIL 04": 'NDC GATEWAY cannot contact EFT network or EFT Group ID is incorrect.'
|
48
48
|
"UNAUTH USER": 'Merchant is not set up for debit on NDC Merchant Master File.'
|
49
49
|
"INVALID CARD": 'Debit card not on issuer file.'
|
50
|
-
"DB ISSUER UNAVAIL
|
50
|
+
"DB ISSUER UNAVAIL": 'EFT network cannot contact issuer'
|
51
51
|
"INVALID POS CARD": 'Card is not eligible for POS.'
|
52
52
|
"ACCT TYPE INVLD": 'Type of account entered cannot be accessed (checking, savings, etc.)'
|
53
53
|
"INVALID PREFIX": 'No sharing arrangement for this card.'
|
@@ -55,8 +55,8 @@
|
|
55
55
|
"VERIFY XXXXXXXXXX": 'Match on SCAN file. XXXXXXXXXX is routing/transit number on the negative file.'
|
56
56
|
"INVALID LIC": 'The license or ID number entered during a check authorization transaction is incorrect.'
|
57
57
|
"INVALID STATE CD": 'State code entered is incorrect.'
|
58
|
-
"EDC UNAVAILABLE
|
58
|
+
"EDC UNAVAILABLE": 'EDC application down, try later.'
|
59
59
|
"DB UNAVAIL 01": 'Problem at NDC routing transaction.'
|
60
|
-
"SCAN UNAVAILABLE
|
60
|
+
"SCAN UNAVAILABLE": 'SCAN application is down, try later.'
|
61
61
|
"EXCEEDS MAX AMT": 'Exceeds withdrawal amount limit.'
|
62
62
|
"EXCEEDS MAX USES": 'Exceeds withdrawal frequency limit'
|
data/lib/alpha_card/order.rb
CHANGED
data/lib/alpha_card/sale.rb
CHANGED
@@ -21,7 +21,7 @@ module AlphaCard
|
|
21
21
|
# sale.create(order, account) #=> true or false
|
22
22
|
def create(order, account)
|
23
23
|
[:ccexp, :ccnumber, :amount].each do |attr|
|
24
|
-
raise Exception.new("No #{attr
|
24
|
+
raise Exception.new("No #{attr} information provided") if self[attr].blank?
|
25
25
|
end
|
26
26
|
|
27
27
|
params = self.filled_attributes || {}
|
@@ -69,6 +69,14 @@ describe AlphaCard do
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
context 'Without attributes' do
|
73
|
+
let!(:sale) { AlphaCard::Sale.new({}) }
|
74
|
+
|
75
|
+
it 'should raise an Exception' do
|
76
|
+
expect { sale.create(order, account) }.to raise_exception
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
72
80
|
context 'With blank account credentials' do
|
73
81
|
let!(:blank_account) { AlphaCard::Account.new(nil, '') }
|
74
82
|
let!(:sale) { AlphaCard::Sale.new({ccexp: card_exp, ccnumber: '4111111111111111', amount: '5.00'}) }
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Bulaj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -32,6 +32,7 @@ extra_rdoc_files: []
|
|
32
32
|
files:
|
33
33
|
- ".gitignore"
|
34
34
|
- ".rspec"
|
35
|
+
- ".travis.yml"
|
35
36
|
- Gemfile
|
36
37
|
- LICENSE
|
37
38
|
- README.md
|