alpha_card 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/alpha_card.png)](http://badge.fury.io/rb/alpha_card)
|
3
|
+
[![Dependency Status](https://gemnasium.com/budev/alpha_card.png)](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: []
|