mp_api 0.2.0 → 0.3.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 +10 -26
- data/lib/mp_api/client.rb +13 -31
- data/lib/mp_api/payment.rb +12 -27
- data/lib/mp_api/payment_error.rb +107 -0
- data/lib/mp_api/payment_method.rb +16 -18
- data/lib/mp_api/token.rb +9 -25
- data/lib/mp_api/version.rb +1 -1
- data/lib/mp_api.rb +1 -6
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7b356595131871a92d83ed3c6b65dadc8e291b02c1a1ad4b53db37b60496ca7
|
4
|
+
data.tar.gz: 3a46534f5c479ccf7030b241923ef61d70c8d2348083df66b1f69b690fe47064
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4730a189dc028ff8fb7ec793a579ab0c01ec8e3b2d3be7c930044d3c2a116783b2c8106d8376ed2eef8197f8febe1bca66f82d603d5cf206e0154c8406980ab
|
7
|
+
data.tar.gz: 0736ee512a1748cd78e44367b1fc349accaf3fe40e8d9dd1a8582f694b75553291c348ee3703d34c614d9b48b0f85fb02f168769d09316ad6c108cc63a7f325c
|
data/README.md
CHANGED
@@ -1,35 +1,19 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
TODO: Delete this and the text below, and describe your gem
|
4
|
-
|
5
|
-
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/mercado_pago_api`. To experiment with that code, run `bin/console` for an interactive prompt.
|
1
|
+
# MpApi
|
6
2
|
|
7
3
|
## Installation
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
Install the gem and add to the application's Gemfile by executing:
|
12
|
-
|
13
|
-
$ bundle add UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG
|
14
|
-
|
15
|
-
If bundler is not being used to manage dependencies, install the gem by executing:
|
16
|
-
|
17
|
-
$ gem install UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG
|
18
|
-
|
19
|
-
## Usage
|
20
|
-
|
21
|
-
TODO: Write usage instructions here
|
22
|
-
|
23
|
-
## Development
|
24
|
-
|
25
|
-
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
5
|
+
Add solidus_bling to your Gemfile:
|
26
6
|
|
27
|
-
|
7
|
+
```ruby
|
8
|
+
gem 'mp_api'
|
9
|
+
```
|
28
10
|
|
29
|
-
|
11
|
+
Bundle your dependencies and run the installation generator:
|
30
12
|
|
31
|
-
|
13
|
+
```shell
|
14
|
+
bin/rails generate mp_api:install
|
15
|
+
```
|
32
16
|
|
33
17
|
## License
|
34
18
|
|
35
|
-
|
19
|
+
Copyright (c) 2023 CaioGarcia1, released under the New BSD License.
|
data/lib/mp_api/client.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module MpApi
|
2
2
|
class Client < Ac::Base
|
3
3
|
BASE_URL = "https://api.mercadopago.com/v1/"
|
4
|
-
MAX_RETRIES =
|
4
|
+
MAX_RETRIES = 1
|
5
5
|
attr_reader :access_token
|
6
6
|
def initialize(access_token=MpApi.configuration.access_token)
|
7
7
|
@headers = {
|
@@ -12,48 +12,30 @@ module MpApi
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def create_payment(body)
|
15
|
-
|
16
|
-
p response.json unless response.success?
|
17
|
-
![500, 429].include?(response.code) || response['id']
|
18
|
-
end
|
19
|
-
raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
|
20
|
-
response.json
|
15
|
+
post("/payments", body: body, headers: @headers) { |response| validate_response(response, 'id')}
|
21
16
|
end
|
22
17
|
|
23
18
|
def get_payment(payment_id)
|
24
|
-
|
25
|
-
p response.json unless response.success?
|
26
|
-
![500, 429].include?(response.code) || response['id']
|
27
|
-
end
|
28
|
-
raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
|
29
|
-
response.json
|
19
|
+
get("/payments/#{payment_id}") { |response| validate_response(response, 'id')}
|
30
20
|
end
|
31
21
|
|
32
22
|
def create_token(card_token_data)
|
33
|
-
|
34
|
-
p response.json unless response.success?
|
35
|
-
![500, 429].include?(response.code) || response['id']
|
36
|
-
end
|
37
|
-
raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
|
38
|
-
response.json
|
23
|
+
post("/card_tokens", body: card_token_data, headers: @headers) { |response| validate_response(response, 'id')}
|
39
24
|
end
|
40
25
|
|
41
26
|
def search_payment_methods(query)
|
42
|
-
|
43
|
-
p response.json unless response.success?
|
44
|
-
![500, 429].include?(response.code) || response.json['results'][0]
|
45
|
-
end
|
46
|
-
raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
|
47
|
-
response.json
|
27
|
+
get("/payment_methods/search", params: query) { |response| validate_response(response, ['results', 0])}
|
48
28
|
end
|
49
29
|
|
50
30
|
def get_payment_methods
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
31
|
+
get("/payment_methods") { |response| validate_response(response, 'id')}
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def validate_response(response, required_response_key)
|
37
|
+
puts response.json unless response.success?
|
38
|
+
![500, 429].include?(response.code) || response.json.dig(*required_response_key)
|
57
39
|
end
|
58
40
|
|
59
41
|
end
|
data/lib/mp_api/payment.rb
CHANGED
@@ -1,17 +1,8 @@
|
|
1
1
|
module MpApi
|
2
2
|
class Payment
|
3
|
-
|
4
|
-
def self.find_by_id(payment_id)
|
5
|
-
begin
|
6
|
-
response = Client.new.get_payment(payment_id)
|
7
|
-
rescue RuntimeError => e
|
8
|
-
e.message == 'Too many retries' ? raise(TooManyRequestsError) : raise(e)
|
9
|
-
end
|
10
|
-
new(**build_hash(response))
|
11
|
-
end
|
12
3
|
|
13
|
-
attr_reader :status_detail, :three_ds_info_creq, :three_ds_info_external_resource_url, :three_d_secure_mode, :id, :description, :date_approved, :date_created, :money_release_date, :payer_email, :payer_identification_type, :payer_identification_number, :payment_method, :payment_type, :qr_code, :qr_code_base_64, :transaction_id, :ticket_url, :status, :amount, :token, :issuer_id, :installments, :statement_descriptor, :items
|
14
|
-
def initialize(status_detail:nil, three_ds_info_creq:nil, three_ds_info_external_resource_url:nil, three_d_secure_mode:nil, id:nil, description:nil, date_approved:nil, date_created:nil, money_release_date:nil, payer_email:, payer_identification_type:, payer_identification_number:, payment_method:, payment_type:nil, qr_code:nil, qr_code_base_64:nil, transaction_id:nil, ticket_url:nil, status:nil, amount:, token:nil, issuer_id:nil, installments:nil, items:nil, statement_descriptor:nil)
|
4
|
+
attr_reader :status_detail, :three_ds_info_creq, :three_ds_info_external_resource_url, :three_d_secure_mode, :id, :description, :date_approved, :date_created, :money_release_date, :payer_email, :payer_identification_type, :payer_identification_number, :payment_method, :payment_type, :qr_code, :qr_code_base_64, :transaction_id, :ticket_url, :status, :amount, :token, :issuer_id, :installments, :statement_descriptor, :items, :errors
|
5
|
+
def initialize(status_detail:nil, three_ds_info_creq:nil, three_ds_info_external_resource_url:nil, three_d_secure_mode:nil, id:nil, description:nil, date_approved:nil, date_created:nil, money_release_date:nil, payer_email:, payer_identification_type:, payer_identification_number:, payment_method:, payment_type:nil, qr_code:nil, qr_code_base_64:nil, transaction_id:nil, ticket_url:nil, status:nil, amount:, token:nil, issuer_id:nil, installments:nil, items:nil, statement_descriptor:nil, errors:nil)
|
15
6
|
@id = id
|
16
7
|
@description = description
|
17
8
|
@date_approved = date_approved
|
@@ -37,14 +28,7 @@ module MpApi
|
|
37
28
|
@status_detail = status_detail
|
38
29
|
@statement_descriptor = statement_descriptor
|
39
30
|
@items = items
|
40
|
-
|
41
|
-
# {
|
42
|
-
# id: "100002",
|
43
|
-
# title: "Retrovisor Jeep",
|
44
|
-
# picture_url: "https://http2.mlstatic.com/D_NQ_NP_2X_754724-MLB73109764910_122023-F.webp",
|
45
|
-
# quantity: 4,
|
46
|
-
# unit_price: 3
|
47
|
-
# }
|
31
|
+
@errors = errors
|
48
32
|
end
|
49
33
|
|
50
34
|
def build_json
|
@@ -80,12 +64,13 @@ module MpApi
|
|
80
64
|
end
|
81
65
|
|
82
66
|
def create
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
67
|
+
response = Client.new.create_payment(JSON.dump(build_json))
|
68
|
+
self.class.new(**self.class.build_hash(response.json))
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.find_by_id(payment_id)
|
72
|
+
response = Client.new.get_payment(payment_id)
|
73
|
+
new(**build_hash(response.json))
|
89
74
|
end
|
90
75
|
|
91
76
|
def self.build_hash json_response
|
@@ -108,9 +93,9 @@ module MpApi
|
|
108
93
|
ticket_url: json_response.dig('point_of_interaction', 'transaction_data', 'ticket_url'),
|
109
94
|
status: json_response.dig('status'),
|
110
95
|
status_detail: json_response.dig('status_detail'),
|
111
|
-
amount: json_response.dig('transaction_amount')
|
96
|
+
amount: json_response.dig('transaction_amount'),
|
97
|
+
errors: PaymentError.new(json_response: json_response).errors
|
112
98
|
}
|
113
99
|
end
|
114
|
-
|
115
100
|
end
|
116
101
|
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
module MpApi
|
2
|
+
class PaymentError
|
3
|
+
|
4
|
+
attr_reader :json_response
|
5
|
+
def initialize(json_response:)
|
6
|
+
@json_response = json_response
|
7
|
+
end
|
8
|
+
|
9
|
+
def errors
|
10
|
+
return nil unless json_response['error']
|
11
|
+
json_response['cause'].map {|cause| message_by_error_code(cause['code']) || cause['description']}
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def message_by_error_code(code)
|
16
|
+
{
|
17
|
+
1 => "Erro nos parâmetros.",
|
18
|
+
3 => "O token deve ser de teste.",
|
19
|
+
5 => "É necessário fornecer seu access_token para prosseguir.",
|
20
|
+
23 => "Os seguintes parâmetros devem ter uma data válida e no formato (aaaa-MM-dd'T'HH:mm:ssz) date_of_expiration.",
|
21
|
+
1000 => "Número de linhas excedeu os limites.",
|
22
|
+
1001 => "O formato da data deve ser aaaa-MM-dd'T'HH:mm:ss.SSSZ.",
|
23
|
+
2001 => "Já foi enviada a mesma solicitação no último minuto.",
|
24
|
+
2002 => "Cliente não encontrado.",
|
25
|
+
2004 => "Falha ao enviar POST para a API de Transações do Gateway.",
|
26
|
+
2006 => "Token do cartão não encontrado.",
|
27
|
+
2007 => "Falha na conexão com a API de Token do Cartão.",
|
28
|
+
2009 => "O emissor do token do cartão não pode ser nulo.",
|
29
|
+
2011 => "Id do método de pagamento inválido.",
|
30
|
+
2034 => "Erro estranho do mercado pago de usuarios envolvidos, normalmente causado pelo email do pagador.",
|
31
|
+
2060 => "O cliente não pode ser igual ao coletor.",
|
32
|
+
2062 => "Token do cartão inválido.",
|
33
|
+
2067 => "Número de identificação do usuário inválido.",
|
34
|
+
2072 => "Valor inválido para transaction_amount.",
|
35
|
+
2077 => "Captura diferida não suportada.",
|
36
|
+
2123 => "Operadores inválidos envolvidos.",
|
37
|
+
2131 => "Não é possível inferir o Método de Pagamento.",
|
38
|
+
3000 => "Você deve fornecer o nome do titular do cartão com seus dados do cartão.",
|
39
|
+
3001 => "Você deve fornecer o id do emissor do cartão com seus dados do cartão.",
|
40
|
+
3003 => "Id do token do cartão inválido.",
|
41
|
+
3004 => "Parâmetro site_id inválido.",
|
42
|
+
3005 => "Ação inválida, o recurso está em um estado que não permite esta operação. Para mais informações, consulte o estado que o recurso possui.",
|
43
|
+
3006 => "Parâmetro id do token do cartão inválido.",
|
44
|
+
3007 => "O parâmetro client_id não pode ser nulo ou vazio.",
|
45
|
+
3008 => "Token do Cartão não encontrado.",
|
46
|
+
3009 => "client_id não autorizado.",
|
47
|
+
3010 => "Cartão não encontrado na lista branca.",
|
48
|
+
3011 => "Método de pagamento não encontrado.",
|
49
|
+
3012 => "Parâmetro comprimento do código de segurança inválido.",
|
50
|
+
3013 => "O parâmetro código de segurança é um campo obrigatório e não pode ser nulo ou vazio.",
|
51
|
+
3014 => "Parâmetro método de pagamento inválido.",
|
52
|
+
3015 => "Parâmetro comprimento do número do cartão inválido.",
|
53
|
+
3016 => "Parâmetro número do cartão inválido.",
|
54
|
+
3017 => "O parâmetro id do número do cartão não pode ser nulo ou vazio.",
|
55
|
+
3018 => "O parâmetro mês de vencimento não pode ser nulo ou vazio.",
|
56
|
+
3019 => "O parâmetro ano de vencimento não pode ser nulo ou vazio.",
|
57
|
+
3020 => "O parâmetro nome do titular do cartão não pode ser nulo ou vazio.",
|
58
|
+
3021 => "O parâmetro número do documento do titular do cartão não pode ser nulo ou vazio.",
|
59
|
+
3022 => "O parâmetro tipo de documento do titular do cartão não pode ser nulo ou vazio.",
|
60
|
+
3023 => "O parâmetro subtipo de documento do titular do cartão não pode ser nulo ou vazio.",
|
61
|
+
3024 => "Ação inválida - reembolso parcial não suportado para esta transação.",
|
62
|
+
3025 => "Código de autenticação inválido.",
|
63
|
+
3026 => "Id do cartão inválido para este id do método de pagamento.",
|
64
|
+
3027 => "Id do tipo de pagamento inválido.",
|
65
|
+
3028 => "Id do método de pagamento inválido.",
|
66
|
+
3029 => "Mês de vencimento do cartão inválido.",
|
67
|
+
3030 => "Ano de vencimento do cartão inválido.",
|
68
|
+
3031 => "Secure_code_id não pode ser nulo.",
|
69
|
+
3032 => "Comprimento inválido do código de segurança 3033 3034 - Validação do número do cartão inválida.",
|
70
|
+
4000 => "Atributo do cartão não pode ser nulo.",
|
71
|
+
4001 => "Atributo do id do método de pagamento não pode ser nulo.",
|
72
|
+
4002 => "Atributo do valor da transação não pode ser nulo.",
|
73
|
+
4003 => "Atributo do valor da transação deve ser numérico.",
|
74
|
+
4004 => "Atributo de parcelas não pode ser nulo.",
|
75
|
+
4005 => "Atributo de parcelas deve ser numérico.",
|
76
|
+
4006 => "Atributo do pagador está malformado.",
|
77
|
+
4007 => "Atributo do site_id não pode ser nulo.",
|
78
|
+
4012 => "Atributo do id do pagador não pode ser nulo.",
|
79
|
+
4013 => "Atributo do tipo de pagador não pode ser nulo.",
|
80
|
+
4015 => "Atributo do id de referência do método de pagamento não pode ser nulo.",
|
81
|
+
4016 => "Atributo do id de referência do método de pagamento deve ser numérico.",
|
82
|
+
4017 => "Atributo do status não pode ser nulo.",
|
83
|
+
4018 => "Atributo do id do pagamento não pode ser nulo.",
|
84
|
+
4019 => "Atributo do id do pagamento deve ser numérico.",
|
85
|
+
4020 => "Atributo notificaction_url deve ser uma URL válida.",
|
86
|
+
4021 => "Atributo notificaction_url deve ter menos de 500 caracteres.",
|
87
|
+
4022 => "Atributo metadata deve ser um JSON válido.",
|
88
|
+
4023 => "Atributo do valor da transação não pode ser nulo.",
|
89
|
+
4024 => "Atributo do valor da transação deve ser numérico.",
|
90
|
+
4025 => "Id do reembolso não pode ser nulo.",
|
91
|
+
4026 => "Valor do cupom inválido.",
|
92
|
+
4027 => "Atributo do id da campanha deve ser numérico.",
|
93
|
+
4028 => "Atributo do valor do cupom deve ser numérico.",
|
94
|
+
4029 => "Tipo de pagador inválido.",
|
95
|
+
4037 => "Valor da transação inválido.",
|
96
|
+
4038 => "A taxa de aplicação não pode ser maior que o valor da transação.",
|
97
|
+
4039 => "A taxa de aplicação não pode ser um valor negativo.",
|
98
|
+
4049 => "Atributo do valor da transação deve ser positivo.",
|
99
|
+
4050 => "O email do pagador deve ser um email válido.",
|
100
|
+
4051 => "O email do pagador deve ter menos de 254 caracteres.",
|
101
|
+
6033 => "Usuário indisponível.",
|
102
|
+
7523 => "Data de vencimento inválida."
|
103
|
+
}[code]
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
end
|
@@ -1,14 +1,18 @@
|
|
1
1
|
module MpApi
|
2
2
|
|
3
3
|
class PaymentMethod
|
4
|
-
|
4
|
+
|
5
|
+
attr_reader :payment_method_id, :issuer_id, :installments, :errors
|
6
|
+
def initialize(payment_method_id: , issuer_id: , installments:, errors:nil)
|
7
|
+
@payment_method_id = payment_method_id
|
8
|
+
@issuer_id = issuer_id
|
9
|
+
@installments = installments
|
10
|
+
@errors = errors
|
11
|
+
end
|
12
|
+
|
5
13
|
def self.find_by_first_six_digits(first_six_digits, credit: true)
|
6
|
-
|
7
|
-
|
8
|
-
rescue RuntimeError => e
|
9
|
-
e.message == 'Too many retries' ? raise(TooManyRequestsError) : raise(e)
|
10
|
-
end
|
11
|
-
new(**build_hash(response, credit))
|
14
|
+
response = Client.new.search_payment_methods(build_query(first_six_digits))
|
15
|
+
new(**build_hash(response.json, credit))
|
12
16
|
end
|
13
17
|
|
14
18
|
def self.build_query(first_six_digits)
|
@@ -21,21 +25,15 @@ module MpApi
|
|
21
25
|
|
22
26
|
def self.build_hash(response, credit)
|
23
27
|
payment_type_id = credit ? 'credit_card' : 'debit_card'
|
24
|
-
payment_method = response.dig('results')
|
28
|
+
payment_method = response.dig('results')&.find {|pm| pm['payment_type_id'] == payment_type_id}
|
25
29
|
{
|
26
|
-
payment_method_id: payment_method
|
27
|
-
issuer_id: payment_method
|
28
|
-
installments: payment_method
|
30
|
+
payment_method_id: payment_method&.dig('id'),
|
31
|
+
issuer_id: payment_method&.dig('issuer', 'id'),
|
32
|
+
installments: payment_method&.dig('payer_costs'),
|
33
|
+
errors: response.dig('message')
|
29
34
|
}
|
30
35
|
end
|
31
36
|
|
32
|
-
attr_reader :payment_method_id, :issuer_id, :installments
|
33
|
-
def initialize(payment_method_id: , issuer_id: , installments:)
|
34
|
-
@payment_method_id = payment_method_id
|
35
|
-
@issuer_id = issuer_id
|
36
|
-
@installments = installments
|
37
|
-
end
|
38
|
-
|
39
37
|
end
|
40
38
|
|
41
39
|
end
|
data/lib/mp_api/token.rb
CHANGED
@@ -2,14 +2,15 @@ module MpApi
|
|
2
2
|
|
3
3
|
class Token
|
4
4
|
|
5
|
-
attr_reader :card_number, :expiration_year, :expiration_month, :security_code, :cardholder_name, :id
|
6
|
-
def initialize(card_number
|
5
|
+
attr_reader :card_number, :expiration_year, :expiration_month, :security_code, :cardholder_name, :id, :errors
|
6
|
+
def initialize(card_number:, expiration_year:, expiration_month:, security_code:, cardholder_name:, id:nil, errors:nil)
|
7
7
|
@card_number = card_number
|
8
8
|
@expiration_year = expiration_year
|
9
9
|
@expiration_month = expiration_month
|
10
10
|
@security_code = security_code
|
11
11
|
@cardholder_name = cardholder_name
|
12
12
|
@id = id
|
13
|
+
@errors = errors
|
13
14
|
end
|
14
15
|
|
15
16
|
def build_json
|
@@ -25,12 +26,8 @@ module MpApi
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def create
|
28
|
-
|
29
|
-
|
30
|
-
self.class.new(**self.class.build_hash(response))
|
31
|
-
rescue RuntimeError => e
|
32
|
-
e.message == 'Too many retries' ? raise(TooManyRequestsError) : raise(e)
|
33
|
-
end
|
29
|
+
response = Client.new.create_token(JSON.dump(build_json))
|
30
|
+
self.class.new(**self.class.build_hash(response.json))
|
34
31
|
end
|
35
32
|
|
36
33
|
def self.build_hash(response)
|
@@ -38,25 +35,12 @@ module MpApi
|
|
38
35
|
id: response['id'],
|
39
36
|
expiration_year: response['expiration_year'],
|
40
37
|
expiration_month: response['expiration_month'],
|
41
|
-
cardholder_name: response
|
38
|
+
cardholder_name: response.dig('cardholder', 'name'),
|
39
|
+
card_number: response['card_number'],
|
40
|
+
security_code: response['security_code'],
|
41
|
+
errors: response['error']
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
48
|
-
# {"id"=>"78558e7bbb73b8939df27269fb6dcbf5",
|
49
|
-
# "first_six_digits"=>"503143",
|
50
|
-
# "expiration_month"=>11,
|
51
|
-
# "expiration_year"=>2025,
|
52
|
-
# "last_four_digits"=>"6351",
|
53
|
-
# "cardholder"=>{"identification"=>{}, "name"=>"APRO"},
|
54
|
-
# "status"=>"active",
|
55
|
-
# "date_created"=>"2023-11-27T09:42:13.887-04:00",
|
56
|
-
# "date_last_updated"=>"2023-11-27T09:42:13.887-04:00",
|
57
|
-
# "date_due"=>"2023-12-05T09:42:13.887-04:00",
|
58
|
-
# "luhn_validation"=>true,
|
59
|
-
# "live_mode"=>false,
|
60
|
-
# "require_esc"=>false,
|
61
|
-
# "card_number_length"=>16,
|
62
|
-
# "security_code_length"=>3}
|
data/lib/mp_api/version.rb
CHANGED
data/lib/mp_api.rb
CHANGED
@@ -3,17 +3,12 @@
|
|
3
3
|
require "ac"
|
4
4
|
require_relative "mp_api/client"
|
5
5
|
require_relative "mp_api/payment"
|
6
|
+
require_relative "mp_api/payment_error"
|
6
7
|
require_relative "mp_api/token"
|
7
8
|
require_relative "mp_api/payment_method"
|
8
9
|
require_relative "mp_api/version"
|
9
10
|
module MpApi
|
10
11
|
class Error < StandardError; end
|
11
|
-
|
12
|
-
class TooManyRequestsError < StandardError
|
13
|
-
def message
|
14
|
-
"Too many requests"
|
15
|
-
end
|
16
|
-
end
|
17
12
|
|
18
13
|
class RequestError < StandardError
|
19
14
|
def initialize(message="Request error")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mp_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- caio
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ac
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/mp_api.rb
|
40
40
|
- lib/mp_api/client.rb
|
41
41
|
- lib/mp_api/payment.rb
|
42
|
+
- lib/mp_api/payment_error.rb
|
42
43
|
- lib/mp_api/payment_method.rb
|
43
44
|
- lib/mp_api/token.rb
|
44
45
|
- lib/mp_api/version.rb
|