mp_api 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b92b7754e51f42f0fe88876439a45b7bd486f3d4a0b4ddbe7b0bc7f9f26f75e9
4
- data.tar.gz: 34b9b85fe2f993b63baa83f4cc6a2ef4b3a579ac3c9449fabd6ec91c703d6e85
3
+ metadata.gz: af6c473fbc12cab2fcc872a734480743f6da9e938f0289f58bcdf4b07275a9dd
4
+ data.tar.gz: 8c37b5e63d81b7187358db698480c57fcd5e8089c5ae06ec8407e9074420aaae
5
5
  SHA512:
6
- metadata.gz: bd4bb291826bb0883ad111cc1134636b5235c8022f0a03da6622ff441927f47ffc3a5836c119bf75c0ae18ec8d7dadf3fd3898a466036b66c5a7f93bbef52a12
7
- data.tar.gz: 688c348fa83bf6d42289673a8c114e5406534548991e7e0d338feb7d79280311352ca131041c36864a8be36ff49b5c67fd43af9a8d956dcd0aa3d609e8699e3c
6
+ metadata.gz: 2f2a9a0bdabd4326ddf2167258bf8584d5efa6c7ddc03bd5c6cf85fd9fe7a6353fc29935ce4268033acae052fcb3e03852e1b12289a86b9b31f7022d352605b1
7
+ data.tar.gz: 85ae787be3b4461d11bfc97f88def20b582e3d04d934e2fc785b862a7f26c28ea269aac143177a216c1ae8809b4e1a87ce4005a089d57450444115d79fb6caae
@@ -1,3 +1,3 @@
1
1
  MpApi.configure do |config|
2
2
  # config.access_token = nil
3
- end
3
+ end
data/lib/mp_api/client.rb CHANGED
@@ -1,42 +1,45 @@
1
- module MpApi
2
- class Client < Ac::Base
3
- BASE_URL = "https://api.mercadopago.com/v1/"
4
- MAX_RETRIES = 1
5
- attr_reader :access_token
6
- def initialize(access_token=MpApi.configuration.access_token)
7
- @headers = {
8
- "Content-Type": "application/json",
9
- 'x-idempotency-key' => SecureRandom.uuid
10
- }
11
- super access_token
12
- end
13
-
14
- def create_payment(body)
15
- post("/payments", body: body, headers: @headers) { |response| validate_response(response, 'id')}
16
- end
17
-
18
- def get_payment(payment_id)
19
- get("/payments/#{payment_id}") { |response| validate_response(response, 'id')}
20
- end
21
-
22
- def create_token(card_token_data)
23
- post("/card_tokens", body: card_token_data, headers: @headers) { |response| validate_response(response, 'id')}
24
- end
25
-
26
- def search_payment_methods(query)
27
- get("/payment_methods/search", params: query) { |response| validate_response(response, ['results', 0])}
28
- end
29
-
30
- def get_payment_methods
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)
39
- end
40
-
41
- end
42
- end
1
+ module MpApi
2
+ class Client < Ac::Base
3
+ BASE_URL = "https://api.mercadopago.com/v1/"
4
+ MAX_RETRIES = 1
5
+ attr_reader :access_token
6
+ def initialize(access_token = MpApi.configuration.access_token)
7
+ @headers = {
8
+ "Content-Type" => "application/json",
9
+ "x-idempotency-key" => SecureRandom.uuid
10
+ }
11
+ super(access_token)
12
+ end
13
+
14
+ def create_payment(body)
15
+ post("/payments", body: body, headers: @headers) { |response| validate_response(response, "id") }
16
+ end
17
+
18
+ def get_payment(payment_id)
19
+ get("/payments/#{payment_id}") { |response| validate_response(response, "id") }
20
+ end
21
+
22
+ def update_payment(payment_id, body)
23
+ put("/payments/#{payment_id}", body: body, headers: @headers) { |response| validate_response(response, "id") }
24
+ end
25
+
26
+ def create_token(card_token_data)
27
+ post("/card_tokens", body: card_token_data, headers: @headers) { |response| validate_response(response, "id") }
28
+ end
29
+
30
+ def search_payment_methods(query)
31
+ get("/payment_methods/search", params: query) { |response| validate_response(response, ["results", 0]) }
32
+ end
33
+
34
+ def get_payment_methods
35
+ get("/payment_methods") { |response| validate_response(response, "id") }
36
+ end
37
+
38
+ private
39
+
40
+ def validate_response(response, required_response_key)
41
+ puts response.json unless response.success?
42
+ ![500, 429].include?(response.code) || response.json.dig(*required_response_key)
43
+ end
44
+ end
45
+ end
@@ -1,8 +1,7 @@
1
1
  module MpApi
2
2
  class Payment
3
-
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)
3
+ 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, :error, :internal_error, :capture, :date_of_expiration
4
+ def initialize(payer_email:, payer_identification_type:, payer_identification_number:, payment_method:, amount:, 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, payment_type: nil, qr_code: nil, qr_code_base_64: nil, transaction_id: nil, ticket_url: nil, status: nil, token: nil, issuer_id: nil, installments: nil, items: nil, statement_descriptor: nil, error: nil, internal_error: nil, capture: nil, date_of_expiration: nil)
6
5
  @id = id
7
6
  @description = description
8
7
  @date_approved = date_approved
@@ -28,20 +27,33 @@ module MpApi
28
27
  @status_detail = status_detail
29
28
  @statement_descriptor = statement_descriptor
30
29
  @items = items
31
- @errors = errors
30
+ @error = error
31
+ @internal_error = internal_error
32
+ @capture = capture
33
+ @date_of_expiration = date_of_expiration
32
34
  end
33
35
 
34
36
  def build_json
35
- send("build_json_#{payment_method == 'pix' ? 'pix' : 'credit_card'}").except(:description)
37
+ send("build_json_#{(payment_method == "pix") ? "pix" : "credit_card"}").except(:description)
38
+ end
39
+
40
+ def build_update_json
41
+ {
42
+ # capture: capture,
43
+ status: status
44
+ # date_of_expiration: date_of_expiration,
45
+ # transaction_amount: amount
46
+ }.compact
36
47
  end
37
48
 
38
49
  def build_json_pix
39
50
  {
51
+ date_of_expiration: date_of_expiration,
40
52
  transaction_amount: amount,
41
53
  description: description,
42
54
  statement_descriptor: statement_descriptor,
43
55
  additional_info: {
44
- items: @items
56
+ items: items
45
57
  },
46
58
  payment_method_id: payment_method,
47
59
  payer: {
@@ -51,50 +63,61 @@ module MpApi
51
63
  number: payer_identification_number
52
64
  }
53
65
  }
54
- }
66
+ }.compact
55
67
  end
56
68
 
57
69
  def build_json_credit_card
58
70
  build_json_pix.merge({
71
+ capture: capture,
59
72
  token: token,
60
73
  issuer_id: issuer_id,
61
74
  installments: installments,
62
- three_d_secure_mode: three_d_secure_mode ? 'optional' : 'not_supported'
63
- })
75
+ three_d_secure_mode: three_d_secure_mode ? "optional" : "not_supported"
76
+ }.compact)
64
77
  end
65
-
78
+
66
79
  def create
67
80
  response = Client.new.create_payment(JSON.dump(build_json))
68
81
  self.class.new(**self.class.build_hash(response.json))
69
82
  end
70
-
83
+
84
+ def update attributes
85
+ attributes.each do |key, value|
86
+ instance_variable_set("@#{key}", value)
87
+ end
88
+ Client.new.update_payment(id, JSON.dump(build_update_json))
89
+ self.class.find_by_id(id)
90
+ end
91
+
71
92
  def self.find_by_id(payment_id)
72
93
  response = Client.new.get_payment(payment_id)
73
94
  new(**build_hash(response.json))
74
95
  end
75
96
 
76
97
  def self.build_hash json_response
98
+ payment_error = PaymentError.new(json_response: json_response)
77
99
  {
78
- id: json_response.dig('id'),
79
- description: json_response.dig('description'),
80
- date_approved: json_response.dig('date_approved'),
81
- date_created: json_response.dig('date_created'),
82
- money_release_date: json_response.dig('money_release_date'),
83
- payer_email: json_response.dig('payer', 'email'),
84
- payer_identification_type: json_response.dig('payer', 'identification', 'type'),
85
- payer_identification_number: json_response.dig('payer', 'identification', 'number'),
86
- payment_method: json_response.dig('payment_method_id'),
87
- payment_type: json_response.dig('payment_type_id'),
88
- qr_code: json_response.dig('point_of_interaction', 'transaction_data', 'qr_code'),
89
- qr_code_base_64: json_response.dig('point_of_interaction', 'transaction_data', 'qr_code_base64'),
90
- three_ds_info_external_resource_url: json_response.dig('three_ds_info', 'external_resource_url'),
91
- three_ds_info_creq: json_response.dig('three_ds_info', 'creq'),
92
- transaction_id: json_response.dig('point_of_interaction', 'transaction_data', 'transaction_id'),
93
- ticket_url: json_response.dig('point_of_interaction', 'transaction_data', 'ticket_url'),
94
- status: json_response.dig('status'),
95
- status_detail: json_response.dig('status_detail'),
96
- amount: json_response.dig('transaction_amount'),
97
- errors: PaymentError.new(json_response: json_response).errors
100
+ id: json_response.dig("id"),
101
+ description: json_response.dig("description"),
102
+ date_approved: json_response.dig("date_approved"),
103
+ date_created: json_response.dig("date_created"),
104
+ money_release_date: json_response.dig("money_release_date"),
105
+ payer_email: json_response.dig("payer", "email"),
106
+ payer_identification_type: json_response.dig("payer", "identification", "type"),
107
+ payer_identification_number: json_response.dig("payer", "identification", "number"),
108
+ payment_method: json_response.dig("payment_method_id"),
109
+ payment_type: json_response.dig("payment_type_id"),
110
+ qr_code: json_response.dig("point_of_interaction", "transaction_data", "qr_code"),
111
+ qr_code_base_64: json_response.dig("point_of_interaction", "transaction_data", "qr_code_base64"),
112
+ three_ds_info_external_resource_url: json_response.dig("three_ds_info", "external_resource_url"),
113
+ three_ds_info_creq: json_response.dig("three_ds_info", "creq"),
114
+ transaction_id: json_response.dig("point_of_interaction", "transaction_data", "transaction_id"),
115
+ ticket_url: json_response.dig("point_of_interaction", "transaction_data", "ticket_url"),
116
+ status: json_response.dig("status"),
117
+ status_detail: json_response.dig("status_detail"),
118
+ amount: json_response.dig("transaction_amount"),
119
+ error: payment_error.error,
120
+ internal_error: payment_error.internal_error
98
121
  }
99
122
  end
100
123
  end
@@ -1,131 +1,39 @@
1
1
  module MpApi
2
2
  class PaymentError
3
-
4
3
  attr_reader :json_response
5
4
  def initialize(json_response:)
6
5
  @json_response = json_response
7
6
  end
8
7
 
9
- def errors
10
- rejected_payment_error || failed_payment_error
8
+ def error
9
+ rejected_payment_error
11
10
  end
12
-
11
+
12
+ def internal_error
13
+ failed_payment_error
14
+ end
15
+
13
16
  private
14
-
17
+
15
18
  def rejected_payment_error
16
- return nil unless ['rejected'].include?(json_response['status'])
17
- [message_by_status_detail(json_response['status_detail'])]
19
+ return nil unless ["rejected"].include?(json_response["status"])
20
+ message_by_status_detail(json_response["status_detail"])
18
21
  end
19
22
 
20
23
  def failed_payment_error
21
- return nil unless json_response['error']
22
- json_response['cause']&.map {|cause| message_by_error_code(cause['code']) || cause['description']}
24
+ return nil unless json_response["error"]
25
+ json_response["cause"].first["description"]
23
26
  end
24
27
 
25
28
  def message_by_status_detail(status_detail)
26
29
  {
27
- 'cc_rejected_bad_filled_other' => 'Recusado por erro no formulário.',
28
- 'cc_rejected_bad_filled_date' => 'Recusado por problema com a data de vencimento',
29
- 'cc_rejected_bad_filled_security_code' => 'Recusado por código de segurança inválido.',
30
- 'cc_rejected_insufficient_amount' => 'Recusado por quantia insuficiente.',
31
- 'cc_rejected_call_for_authorize' => 'Recusado, ligue para a administradora do cartão para autorizar.',
32
- 'cc_rejected_other_reason' => 'Recusado por erro geral'
33
- }[status_detail]
30
+ "cc_rejected_bad_filled_other" => "Pagamento recusado.",
31
+ "cc_rejected_bad_filled_date" => "Pagamento recusado. Confira a data de validade do cartão.",
32
+ "cc_rejected_bad_filled_security_code" => "Pagamento recusado. Confira o código de segurança (CVV) do cartão.",
33
+ "cc_rejected_insufficient_amount" => "Pagamento recusado. Limite insuficiente.",
34
+ "cc_rejected_call_for_authorize" => "Pagamento recusado.",
35
+ "cc_rejected_other_reason" => "Pagamento recusado."
36
+ }[status_detail] || "Pagamento recusado."
34
37
  end
35
-
36
- def message_by_error_code(code)
37
- {
38
- 1 => "Erro nos parâmetros.",
39
- 3 => "O token deve ser de teste.",
40
- 5 => "É necessário fornecer seu access_token para prosseguir.",
41
- 23 => "Os seguintes parâmetros devem ter uma data válida e no formato (aaaa-MM-dd'T'HH:mm:ssz) date_of_expiration.",
42
- 1000 => "Número de linhas excedeu os limites.",
43
- 1001 => "O formato da data deve ser aaaa-MM-dd'T'HH:mm:ss.SSSZ.",
44
- 2001 => "Já foi enviada a mesma solicitação no último minuto.",
45
- 2002 => "Cliente não encontrado.",
46
- 2004 => "Falha ao enviar POST para a API de Transações do Gateway.",
47
- 2006 => "Token do cartão não encontrado.",
48
- 2007 => "Falha na conexão com a API de Token do Cartão.",
49
- 2009 => "O emissor do token do cartão não pode ser nulo.",
50
- 2011 => "Id do método de pagamento inválido.",
51
- 2034 => "Erro estranho do mercado pago de usuarios envolvidos, normalmente causado pelo email do pagador.",
52
- 2060 => "O cliente não pode ser igual ao coletor.",
53
- 2062 => "Token do cartão inválido.",
54
- 2067 => "Número de identificação do usuário inválido.",
55
- 2072 => "Valor inválido para transaction_amount.",
56
- 2077 => "Captura diferida não suportada.",
57
- 2123 => "Operadores inválidos envolvidos.",
58
- 2131 => "Não é possível inferir o Método de Pagamento.",
59
- 3000 => "Você deve fornecer o nome do titular do cartão com seus dados do cartão.",
60
- 3001 => "Você deve fornecer o id do emissor do cartão com seus dados do cartão.",
61
- 3003 => "Id do token do cartão inválido.",
62
- 3004 => "Parâmetro site_id inválido.",
63
- 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.",
64
- 3006 => "Parâmetro id do token do cartão inválido.",
65
- 3007 => "O parâmetro client_id não pode ser nulo ou vazio.",
66
- 3008 => "Token do Cartão não encontrado.",
67
- 3009 => "client_id não autorizado.",
68
- 3010 => "Cartão não encontrado na lista branca.",
69
- 3011 => "Método de pagamento não encontrado.",
70
- 3012 => "Parâmetro comprimento do código de segurança inválido.",
71
- 3013 => "O parâmetro código de segurança é um campo obrigatório e não pode ser nulo ou vazio.",
72
- 3014 => "Parâmetro método de pagamento inválido.",
73
- 3015 => "Parâmetro comprimento do número do cartão inválido.",
74
- 3016 => "Parâmetro número do cartão inválido.",
75
- 3017 => "O parâmetro id do número do cartão não pode ser nulo ou vazio.",
76
- 3018 => "O parâmetro mês de vencimento não pode ser nulo ou vazio.",
77
- 3019 => "O parâmetro ano de vencimento não pode ser nulo ou vazio.",
78
- 3020 => "O parâmetro nome do titular do cartão não pode ser nulo ou vazio.",
79
- 3021 => "O parâmetro número do documento do titular do cartão não pode ser nulo ou vazio.",
80
- 3022 => "O parâmetro tipo de documento do titular do cartão não pode ser nulo ou vazio.",
81
- 3023 => "O parâmetro subtipo de documento do titular do cartão não pode ser nulo ou vazio.",
82
- 3024 => "Ação inválida - reembolso parcial não suportado para esta transação.",
83
- 3025 => "Código de autenticação inválido.",
84
- 3026 => "Id do cartão inválido para este id do método de pagamento.",
85
- 3027 => "Id do tipo de pagamento inválido.",
86
- 3028 => "Id do método de pagamento inválido.",
87
- 3029 => "Mês de vencimento do cartão inválido.",
88
- 3030 => "Ano de vencimento do cartão inválido.",
89
- 3031 => "Secure_code_id não pode ser nulo.",
90
- 3032 => "Comprimento inválido do código de segurança 3033 3034 - Validação do número do cartão inválida.",
91
- 4000 => "Atributo do cartão não pode ser nulo.",
92
- 4001 => "Atributo do id do método de pagamento não pode ser nulo.",
93
- 4002 => "Atributo do valor da transação não pode ser nulo.",
94
- 4003 => "Atributo do valor da transação deve ser numérico.",
95
- 4004 => "Atributo de parcelas não pode ser nulo.",
96
- 4005 => "Atributo de parcelas deve ser numérico.",
97
- 4006 => "Atributo do pagador está malformado.",
98
- 4007 => "Atributo do site_id não pode ser nulo.",
99
- 4012 => "Atributo do id do pagador não pode ser nulo.",
100
- 4013 => "Atributo do tipo de pagador não pode ser nulo.",
101
- 4015 => "Atributo do id de referência do método de pagamento não pode ser nulo.",
102
- 4016 => "Atributo do id de referência do método de pagamento deve ser numérico.",
103
- 4017 => "Atributo do status não pode ser nulo.",
104
- 4018 => "Atributo do id do pagamento não pode ser nulo.",
105
- 4019 => "Atributo do id do pagamento deve ser numérico.",
106
- 4020 => "Atributo notificaction_url deve ser uma URL válida.",
107
- 4021 => "Atributo notificaction_url deve ter menos de 500 caracteres.",
108
- 4022 => "Atributo metadata deve ser um JSON válido.",
109
- 4023 => "Atributo do valor da transação não pode ser nulo.",
110
- 4024 => "Atributo do valor da transação deve ser numérico.",
111
- 4025 => "Id do reembolso não pode ser nulo.",
112
- 4026 => "Valor do cupom inválido.",
113
- 4027 => "Atributo do id da campanha deve ser numérico.",
114
- 4028 => "Atributo do valor do cupom deve ser numérico.",
115
- 4029 => "Tipo de pagador inválido.",
116
- 4033 => "Número de parcelas inváido.",
117
- 4037 => "Valor da transação inválido.",
118
- 4038 => "A taxa de aplicação não pode ser maior que o valor da transação.",
119
- 4039 => "A taxa de aplicação não pode ser um valor negativo.",
120
- 4049 => "Atributo do valor da transação deve ser positivo.",
121
- 4050 => "O email do pagador deve ser um email válido.",
122
- 4051 => "O email do pagador deve ter menos de 254 caracteres.",
123
- 4390 => "O email do pagador deve ser um email válido.",
124
- 4084 => "issuer_id deve ser inteiro.",
125
- 6033 => "Usuário indisponível.",
126
- 7523 => "Data de vencimento inválida."
127
- }[code]
128
- end
129
-
130
38
  end
131
- end
39
+ end
@@ -1,9 +1,7 @@
1
1
  module MpApi
2
-
3
2
  class PaymentMethod
4
-
5
3
  attr_reader :payment_method_id, :issuer_id, :installments, :errors
6
- def initialize(payment_method_id: , issuer_id: , installments:, errors:nil)
4
+ def initialize(payment_method_id:, issuer_id:, installments:, errors: nil)
7
5
  @payment_method_id = payment_method_id
8
6
  @issuer_id = issuer_id
9
7
  @installments = installments
@@ -17,23 +15,21 @@ module MpApi
17
15
 
18
16
  def self.build_query(first_six_digits)
19
17
  {
20
- marketplace: 'NONE',
21
- status: 'active',
18
+ marketplace: "NONE",
19
+ status: "active",
22
20
  bins: first_six_digits
23
21
  }
24
22
  end
25
23
 
26
24
  def self.build_hash(response, credit)
27
- payment_type_id = credit ? 'credit_card' : 'debit_card'
28
- payment_method = response.dig('results')&.find {|pm| pm['payment_type_id'] == payment_type_id}
25
+ payment_type_id = credit ? "credit_card" : "debit_card"
26
+ payment_method = response.dig("results")&.find { |pm| pm["payment_type_id"] == payment_type_id }
29
27
  {
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')
28
+ payment_method_id: payment_method&.dig("id"),
29
+ issuer_id: payment_method&.dig("issuer", "id"),
30
+ installments: payment_method&.dig("payer_costs"),
31
+ errors: response.dig("message")
34
32
  }
35
33
  end
36
-
37
34
  end
38
-
39
- end
35
+ end
data/lib/mp_api/token.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  module MpApi
2
-
3
2
  class Token
4
-
5
3
  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)
4
+ def initialize(card_number:, expiration_year:, expiration_month:, security_code:, cardholder_name:, id: nil, errors: nil)
7
5
  @card_number = card_number
8
6
  @expiration_year = expiration_year
9
7
  @expiration_month = expiration_month
@@ -32,15 +30,14 @@ module MpApi
32
30
 
33
31
  def self.build_hash(response)
34
32
  {
35
- id: response['id'],
36
- expiration_year: response['expiration_year'],
37
- expiration_month: response['expiration_month'],
38
- cardholder_name: response.dig('cardholder', 'name'),
39
- card_number: response['card_number'],
40
- security_code: response['security_code'],
41
- errors: response['error']
33
+ id: response["id"],
34
+ expiration_year: response["expiration_year"],
35
+ expiration_month: response["expiration_month"],
36
+ cardholder_name: response.dig("cardholder", "name"),
37
+ card_number: response["card_number"],
38
+ security_code: response["security_code"],
39
+ errors: response["error"]
42
40
  }
43
41
  end
44
-
45
42
  end
46
43
  end
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
-
3
- module MpApi
4
- VERSION = "0.3.4"
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module MpApi
4
+ VERSION = "0.3.6"
5
+ end
data/lib/mp_api.rb CHANGED
@@ -7,22 +7,20 @@ require_relative "mp_api/payment_error"
7
7
  require_relative "mp_api/token"
8
8
  require_relative "mp_api/payment_method"
9
9
  require_relative "mp_api/version"
10
+
10
11
  module MpApi
11
12
  class Error < StandardError; end
12
13
 
13
14
  class RequestError < StandardError
14
- def initialize(message="Request error")
15
+ def initialize(message = "Request error")
15
16
  super(message)
16
17
  end
17
18
  end
18
19
 
19
20
  class Configuration
20
21
  attr_accessor :access_token, :public_key
21
-
22
- def initialize
23
- end
24
22
  end
25
-
23
+
26
24
  class << self
27
25
  attr_accessor :configuration
28
26
  end
@@ -31,5 +29,4 @@ module MpApi
31
29
  self.configuration ||= Configuration.new
32
30
  yield configuration
33
31
  end
34
-
35
32
  end
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.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-04 00:00:00.000000000 Z
11
+ date: 2024-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ac