firstdata 1.1.1 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/firstdata/version.rb +1 -1
- data/lib/firstdata.rb +7 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81e425e6e583412e4abc1a8e6dd92a4b2847a93d
|
4
|
+
data.tar.gz: f11a48b32611b5e9978606127496bf5b2e30d6d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 168dc7efbb8da00aa6562ef1e4f18751c9d25a7558de06eea3b6fbf49e421dba02f1fe6ebe721b37a9f6d3e05109e838ab684b36788befe724d9670423105bf3
|
7
|
+
data.tar.gz: a18f72e267f7a044188600ab38ae9e812cf0c4a2eb5a1cd6e61be6a74386f094f3947b8edb3a4dacf5e9516190b13be92971ed5e6e4d101f446f1a6dbf7ff4dd
|
data/lib/firstdata/version.rb
CHANGED
data/lib/firstdata.rb
CHANGED
@@ -6,11 +6,13 @@
|
|
6
6
|
#
|
7
7
|
# MIT License
|
8
8
|
|
9
|
-
require 'json'
|
9
|
+
#require 'json'
|
10
10
|
require 'openssl'
|
11
11
|
require 'net/http'
|
12
12
|
require 'time'
|
13
13
|
require 'base64'
|
14
|
+
require 'active_support/core_ext/hash/conversions'
|
15
|
+
|
14
16
|
|
15
17
|
require_relative 'firstdata/version'
|
16
18
|
|
@@ -22,14 +24,14 @@ module Firstdata
|
|
22
24
|
end
|
23
25
|
|
24
26
|
def self.transact(payload)
|
25
|
-
body = payload.merge(gateway_id: @gateway_id, password: @password).
|
27
|
+
body = payload.merge(gateway_id: @gateway_id, password: @password).to_xml((:root => 'Transaction', :dasherize => false, :skip_instruct => true, :skip_types => true)
|
26
28
|
post(set_headers(body), body, api_url)
|
27
29
|
end
|
28
30
|
|
29
31
|
private
|
30
32
|
|
31
33
|
def self.digest(payload)
|
32
|
-
OpenSSL::Digest.new('
|
34
|
+
OpenSSL::Digest.new('sha1', payload)
|
33
35
|
end
|
34
36
|
|
35
37
|
def self.gen_hmac(digest, data)
|
@@ -45,7 +47,7 @@ module Firstdata
|
|
45
47
|
end
|
46
48
|
|
47
49
|
def self.set_headers(payload)
|
48
|
-
type = 'application/
|
50
|
+
type = 'application/xml'
|
49
51
|
time = Time.now.utc.iso8601
|
50
52
|
content_digest = digest(payload)
|
51
53
|
data = concat('POST', type, content_digest.to_s, time, urn)
|
@@ -54,7 +56,7 @@ module Firstdata
|
|
54
56
|
'Content-Type' => type,
|
55
57
|
'Accept' => type,
|
56
58
|
'x-gge4-date' => time,
|
57
|
-
'x-gge4-content-
|
59
|
+
'x-gge4-content-sha1' => content_digest.to_s,
|
58
60
|
'Authorization' => "GGE4_API #{@key_id}:#{hmac}"
|
59
61
|
}
|
60
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firstdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nitesh Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|