pagarme 2.1.4 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +43 -24
- data/lib/pagarme/request.rb +4 -2
- data/lib/pagarme/resources/balance_operation.rb +4 -2
- data/lib/pagarme/resources/billing.rb +4 -0
- data/lib/pagarme/resources/company.rb +2 -2
- data/lib/pagarme/resources/fee_collection.rb +4 -0
- data/lib/pagarme/resources/item.rb +4 -0
- data/lib/pagarme/resources/payment_link.rb +7 -0
- data/lib/pagarme/resources/shipping.rb +4 -0
- data/lib/pagarme/resources/subscription.rb +4 -0
- data/lib/pagarme/version.rb +1 -1
- data/pagarme.gemspec +1 -1
- data/test/fixtures.rb +80 -6
- data/test/pagarme/resources/balance_test.rb +3 -3
- data/test/pagarme/resources/bulk_anticipation_test.rb +2 -2
- data/test/pagarme/resources/customer_test.rb +23 -0
- data/test/pagarme/resources/payment_link.rb +26 -0
- data/test/pagarme/resources/plan_test.rb +2 -1
- data/test/pagarme/resources/postback_test.rb +2 -2
- data/test/pagarme/resources/subscription_test.rb +12 -2
- data/test/pagarme/resources/transaction_test.rb +23 -7
- data/test/test_helper.rb +19 -9
- metadata +20 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09cbd478941d7e533cc69f34d79544eadff6f8df'
|
4
|
+
data.tar.gz: 5ab0f69c6eb9ca71e1bf74e3416b1af98b98c6b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc8bdcf0f45d79fbed47c7951e7bc6dc24f4805bffb82a308a019317e479c4b8794d912cd179525877468b75ae8b62a6bc3df8093bfb2e70c77c5deb42c9f6d0
|
7
|
+
data.tar.gz: 2bf71508679143a2c743bab7ecd52f5915687ebd9584f2e6ad6e5c8a33ac661a4c2751a7019f4711ea8771f16a7e256020613da980d4580ff8370e6ba0249ece
|
data/README.md
CHANGED
@@ -5,8 +5,8 @@ Pagar.me Ruby library
|
|
5
5
|
|
6
6
|
## Documentation
|
7
7
|
|
8
|
-
* [Documentation](https://pagar.me
|
9
|
-
* [Full API Guide](https://docs.pagar.me/
|
8
|
+
* [Documentation](https://docs.pagar.me)
|
9
|
+
* [Full API Guide](https://docs.pagar.me/reference)
|
10
10
|
|
11
11
|
## Getting Started
|
12
12
|
|
@@ -38,13 +38,13 @@ and _PAGARME\_ENCRYPTION\_KEY_ (**recommended if needed**)
|
|
38
38
|
|
39
39
|
See our [demo checkout](https://pagar.me/checkout).
|
40
40
|
|
41
|
-
More about how to use it [here](https://docs.pagar.me/checkout).
|
41
|
+
More about how to use it [here](https://docs.pagar.me/docs/overview-checkout).
|
42
42
|
|
43
43
|
### Transactions
|
44
44
|
|
45
45
|
#### Creating a Credit Card Transaction
|
46
46
|
|
47
|
-
To create a credit card transaction, you need a [card\_hash](https://docs.pagar.me/
|
47
|
+
To create a credit card transaction, you need a [card\_hash](https://docs.pagar.me/docs/obtendo-os-dados-do-cartao).
|
48
48
|
|
49
49
|
```ruby
|
50
50
|
PagarMe::Transaction.new(
|
@@ -53,7 +53,26 @@ To create a credit card transaction, you need a [card\_hash](https://docs.pagar.
|
|
53
53
|
).charge
|
54
54
|
```
|
55
55
|
|
56
|
-
More about [Creating a Credit Card Transaction](https://docs.pagar.me/
|
56
|
+
More about [Creating a Credit Card Transaction](https://docs.pagar.me/docs/realizando-uma-transacao-de-cartao-de-credito).
|
57
|
+
|
58
|
+
#### Creating a Customer
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
customer = PagarMe::Customer.create(
|
62
|
+
name: 'Morpheus Fishburne',
|
63
|
+
email: 'mopheus@nabucodonozor.com',
|
64
|
+
type: 'individual',
|
65
|
+
external_id: "#3311",
|
66
|
+
country: 'br',
|
67
|
+
birthday: "1965-01-01",
|
68
|
+
documents: [
|
69
|
+
{type: "cpf", number: "86870624194"}
|
70
|
+
],
|
71
|
+
phone_numbers: ["+5511999998888", "+5511888889999"]
|
72
|
+
)
|
73
|
+
```
|
74
|
+
|
75
|
+
More about [Creating a Customer](https://docs.pagar.me/v2017-08-28/reference#criando-um-cliente).
|
57
76
|
|
58
77
|
#### Creating a Boleto Transaction
|
59
78
|
|
@@ -68,7 +87,7 @@ More about [Creating a Credit Card Transaction](https://docs.pagar.me/transactio
|
|
68
87
|
transaction.boleto_barcode # => boleto's barcode
|
69
88
|
```
|
70
89
|
|
71
|
-
More about [Creating a Boleto Transaction](https://docs.pagar.me/
|
90
|
+
More about [Creating a Boleto Transaction](https://docs.pagar.me/docs/realizando-uma-transacao-de-boleto-bancario).
|
72
91
|
|
73
92
|
#### Split Rules
|
74
93
|
|
@@ -79,20 +98,20 @@ For example, splitting equally a transaction:
|
|
79
98
|
PagarMe::Transaction.new(
|
80
99
|
amount: 1000, # in cents
|
81
100
|
card_hash: card_hash, # how to get a card hash: docs.pagar.me/capturing-card-data
|
82
|
-
|
101
|
+
split_rules: [
|
83
102
|
{ recipient_id: recipient_id_1, percentage: 50 },
|
84
103
|
{ recipient_id: recipient_id_2, percentage: 50 }
|
85
104
|
]
|
86
105
|
).charge
|
87
106
|
```
|
88
107
|
|
89
|
-
More about [Split Rules](https://docs.pagar.me/
|
108
|
+
More about [Split Rules](https://docs.pagar.me/reference#retornando-uma-regra-de-divis%C3%A3o-espec%C3%ADfica).
|
90
109
|
|
91
110
|
### Plans & Subscriptions
|
92
111
|
|
93
|
-
You can use recurring charges, learn more [here](https://docs.pagar.me/
|
112
|
+
You can use recurring charges, learn more [here](https://docs.pagar.me/docs/overview-recorrencia).
|
94
113
|
|
95
|
-
It's important to understand the charges flow, learn more [here](https://docs.pagar.me/
|
114
|
+
It's important to understand the charges flow, learn more [here](https://docs.pagar.me/docs/fluxo-de-cobranca)
|
96
115
|
|
97
116
|
#### Creating a Plan
|
98
117
|
|
@@ -104,7 +123,7 @@ It's important to understand the charges flow, learn more [here](https://docs.pa
|
|
104
123
|
).create
|
105
124
|
```
|
106
125
|
|
107
|
-
More about [Creating a Plan](https://docs.pagar.me/
|
126
|
+
More about [Creating a Plan](https://docs.pagar.me/docs/criando-um-plano).
|
108
127
|
|
109
128
|
#### Creating a Subscription
|
110
129
|
|
@@ -116,7 +135,7 @@ More about [Creating a Plan](https://docs.pagar.me/plans-subscriptions/#criando-
|
|
116
135
|
).create
|
117
136
|
```
|
118
137
|
|
119
|
-
More about [Creating a Subscription](https://docs.pagar.me/
|
138
|
+
More about [Creating a Subscription](https://docs.pagar.me/docs/criando-uma-assinatura).
|
120
139
|
|
121
140
|
### Recipients
|
122
141
|
|
@@ -139,7 +158,7 @@ To create a recipient, so it can receive payments through split rules or transfe
|
|
139
158
|
)
|
140
159
|
```
|
141
160
|
|
142
|
-
More about [Creating a Recipient](https://docs.pagar.me/
|
161
|
+
More about [Creating a Recipient](https://docs.pagar.me/reference#criando-um-recebedor).
|
143
162
|
|
144
163
|
#### Transfer Available Amout to Bank Account Manually
|
145
164
|
|
@@ -163,7 +182,7 @@ _transfer\_interval_ and _transfer\_day_ will handle it automatically.
|
|
163
182
|
|
164
183
|
Just that!
|
165
184
|
|
166
|
-
More about [Balance](https://docs.pagar.me/
|
185
|
+
More about [Balance](https://docs.pagar.me/docs/overview-gerenciamento-de-saldo)
|
167
186
|
|
168
187
|
#### Checking Balance Operations
|
169
188
|
|
@@ -179,7 +198,7 @@ Paginating:
|
|
179
198
|
PagarMe::BalanceOperation.balance_operations 2, 50 # second page, 50 per page
|
180
199
|
```
|
181
200
|
|
182
|
-
More about [Balance Operations](https://docs.pagar.me/
|
201
|
+
More about [Balance Operations](https://docs.pagar.me/docs/composicao-do-saldo)
|
183
202
|
|
184
203
|
#### Checking Recipient Balance
|
185
204
|
|
@@ -208,7 +227,7 @@ Paginating:
|
|
208
227
|
PagarMe::Recipient.find(recipient_id).balance_operations 2, 50 # second page, 50 per page
|
209
228
|
```
|
210
229
|
|
211
|
-
More about [Recipient Balance Operations](https://docs.pagar.me/
|
230
|
+
More about [Recipient Balance Operations](https://docs.pagar.me/reference#opera%C3%A7%C3%B5es-de-saldo-de-um-recebedor)
|
212
231
|
|
213
232
|
### Request Bulk Anticipation
|
214
233
|
|
@@ -218,7 +237,7 @@ More about [Recipient Balance Operations](https://docs.pagar.me/api/#operacoes-d
|
|
218
237
|
PagarMe::Recipient.default.bulk_anticipations_limits
|
219
238
|
```
|
220
239
|
|
221
|
-
More about [Checking Bulk Anticipation Limits](https://docs.pagar.me/
|
240
|
+
More about [Checking Bulk Anticipation Limits](https://docs.pagar.me/reference#obtendo-os-limites-de-antecipa%C3%A7%C3%A3o)
|
222
241
|
|
223
242
|
#### Requesting Bulk Anticipation
|
224
243
|
|
@@ -230,7 +249,7 @@ More about [Checking Bulk Anticipation Limits](https://docs.pagar.me/api/#obtend
|
|
230
249
|
)
|
231
250
|
```
|
232
251
|
|
233
|
-
More about [Requesting Bulk Anticipation](https://docs.pagar.me/
|
252
|
+
More about [Requesting Bulk Anticipation](https://docs.pagar.me/reference#criando-uma-antecipa%C3%A7%C3%A3o)
|
234
253
|
|
235
254
|
#### Getting Bulk Anticipation
|
236
255
|
|
@@ -238,7 +257,7 @@ More about [Requesting Bulk Anticipation](https://docs.pagar.me/api/#criando-uma
|
|
238
257
|
PagarMe::BulkAnticipation.all page, count
|
239
258
|
```
|
240
259
|
|
241
|
-
More about [Getting Bulk Anticipation](https://docs.pagar.me/
|
260
|
+
More about [Getting Bulk Anticipation](https://docs.pagar.me/reference#retornando-todas-as-antecipa%C3%A7%C3%B5es)
|
242
261
|
|
243
262
|
### Payables
|
244
263
|
|
@@ -248,7 +267,7 @@ More about [Getting Bulk Anticipation](https://docs.pagar.me/api/#retornando-tod
|
|
248
267
|
PagarMe::Payable.find 'payable_id'
|
249
268
|
```
|
250
269
|
|
251
|
-
More about [Getting Payable](https://docs.pagar.me/
|
270
|
+
More about [Getting Payable](https://docs.pagar.me/reference#retornando-um-receb%C3%ADvel)
|
252
271
|
|
253
272
|
#### Querying Payables
|
254
273
|
|
@@ -260,7 +279,7 @@ More about [Getting Payable](https://docs.pagar.me/api/#retornando-um-recebivel)
|
|
260
279
|
PagarMe::Payable.find_by status: 'paid'
|
261
280
|
```
|
262
281
|
|
263
|
-
More about [Querying Payables](https://docs.pagar.me/
|
282
|
+
More about [Querying Payables](https://docs.pagar.me/reference#retornando-receb%C3%ADveis)
|
264
283
|
|
265
284
|
#### Querying Payables by Transaction
|
266
285
|
|
@@ -269,7 +288,7 @@ More about [Querying Payables](https://docs.pagar.me/api/#retornando-recebiveis)
|
|
269
288
|
transaction.payables
|
270
289
|
```
|
271
290
|
|
272
|
-
More about [Payable Transactions](https://docs.pagar.me/
|
291
|
+
More about [Payable Transactions](https://docs.pagar.me/reference#retornando-pagamentos-da-transa%C3%A7%C3%A3o)
|
273
292
|
|
274
293
|
### Validating Postback
|
275
294
|
|
@@ -329,7 +348,7 @@ This README is just a quick abstract of it's main features.
|
|
329
348
|
You can easily browse it's source code to see all [supported resources](https://github.com/pagarme/pagarme-ruby/tree/master/lib/pagarme/resources).
|
330
349
|
|
331
350
|
We will document everything while adding support to all resources listed in
|
332
|
-
[Full API Guide](https://docs.pagar.me/
|
351
|
+
[Full API Guide](https://docs.pagar.me/reference).
|
333
352
|
|
334
353
|
Feel free to help us to add support to features sending pull requests.
|
335
354
|
|
@@ -337,7 +356,7 @@ Thanks!
|
|
337
356
|
|
338
357
|
### TODO
|
339
358
|
|
340
|
-
Add support to [ElasticSearch Query DSL](https://docs.pagar.me/
|
359
|
+
Add support to [ElasticSearch Query DSL](https://docs.pagar.me/reference#elasticsearch),
|
341
360
|
so you can search your data optimally.
|
342
361
|
|
343
362
|
And document all the source code.
|
data/lib/pagarme/request.rb
CHANGED
@@ -10,7 +10,8 @@ module PagarMe
|
|
10
10
|
DEFAULT_HEADERS = {
|
11
11
|
'Content-Type' => 'application/json; charset=utf8',
|
12
12
|
'Accept' => 'application/json',
|
13
|
-
'User-Agent' => "pagarme-ruby/#{PagarMe::VERSION}"
|
13
|
+
'User-Agent' => "pagarme-ruby/#{PagarMe::VERSION}",
|
14
|
+
'X-PagarMe-User-Agent' => "pagarme-ruby/#{PagarMe::VERSION}"
|
14
15
|
}
|
15
16
|
|
16
17
|
def initialize(path, method, options={})
|
@@ -85,7 +86,8 @@ module PagarMe
|
|
85
86
|
open_timeout: PagarMe.open_timeout,
|
86
87
|
timeout: PagarMe.timeout,
|
87
88
|
ssl_ca_file: SSL_CA_FILEPATH,
|
88
|
-
headers: DEFAULT_HEADERS.merge(headers)
|
89
|
+
headers: DEFAULT_HEADERS.merge(headers),
|
90
|
+
ssl_version: 'TLSv1_2'
|
89
91
|
}
|
90
92
|
end
|
91
93
|
|
@@ -2,11 +2,13 @@ module PagarMe
|
|
2
2
|
class BalanceOperation < PagarMeObject
|
3
3
|
|
4
4
|
def method_missing(name, *args, &block)
|
5
|
+
super name, *args, &block
|
6
|
+
rescue NameError
|
5
7
|
if @attributes['movement_object'] && @attributes['movement_object'].respond_to?(name)
|
6
|
-
return movement_object.public_send(name, *args, &block)
|
8
|
+
return @attributes['movement_object'].public_send(name, *args, &block)
|
7
9
|
end
|
8
10
|
|
9
|
-
|
11
|
+
raise $!
|
10
12
|
end
|
11
13
|
|
12
14
|
class << self
|
@@ -21,8 +21,8 @@ module PagarMe
|
|
21
21
|
PagarMe::Request.get('/company').call
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.temporary
|
25
|
-
PagarMe::Request.post('/companies/temporary').call
|
24
|
+
def self.temporary(params = Hash.new)
|
25
|
+
PagarMe::Request.post('/companies/temporary', params: params).call
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
data/lib/pagarme/version.rb
CHANGED
data/pagarme.gemspec
CHANGED
@@ -20,10 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
21
21
|
spec.add_development_dependency 'shoulda', '~> 3.4.0'
|
22
22
|
spec.add_development_dependency 'activesupport', '~> 3.0'
|
23
|
+
spec.add_development_dependency 'webmock', '~> 2.3'
|
23
24
|
spec.add_development_dependency 'pry'
|
24
25
|
spec.add_development_dependency 'vcr'
|
25
26
|
spec.add_development_dependency 'rake'
|
26
|
-
spec.add_development_dependency 'webmock'
|
27
27
|
spec.add_development_dependency 'test-unit'
|
28
28
|
spec.add_development_dependency 'clipboard'
|
29
29
|
|
data/test/fixtures.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
class Fixtures
|
2
3
|
def transaction
|
3
4
|
{ amount: 1000 }
|
@@ -47,6 +48,10 @@ class Fixtures
|
|
47
48
|
}
|
48
49
|
end
|
49
50
|
|
51
|
+
def invalid_card_number
|
52
|
+
card.merge card_number: '4043405'
|
53
|
+
end
|
54
|
+
|
50
55
|
def refused_card
|
51
56
|
# In test environment CVV's that starts with digit 6 are refused by acquirer
|
52
57
|
card.merge card_cvv: '600'
|
@@ -78,6 +83,60 @@ class Fixtures
|
|
78
83
|
}
|
79
84
|
end
|
80
85
|
|
86
|
+
def address
|
87
|
+
{
|
88
|
+
street: 'Av. Brigadeiro Faria Lima',
|
89
|
+
street_number: '2941',
|
90
|
+
neighborhood: 'Itaim bibi',
|
91
|
+
zipcode: '01452000',
|
92
|
+
city: 'São Paulo',
|
93
|
+
state: 'sp',
|
94
|
+
country: 'br'
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
def billing
|
99
|
+
{
|
100
|
+
billing: {
|
101
|
+
name: 'Jon Snow',
|
102
|
+
address: address
|
103
|
+
}
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
107
|
+
def shipping
|
108
|
+
{
|
109
|
+
shipping: {
|
110
|
+
name: 'Daenerys Targeryen',
|
111
|
+
fee: 100,
|
112
|
+
delivery_date: "2000-12-21",
|
113
|
+
expedited: "true",
|
114
|
+
address: address
|
115
|
+
}
|
116
|
+
}
|
117
|
+
end
|
118
|
+
|
119
|
+
def item
|
120
|
+
{
|
121
|
+
items: [
|
122
|
+
{
|
123
|
+
id: "r123",
|
124
|
+
title: "Red pill",
|
125
|
+
unit_price: 10000,
|
126
|
+
quantity: 1,
|
127
|
+
tangible: true
|
128
|
+
},
|
129
|
+
{
|
130
|
+
id: "b123",
|
131
|
+
title: "Blue pill",
|
132
|
+
unit_price: 10000,
|
133
|
+
quantity: 1,
|
134
|
+
tangible: true
|
135
|
+
}
|
136
|
+
]
|
137
|
+
}
|
138
|
+
end
|
139
|
+
|
81
140
|
def bank_account
|
82
141
|
{
|
83
142
|
bank_code: '237',
|
@@ -139,12 +198,27 @@ class Fixtures
|
|
139
198
|
gender: 'M',
|
140
199
|
born_at: '1970-10-11',
|
141
200
|
phone: { ddd: '21', number: '922334455' },
|
142
|
-
address:
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
201
|
+
address: address
|
202
|
+
}
|
203
|
+
}
|
204
|
+
end
|
205
|
+
|
206
|
+
def external_id_customer
|
207
|
+
{
|
208
|
+
customer: {
|
209
|
+
external_id: "#3311",
|
210
|
+
name: "Morpheus Fishburne",
|
211
|
+
type: "individual",
|
212
|
+
country: "br",
|
213
|
+
email: "mopheus@nabucodonozor.com",
|
214
|
+
documents: [
|
215
|
+
{
|
216
|
+
type: "cpf",
|
217
|
+
number: "86870624194"
|
218
|
+
}
|
219
|
+
],
|
220
|
+
phone_numbers: ["+5511999998888", "+5511888889999"],
|
221
|
+
birthday: "1965-01-01"
|
148
222
|
}
|
149
223
|
}
|
150
224
|
end
|
@@ -4,7 +4,7 @@ module PagarMe
|
|
4
4
|
class BalanceTest < PagarMeTestCase
|
5
5
|
|
6
6
|
should 'change amount amount after transaction being paid' do
|
7
|
-
transaction = PagarMe::Transaction.charge
|
7
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_boleto_params
|
8
8
|
previous_balance = PagarMe::Balance.balance
|
9
9
|
|
10
10
|
transaction.status = :paid
|
@@ -17,7 +17,7 @@ module PagarMe
|
|
17
17
|
should 'change recipient amount after transaction being paid' do
|
18
18
|
recipient = PagarMe::Recipient.create recipient_with_nested_bank_account_params
|
19
19
|
split_rules = [ { recipient_id: recipient.id, percentage: 100 } ]
|
20
|
-
transaction = PagarMe::Transaction.charge
|
20
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_boleto_params(split_rules: split_rules)
|
21
21
|
|
22
22
|
assert_empty_balance recipient.balance
|
23
23
|
|
@@ -30,7 +30,7 @@ module PagarMe
|
|
30
30
|
should 'change recipient amount after recipient receive money' do
|
31
31
|
recipient = PagarMe::Recipient.create recipient_with_nested_bank_account_params
|
32
32
|
split_rules = [ { recipient_id: recipient.id, percentage: 100 } ]
|
33
|
-
transaction = PagarMe::Transaction.charge
|
33
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_boleto_params(split_rules: split_rules)
|
34
34
|
|
35
35
|
assert_empty_balance recipient.balance
|
36
36
|
|
@@ -41,12 +41,12 @@ module PagarMe
|
|
41
41
|
assert_equal anticipation.id, anticipation.confirm.id
|
42
42
|
end
|
43
43
|
|
44
|
-
should 'create a building anticipation
|
44
|
+
should 'create a building anticipation and later delete it' do
|
45
45
|
recipient = PagarMe::Recipient.default
|
46
46
|
anticipation = recipient.bulk_anticipate anticipation_params(build: true)
|
47
47
|
|
48
48
|
assert_equal anticipation.id, PagarMe::BulkAnticipation.find(recipient.id, anticipation.id).id
|
49
|
-
PagarMe::BulkAnticipation.delete(recipient.id, anticipation.id)
|
49
|
+
PagarMe::BulkAnticipation.delete(recipient.id, anticipation.id)
|
50
50
|
assert_raises PagarMe::NotFound do
|
51
51
|
PagarMe::BulkAnticipation.find recipient.id, anticipation.id
|
52
52
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
module PagarMe
|
4
|
+
class CustomerTest < PagarMeTestCase
|
5
|
+
should 'be able to create' do
|
6
|
+
customer = PagarMe::Customer.create external_id_customer_params[:customer]
|
7
|
+
assert customer.id
|
8
|
+
assert_equal customer.name, 'Morpheus Fishburne'
|
9
|
+
assert_equal customer.type, 'individual'
|
10
|
+
assert_equal customer.external_id, "#3311"
|
11
|
+
assert_equal customer.country, 'br'
|
12
|
+
assert_equal customer.birthday, "1965-01-01"
|
13
|
+
assert customer.phone_numbers.any?
|
14
|
+
assert_equal customer.phone_numbers, ["+5511999998888", "+5511888889999"]
|
15
|
+
end
|
16
|
+
|
17
|
+
should 'be able to find by id' do
|
18
|
+
customer = PagarMe::Customer.create external_id_customer_params[:customer]
|
19
|
+
found_customer = PagarMe::Customer.find_by_id customer.id
|
20
|
+
assert_equal customer.id, found_customer.id
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
module PagarMe
|
4
|
+
class PaymentLinkTest < PagarMeTestCase
|
5
|
+
should 'be able to create a payment_link' do
|
6
|
+
payment_link = PagarMe::PaymentLink.create payment_link_params
|
7
|
+
assert_equal payment_link.amount, 1000
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'be able to cancel a payment_link' do
|
11
|
+
payment_link = PagarMe::PaymentLink.create payment_link_params
|
12
|
+
payment_link.cancel
|
13
|
+
assert_equal payment_link.status, 'canceled'
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'be able to search by short_id' do
|
17
|
+
pl = PagarMe::PaymentLink.create payment_link_params
|
18
|
+
payment_links = PagarMe::PaymentLink.find short_id: pl.short_id
|
19
|
+
|
20
|
+
assert payment_links.size > 0
|
21
|
+
payment_links.each do |payment_link|
|
22
|
+
assert_equal payment_link.short_id, pl.short_id
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_relative '../../test_helper'
|
2
2
|
|
3
3
|
module PagarMe
|
4
|
-
class
|
4
|
+
class PostbackTest < PagarMeTestCase
|
5
5
|
should 'be valid when has valid signature' do
|
6
6
|
fixed_api_key do
|
7
7
|
postback = PagarMe::Postback.new postback_response_params
|
@@ -9,7 +9,7 @@ module PagarMe
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
should 'be valid when has invalid signature' do
|
12
|
+
should 'not be valid when has invalid signature' do
|
13
13
|
postback = PagarMe::Postback.new postback_response_params(signature: 'sha1=invalid signature')
|
14
14
|
assert !postback.valid?
|
15
15
|
end
|
@@ -12,10 +12,11 @@ module PagarMe
|
|
12
12
|
|
13
13
|
should 'be able to see subscription transactions' do
|
14
14
|
plan = PagarMe::Plan.create no_trial_plan_params
|
15
|
-
subscription = PagarMe::Subscription.create
|
15
|
+
subscription = PagarMe::Subscription.create subscription_with_customer_with_card_params(plan: plan)
|
16
16
|
assert_no_trial_subscription_created subscription, plan
|
17
17
|
|
18
|
-
sleep
|
18
|
+
sleep 5
|
19
|
+
|
19
20
|
assert subscription.transactions.count > 0
|
20
21
|
assert_equal subscription.transactions.first.status, 'paid'
|
21
22
|
end
|
@@ -96,5 +97,14 @@ module PagarMe
|
|
96
97
|
subscription.cancel
|
97
98
|
assert_equal subscription.status, 'canceled'
|
98
99
|
end
|
100
|
+
|
101
|
+
should 'be able to settle_charge a subscription' do
|
102
|
+
plan = PagarMe::Plan.create no_trial_plan_params
|
103
|
+
subscription = PagarMe::Subscription.create boleto_with_customer_params(plan: plan)
|
104
|
+
assert_equal subscription.status, 'unpaid'
|
105
|
+
|
106
|
+
subscription.settle_charge
|
107
|
+
assert_equal subscription.status, 'paid'
|
108
|
+
end
|
99
109
|
end
|
100
110
|
end
|
@@ -48,8 +48,8 @@ module PagarMe
|
|
48
48
|
assert_equal transaction.status, 'refunded'
|
49
49
|
end
|
50
50
|
|
51
|
-
should 'be able to create
|
52
|
-
transaction = PagarMe::Transaction.charge
|
51
|
+
should 'be able to create transaction with boleto' do
|
52
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_boleto_params
|
53
53
|
assert_transaction_with_bolelo_on_waiting_payment transaction
|
54
54
|
end
|
55
55
|
|
@@ -89,7 +89,7 @@ module PagarMe
|
|
89
89
|
end
|
90
90
|
|
91
91
|
should 'require parameters on the refund with boleto' do
|
92
|
-
transaction = PagarMe::Transaction.create
|
92
|
+
transaction = PagarMe::Transaction.create transaction_with_customer_with_boleto_params
|
93
93
|
assert_equal transaction.status, 'waiting_payment'
|
94
94
|
|
95
95
|
assert_raises(PagarMe::ValidationError){ transaction.refund }
|
@@ -137,11 +137,27 @@ module PagarMe
|
|
137
137
|
assert_equal transaction.refunded_amount, 0
|
138
138
|
end
|
139
139
|
|
140
|
-
should '
|
141
|
-
|
142
|
-
PagarMe::Transaction.
|
140
|
+
should 'be able to create a transaction with billing shipping and items' do
|
141
|
+
change_company(api_version: { test: '2017-08-28', live: '2017-08-28'}) do
|
142
|
+
transaction = PagarMe::Transaction.create transaction_with_external_id_customer_with_billing_with_shipping_with_item_with_card_params
|
143
|
+
found_transaction = PagarMe::Transaction.find_by_id transaction.id
|
144
|
+
|
145
|
+
assert_equal found_transaction.billing, transaction.billing
|
146
|
+
assert_equal found_transaction.shipping, transaction.shipping
|
147
|
+
assert_equal found_transaction.items, transaction.items
|
148
|
+
|
149
|
+
assert found_transaction.billing
|
150
|
+
assert found_transaction.shipping
|
151
|
+
assert found_transaction.items
|
152
|
+
|
153
|
+
assert_transaction_successfully_paid transaction
|
143
154
|
end
|
144
|
-
|
155
|
+
end
|
156
|
+
|
157
|
+
should 'validate transaction with invalid card_number' do
|
158
|
+
transaction = PagarMe::Transaction.new transaction_with_customer_with_invalid_card_number_params
|
159
|
+
transaction.charge
|
160
|
+
assert_equal transaction.status, 'refused'
|
145
161
|
end
|
146
162
|
|
147
163
|
should 'validate transaction missing card_holder_name' do
|
data/test/test_helper.rb
CHANGED
@@ -35,7 +35,7 @@ class PagarMeTestCase < Test::Unit::TestCase
|
|
35
35
|
protected
|
36
36
|
def ensure_positive_balance
|
37
37
|
VCR.use_cassette 'TestCase/ensure_positive_balance' do
|
38
|
-
transaction = PagarMe::Transaction.charge
|
38
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_boleto_params(amount: 100_000_00)
|
39
39
|
transaction.status = :paid
|
40
40
|
transaction.save
|
41
41
|
end
|
@@ -55,18 +55,28 @@ class PagarMeTestCase < Test::Unit::TestCase
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
59
|
-
|
60
|
-
|
58
|
+
def change_company(api_version: nil, &block)
|
59
|
+
company = temporary_company api_version: api_version
|
60
|
+
change_api_and_encryption_keys api_key: company.api_key.test, encryption_key: company.encryption_key.test, &block
|
61
|
+
end
|
62
|
+
|
63
|
+
def change_api_and_encryption_keys(api_key: FIXED_API_KEY, encryption_key: FIXED_ENCRYPTION_KEY)
|
64
|
+
previous_encryption_key = PagarMe.encryption_key
|
65
|
+
previous_api_key = PagarMe.api_key
|
66
|
+
|
67
|
+
PagarMe.encryption_key = encryption_key
|
68
|
+
PagarMe.api_key = api_key
|
61
69
|
yield
|
62
|
-
|
63
|
-
PagarMe.
|
70
|
+
|
71
|
+
PagarMe.encryption_key = previous_encryption_key
|
72
|
+
PagarMe.api_key = previous_api_key
|
64
73
|
end
|
74
|
+
alias :fixed_api_key :change_api_and_encryption_keys
|
65
75
|
|
66
|
-
def temporary_company
|
67
|
-
VCR.use_cassette
|
76
|
+
def temporary_company(api_version: nil)
|
77
|
+
VCR.use_cassette "TestCase/tmp_company/api_key/#{api_version}" do
|
68
78
|
PagarMe.api_key = FIXED_API_KEY
|
69
|
-
PagarMe::Company.temporary
|
79
|
+
PagarMe::Company.temporary api_version: api_version
|
70
80
|
end
|
71
81
|
end
|
72
82
|
|
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: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Franceschi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-07-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -54,21 +54,21 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '3.0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: webmock
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '2.3'
|
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
|
-
version: '
|
69
|
+
version: '2.3'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: pry
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: vcr
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: rake
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|
@@ -192,16 +192,21 @@ files:
|
|
192
192
|
- lib/pagarme/resources/balance.rb
|
193
193
|
- lib/pagarme/resources/balance_operation.rb
|
194
194
|
- lib/pagarme/resources/bank_account.rb
|
195
|
+
- lib/pagarme/resources/billing.rb
|
195
196
|
- lib/pagarme/resources/bulk_anticipation.rb
|
196
197
|
- lib/pagarme/resources/card.rb
|
197
198
|
- lib/pagarme/resources/company.rb
|
198
199
|
- lib/pagarme/resources/customer.rb
|
200
|
+
- lib/pagarme/resources/fee_collection.rb
|
201
|
+
- lib/pagarme/resources/item.rb
|
199
202
|
- lib/pagarme/resources/payable.rb
|
203
|
+
- lib/pagarme/resources/payment_link.rb
|
200
204
|
- lib/pagarme/resources/phone.rb
|
201
205
|
- lib/pagarme/resources/plan.rb
|
202
206
|
- lib/pagarme/resources/postal_code.rb
|
203
207
|
- lib/pagarme/resources/postback.rb
|
204
208
|
- lib/pagarme/resources/recipient.rb
|
209
|
+
- lib/pagarme/resources/shipping.rb
|
205
210
|
- lib/pagarme/resources/split_rule.rb
|
206
211
|
- lib/pagarme/resources/subscription.rb
|
207
212
|
- lib/pagarme/resources/transaction.rb
|
@@ -218,7 +223,9 @@ files:
|
|
218
223
|
- test/pagarme/resources/bank_account_test.rb
|
219
224
|
- test/pagarme/resources/bulk_anticipation_test.rb
|
220
225
|
- test/pagarme/resources/card_test.rb
|
226
|
+
- test/pagarme/resources/customer_test.rb
|
221
227
|
- test/pagarme/resources/payable_test.rb
|
228
|
+
- test/pagarme/resources/payment_link.rb
|
222
229
|
- test/pagarme/resources/plan_test.rb
|
223
230
|
- test/pagarme/resources/postback_test.rb
|
224
231
|
- test/pagarme/resources/recipient_test.rb
|
@@ -246,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
253
|
version: '0'
|
247
254
|
requirements: []
|
248
255
|
rubyforge_project:
|
249
|
-
rubygems_version: 2.5.
|
256
|
+
rubygems_version: 2.5.2.3
|
250
257
|
signing_key:
|
251
258
|
specification_version: 4
|
252
259
|
summary: Allows integration with Pagar.me
|
@@ -259,7 +266,9 @@ test_files:
|
|
259
266
|
- test/pagarme/resources/bank_account_test.rb
|
260
267
|
- test/pagarme/resources/bulk_anticipation_test.rb
|
261
268
|
- test/pagarme/resources/card_test.rb
|
269
|
+
- test/pagarme/resources/customer_test.rb
|
262
270
|
- test/pagarme/resources/payable_test.rb
|
271
|
+
- test/pagarme/resources/payment_link.rb
|
263
272
|
- test/pagarme/resources/plan_test.rb
|
264
273
|
- test/pagarme/resources/postback_test.rb
|
265
274
|
- test/pagarme/resources/recipient_test.rb
|