pagarme 1.9.4 → 1.9.5
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/.gitignore +1 -0
- data/lib/pagarme/subscription.rb +1 -3
- data/lib/pagarme/transaction_common.rb +8 -58
- data/pagarme.gemspec +1 -1
- data/test/pagarme/transaction.rb +0 -7
- metadata +18 -19
- data/Gemfile.lock +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e0e00753c649eaab912a05e42c3761d7a64e714
|
4
|
+
data.tar.gz: 04c7e8a5d52b5d22bf0fa6a02031771984e2f6f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7135b0716c80d52da03da0f219f075de72b4f334098549051675e0826d6f9047217fcbee1bf4bae6c54aedfc295edeb53d9b41c77f2f0a3789476a0cac29eaa7
|
7
|
+
data.tar.gz: b9188fa4cd9b690754bffe96abf9e66daf8a99f3975e32ca4a277732959e57e85bfd32afadb74ba57729e5c4a99998d1ab7ba2d6eda60221eb5e9c66138a3e19
|
data/.gitignore
CHANGED
data/lib/pagarme/subscription.rb
CHANGED
@@ -3,8 +3,6 @@ require File.join(File.dirname(__FILE__), '..', 'pagarme')
|
|
3
3
|
|
4
4
|
module PagarMe
|
5
5
|
class Subscription < TransactionCommon
|
6
|
-
|
7
|
-
|
8
6
|
def create
|
9
7
|
if self.plan
|
10
8
|
self.plan_id = plan.id
|
@@ -33,7 +31,7 @@ module PagarMe
|
|
33
31
|
request = PagarMe::Request.new(self.url + '/transactions', 'POST')
|
34
32
|
request.parameters = {
|
35
33
|
:amount => amount,
|
36
|
-
|
34
|
+
:installments => installments
|
37
35
|
}
|
38
36
|
response = request.run
|
39
37
|
|
@@ -9,72 +9,16 @@ module PagarMe
|
|
9
9
|
self.payment_method = 'credit_card' unless self.payment_method
|
10
10
|
self.installments = 1 unless self.installments
|
11
11
|
self.status = 'local' unless self.status
|
12
|
-
before_set_filter :amount, :format_amount
|
13
12
|
end
|
14
13
|
|
15
14
|
def create
|
16
|
-
validation_error = self.card_hash ? nil : validate
|
17
15
|
self.card_hash = generate_card_hash unless self.card_hash
|
18
|
-
unset_creditcard_information
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
def unset_creditcard_information
|
23
16
|
self.card_number = nil
|
24
17
|
self.card_holder_name = nil
|
25
18
|
self.card_expiration_year = nil
|
26
19
|
self.card_expiration_month = nil
|
27
20
|
self.card_cvv = nil
|
28
|
-
|
29
|
-
|
30
|
-
def is_valid_credit_card(card)
|
31
|
-
s1 = s2 = 0
|
32
|
-
card.to_s.reverse.chars.each_slice(2) do |odd, even|
|
33
|
-
s1 += odd.to_i
|
34
|
-
|
35
|
-
double = even.to_i * 2
|
36
|
-
double -= 9 if double >= 10
|
37
|
-
s2 += double
|
38
|
-
end
|
39
|
-
(s1 + s2) % 10 == 0
|
40
|
-
end
|
41
|
-
|
42
|
-
def validate
|
43
|
-
error = PagarMeError.new
|
44
|
-
if self.payment_method == 'credit_card'
|
45
|
-
if !self.card_number || self.card_number.to_s.length > 20 || !is_valid_credit_card(self.card_number.to_s)
|
46
|
-
error.errors << PagarMeError.new("Número do cartão inválido.", 'card_number')
|
47
|
-
end
|
48
|
-
if !self.card_holder_name || !self.card_holder_name || self.card_holder_name.length == 0
|
49
|
-
error.errors << PagarMeError.new("Nome do portador inválido.", 'card_holder_name')
|
50
|
-
end
|
51
|
-
if !self.card_expiration_month || self.card_expiration_month.to_i <= 0 || self.card_expiration_month.to_i > 12
|
52
|
-
error.errors << PagarMeError.new("Mês de expiração inválido.", 'card_expiration_date')
|
53
|
-
end
|
54
|
-
if !self.card_expiration_year || self.card_expiration_year.to_i <= 0
|
55
|
-
error.errors << PagarMeError.new("Ano de expiração inválido.", 'card_expiration_date')
|
56
|
-
end
|
57
|
-
if !self.card_cvv || self.card_cvv.to_s.length < 3 || self.card_cvv.to_s.length > 4
|
58
|
-
error.errors << PagarMeError.new("Código de segurança inválido.", 'card_cvv')
|
59
|
-
end
|
60
|
-
end
|
61
|
-
if(error.errors.any?)
|
62
|
-
error.message = error.errors.map {|e| e.message}
|
63
|
-
error.message = error.message.join(',')
|
64
|
-
raise error
|
65
|
-
else
|
66
|
-
nil
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def format_amount(amount)
|
71
|
-
if amount.kind_of?(String)
|
72
|
-
value = amount.gsub(/\./, "")
|
73
|
-
value = value.strip
|
74
|
-
value = value.match(/\d+/)[0]
|
75
|
-
amount = value
|
76
|
-
end
|
77
|
-
amount
|
21
|
+
super
|
78
22
|
end
|
79
23
|
|
80
24
|
def card_data_parameters
|
@@ -89,9 +33,15 @@ module PagarMe
|
|
89
33
|
def generate_card_hash
|
90
34
|
request = PagarMe::Request.new("/transactions/card_hash_key", 'GET')
|
91
35
|
response = request.run
|
36
|
+
card_data = {
|
37
|
+
:card_number => self.card_number,
|
38
|
+
:card_holder_name => self.card_holder_name,
|
39
|
+
:card_expiration_date => "#{self.card_expiration_month}#{self.card_expiration_year}",
|
40
|
+
:card_cvv => self.card_cvv
|
41
|
+
}
|
92
42
|
|
93
43
|
public_key = OpenSSL::PKey::RSA.new(response['public_key'])
|
94
|
-
ret = "#{response['id']}_#{Base64.strict_encode64(public_key.public_encrypt(
|
44
|
+
ret = "#{response['id']}_#{Base64.strict_encode64(public_key.public_encrypt(card_data.to_params))}"
|
95
45
|
end
|
96
46
|
end
|
97
47
|
end
|
data/pagarme.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "pagarme"
|
7
|
-
spec.version = "1.9.
|
7
|
+
spec.version = "1.9.5"
|
8
8
|
spec.authors = ["Pedro Franceschi", "Henrique Dubugras"]
|
9
9
|
spec.email = ["pedrohfranceschi@gmail.com", "henrique@pagar.me"]
|
10
10
|
spec.description = %q{Pagar.me's ruby gem}
|
data/test/pagarme/transaction.rb
CHANGED
@@ -82,13 +82,6 @@ module PagarMe
|
|
82
82
|
assert transaction.status == 'refunded'
|
83
83
|
end
|
84
84
|
|
85
|
-
should 'should allow transactions with R$ amount' do
|
86
|
-
transaction = test_transaction
|
87
|
-
transaction.amount = 'R$ 10.00'
|
88
|
-
transaction.charge
|
89
|
-
assert transaction.amount == 1000
|
90
|
-
end
|
91
|
-
|
92
85
|
should 'validate invalid transaction' do
|
93
86
|
|
94
87
|
#Test invalid card_number
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagarme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Franceschi
|
@@ -9,90 +9,90 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '1.3'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1.3'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: shoulda
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 3.4.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 3.4.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: test-unit
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rest-client
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: multi_json
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
description: Pagar.me's ruby gem
|
@@ -103,10 +103,9 @@ executables: []
|
|
103
103
|
extensions: []
|
104
104
|
extra_rdoc_files: []
|
105
105
|
files:
|
106
|
-
- .gitignore
|
107
|
-
- .travis.yml
|
106
|
+
- ".gitignore"
|
107
|
+
- ".travis.yml"
|
108
108
|
- Gemfile
|
109
|
-
- Gemfile.lock
|
110
109
|
- README.md
|
111
110
|
- Rakefile
|
112
111
|
- certs/public_key.pem
|
@@ -140,12 +139,12 @@ require_paths:
|
|
140
139
|
- lib
|
141
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
141
|
requirements:
|
143
|
-
- -
|
142
|
+
- - ">="
|
144
143
|
- !ruby/object:Gem::Version
|
145
144
|
version: '0'
|
146
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
146
|
requirements:
|
148
|
-
- -
|
147
|
+
- - ">="
|
149
148
|
- !ruby/object:Gem::Version
|
150
149
|
version: '0'
|
151
150
|
requirements: []
|
data/Gemfile.lock
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
pagarme (1.8)
|
5
|
-
multi_json
|
6
|
-
rest-client
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
activesupport (4.0.0)
|
12
|
-
i18n (~> 0.6, >= 0.6.4)
|
13
|
-
minitest (~> 4.2)
|
14
|
-
multi_json (~> 1.3)
|
15
|
-
thread_safe (~> 0.1)
|
16
|
-
tzinfo (~> 0.3.37)
|
17
|
-
atomic (1.1.14)
|
18
|
-
bourne (1.5.0)
|
19
|
-
mocha (>= 0.13.2, < 0.15)
|
20
|
-
i18n (0.6.5)
|
21
|
-
metaclass (0.0.1)
|
22
|
-
mime-types (2.0)
|
23
|
-
minitest (4.7.5)
|
24
|
-
mocha (0.14.0)
|
25
|
-
metaclass (~> 0.0.1)
|
26
|
-
multi_json (1.8.2)
|
27
|
-
rake (10.1.0)
|
28
|
-
rest-client (1.6.7)
|
29
|
-
mime-types (>= 1.16)
|
30
|
-
shoulda (3.4.0)
|
31
|
-
shoulda-context (~> 1.0, >= 1.0.1)
|
32
|
-
shoulda-matchers (~> 1.0, >= 1.4.1)
|
33
|
-
shoulda-context (1.1.5)
|
34
|
-
shoulda-matchers (1.5.6)
|
35
|
-
activesupport (>= 3.0.0)
|
36
|
-
bourne (~> 1.3)
|
37
|
-
test-unit (2.5.5)
|
38
|
-
thread_safe (0.1.3)
|
39
|
-
atomic
|
40
|
-
tzinfo (0.3.38)
|
41
|
-
|
42
|
-
PLATFORMS
|
43
|
-
ruby
|
44
|
-
|
45
|
-
DEPENDENCIES
|
46
|
-
bundler (~> 1.3)
|
47
|
-
pagarme!
|
48
|
-
rake
|
49
|
-
shoulda (~> 3.4.0)
|
50
|
-
test-unit
|