payeezy 1.0.0 → 1.1.0
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.
- data/.idea/inspectionProfiles/Project_Default.xml +3 -1
- data/.idea/workspace.xml +562 -114
- data/LICENSE.txt +1 -1
- data/README.md +3 -1
- data/Rakefile +10 -0
- data/lib/payeezy.rb +4 -5
- data/lib/payeezy/version.rb +1 -1
- data/payeezy.iml +4 -2
- data/spec/payeezy_spec.rb +31 -6
- metadata +2 -3
- data/payeezy.gemspec +0 -28
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rspec/core/rake_task'
|
2
|
+
require 'rake/testtask'
|
2
3
|
|
3
4
|
RSpec::Core::RakeTask.new do |t|
|
4
5
|
t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
|
@@ -6,3 +7,12 @@ RSpec::Core::RakeTask.new do |t|
|
|
6
7
|
end
|
7
8
|
|
8
9
|
task :default => :spec
|
10
|
+
|
11
|
+
Rake::TestTask.new(:test) do |test|
|
12
|
+
test.libs << 'test'
|
13
|
+
test.test_files = FileList['test/*_test.rb']
|
14
|
+
test.verbose = true
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run Tests"
|
18
|
+
task :default => :test
|
data/lib/payeezy.rb
CHANGED
@@ -21,7 +21,8 @@ module Payeezy
|
|
21
21
|
|
22
22
|
def generate_hmac(nonce, current_timestamp, payload)
|
23
23
|
message = @apikey + nonce.to_s + current_timestamp.to_s + @token + payload
|
24
|
-
hash = Base64.
|
24
|
+
hash = Base64.strict_encode64(bin_to_hex(OpenSSL::HMAC.digest('sha256', @apisecret, message)))
|
25
|
+
hash
|
25
26
|
end
|
26
27
|
|
27
28
|
def bin_to_hex(s)
|
@@ -43,7 +44,7 @@ module Payeezy
|
|
43
44
|
|
44
45
|
def commit(action, params)
|
45
46
|
url = @url
|
46
|
-
if action == :capture || action == :void || action == :refund
|
47
|
+
if action == :capture || action == :void || action == :refund || action == :split
|
47
48
|
url = url + '/' + params[:transaction_id]
|
48
49
|
params.delete(:transaction_id)
|
49
50
|
end
|
@@ -54,11 +55,9 @@ module Payeezy
|
|
54
55
|
def call_rest(url, data, headers)
|
55
56
|
rest_resource = RestClient::Resource.new(url)
|
56
57
|
raw_response = response = {}
|
57
|
-
success = false
|
58
58
|
begin
|
59
59
|
raw_response = rest_resource.post data, headers
|
60
60
|
response = parse(raw_response)
|
61
|
-
success = !response.key?('Error')
|
62
61
|
rescue => e
|
63
62
|
raw_response = e.response
|
64
63
|
response = response_error(raw_response)
|
@@ -72,7 +71,7 @@ module Payeezy
|
|
72
71
|
def handle_message(response, success)
|
73
72
|
if success
|
74
73
|
response['transaction_status']
|
75
|
-
elsif
|
74
|
+
elsif response.key?('Error')
|
76
75
|
response['Error'].map { |_, messages| messages }.join('. ')
|
77
76
|
else
|
78
77
|
response.inspect
|
data/lib/payeezy/version.rb
CHANGED
data/payeezy.iml
CHANGED
@@ -21,10 +21,12 @@
|
|
21
21
|
<orderEntry type="sourceFolder" forTests="false" />
|
22
22
|
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.6.2, ruby-1.9.3-p484) [gem]" level="application" />
|
23
23
|
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, ruby-1.9.3-p484) [gem]" level="application" />
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.9.6, ruby-1.9.3-p484) [gem]" level="application" />
|
24
25
|
<orderEntry type="library" scope="PROVIDED" name="json (v1.8.1, ruby-1.9.3-p484) [gem]" level="application" />
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="mime-types (
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="mime-types (v2.4.3, ruby-1.9.3-p484) [gem]" level="application" />
|
27
|
+
<orderEntry type="library" scope="PROVIDED" name="netrc (v0.8.0, ruby-1.9.3-p484) [gem]" level="application" />
|
26
28
|
<orderEntry type="library" scope="PROVIDED" name="rake (v10.3.2, ruby-1.9.3-p484) [gem]" level="application" />
|
27
|
-
<orderEntry type="library" scope="PROVIDED" name="rest-client (v1.
|
29
|
+
<orderEntry type="library" scope="PROVIDED" name="rest-client (v1.7.2, ruby-1.9.3-p484) [gem]" level="application" />
|
28
30
|
<orderEntry type="library" scope="PROVIDED" name="rspec (v2.14.1, ruby-1.9.3-p484) [gem]" level="application" />
|
29
31
|
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.14.8, ruby-1.9.3-p484) [gem]" level="application" />
|
30
32
|
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.14.5, ruby-1.9.3-p484) [gem]" level="application" />
|
data/spec/payeezy_spec.rb
CHANGED
@@ -4,10 +4,10 @@ describe "Sample calls to Payeezy" do
|
|
4
4
|
|
5
5
|
before :each do
|
6
6
|
options = {}
|
7
|
-
options[:url]
|
8
|
-
options[:apikey]
|
9
|
-
options[:apisecret] = '
|
10
|
-
options[:token]
|
7
|
+
options[:url] = 'https://api-cert.payeezy.com/v1/transactions'
|
8
|
+
options[:apikey] = 'y6pWAJNyJyjGv66IsVuWnklkKUPFbb0a'
|
9
|
+
options[:apisecret] = '86fbae7030253af3cd15faef2a1f4b67353e41fb6799f576b5093ae52901e6f7'
|
10
|
+
options[:token] = 'fdoa-a480ce8951daa73262734cf102641994c1e55e7cdf4c02b6'
|
11
11
|
|
12
12
|
@payeezy = Payeezy::Transactions.new options
|
13
13
|
end
|
@@ -52,6 +52,18 @@ describe "Sample calls to Payeezy" do
|
|
52
52
|
@secondary_response['transaction_status'].should == "approved"
|
53
53
|
end
|
54
54
|
|
55
|
+
it 'Split Shipment Transaction' do
|
56
|
+
@primary_response = @payeezy.transact(:authorize,primary_tx_payload)
|
57
|
+
@primary_response['transaction_status'].should == "approved"
|
58
|
+
|
59
|
+
@split_amount = @primary_response['amount'].to_i/2
|
60
|
+
@secondary_response = @payeezy.transact(:split,secondary_tx_payload_split(@primary_response,"01/99",@split_amount))
|
61
|
+
@secondary_response['transaction_status'].should == "approved"
|
62
|
+
|
63
|
+
@secondary_response = @payeezy.transact(:split,secondary_tx_payload_split(@primary_response,"02/02",@split_amount))
|
64
|
+
@secondary_response['transaction_status'].should == "approved"
|
65
|
+
end
|
66
|
+
|
55
67
|
|
56
68
|
end
|
57
69
|
|
@@ -59,14 +71,14 @@ describe "Sample calls to Payeezy" do
|
|
59
71
|
credit_card = {}
|
60
72
|
payload = {}
|
61
73
|
payload[:merchant_ref] = 'Astonishing-Sale'
|
62
|
-
payload[:amount]='
|
74
|
+
payload[:amount]='1200'
|
63
75
|
payload[:currency_code]='USD'
|
64
76
|
payload[:method]='credit_card'
|
65
77
|
|
66
78
|
credit_card[:type] = 'visa'
|
67
79
|
credit_card[:cardholder_name] = 'John Smith'
|
68
80
|
credit_card[:card_number] = '4788250000028291'
|
69
|
-
credit_card[:exp_date] = '
|
81
|
+
credit_card[:exp_date] = '1020'
|
70
82
|
credit_card[:cvv] = '123'
|
71
83
|
payload[:credit_card] = credit_card
|
72
84
|
|
@@ -85,4 +97,17 @@ describe "Sample calls to Payeezy" do
|
|
85
97
|
payload
|
86
98
|
end
|
87
99
|
|
100
|
+
def secondary_tx_payload_split(response, split_shipment, split_amount)
|
101
|
+
payload = {}
|
102
|
+
payload[:merchant_ref] = 'Astonishing-Sale'
|
103
|
+
payload[:transaction_tag] = response['transaction_tag']
|
104
|
+
payload[:method]=response['method']
|
105
|
+
payload[:amount]=split_amount
|
106
|
+
payload[:split_shipment]=split_shipment
|
107
|
+
payload[:currency_code]=response['currency']
|
108
|
+
payload[:transaction_id] = response['transaction_id']
|
109
|
+
|
110
|
+
payload
|
111
|
+
end
|
112
|
+
|
88
113
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: payeezy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-11-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -116,7 +116,6 @@ files:
|
|
116
116
|
- Rakefile
|
117
117
|
- lib/payeezy.rb
|
118
118
|
- lib/payeezy/version.rb
|
119
|
-
- payeezy.gemspec
|
120
119
|
- payeezy.iml
|
121
120
|
- spec/payeezy_spec.rb
|
122
121
|
- spec/spec_helper.rb
|
data/payeezy.gemspec
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'payeezy/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "payeezy"
|
8
|
-
spec.version = Payeezy::VERSION
|
9
|
-
spec.authors = ["Sachin Shetty"]
|
10
|
-
spec.email = ["sachin.shetty@firstdata.com"]
|
11
|
-
spec.summary = %q{Transact with Payeezy}
|
12
|
-
spec.description = %q{See how easy it is to integrate with Payeezy using this gem}
|
13
|
-
spec.homepage = "https://developer.payeezy.com"
|
14
|
-
spec.license = "MIT"
|
15
|
-
|
16
|
-
spec.files = `git ls-files -z`.split("\x0")
|
17
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency 'rspec'
|
24
|
-
|
25
|
-
spec.add_dependency('rest-client', '~> 1.4')
|
26
|
-
spec.add_dependency('json', '~> 1.8.1')
|
27
|
-
|
28
|
-
end
|