catarse_moip 2.4.0 → 3.0.0

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
  SHA1:
3
- metadata.gz: 854311602c06cc63096b63f16afcd185651f9785
4
- data.tar.gz: 408660bff34b36cd055506a66b41ab06c41a4c0f
3
+ metadata.gz: ef96e5da1f2270198e6416796385168671fcaf34
4
+ data.tar.gz: ef660e2c1e1eb6cc085ba61883be6f14bfbf3e01
5
5
  SHA512:
6
- metadata.gz: fb65373e9e9a4833fe388782bc5a54d32a714db952b6c7a360bf4101d1d30af47c8b3fdf1e410f4e642b5d32525f84f802b868a8ba70af5ac66993984636be8c
7
- data.tar.gz: 8d5da792104b78a35ca04b81644a5c22ec0189173ce3cc92e24069380146e746b07ec718f524b2bea2110229f229eb86296c315a4c003ccced3b748da6b00d59
6
+ metadata.gz: c1138927731e9d52691ce29951817d66e07012b957ca023fdea2e2ae59d38377c271644be3f6fda807885f8a85265aae880a9547cf6742c65895a099d0c86592
7
+ data.tar.gz: 36be1fd0495715889a6f368c8a3da463c72ecdf0d82dbefbcb0786d2447a7754b6e1f78a7d2316d9a93546bb6faf5cfc1d1e858a6ceeddbbfe965b98bbb297ed
@@ -10,9 +10,8 @@ GIT
10
10
  PATH
11
11
  remote: .
12
12
  specs:
13
- catarse_moip (2.4.0)
13
+ catarse_moip (3.0.0)
14
14
  enumerate_it
15
- httparty
16
15
  libxml-ruby (~> 2.6.0)
17
16
  rails (~> 4.0)
18
17
 
@@ -99,7 +98,7 @@ GEM
99
98
  rspec-core (~> 2.14.0)
100
99
  rspec-expectations (~> 2.14.0)
101
100
  rspec-mocks (~> 2.14.0)
102
- sprockets (2.12.3)
101
+ sprockets (2.12.2)
103
102
  hike (~> 1.2)
104
103
  multi_json (~> 1.0)
105
104
  rack (~> 1.0)
@@ -1,6 +1,11 @@
1
- App.addChild('MoipForm', {
1
+ App.addChild('MoipForm', _.extend({
2
2
  el: 'form.moip',
3
3
 
4
+ events: {
5
+ 'blur input:not(#payment_card_cpf):not(#user_document_payment_slip)' : 'checkInput'
6
+ },
7
+
8
+
4
9
  getMoipToken: function(onSuccess){
5
10
  var that = this;
6
11
  if($('#MoipWidget').length > 0) {
@@ -40,9 +45,8 @@ App.addChild('MoipForm', {
40
45
  if(response_data.Codigo == 914){
41
46
  response_data.Mensagem += '. Tente <a href="javascript:window.location.reload();">recarregar a página</a> e repetir a operação de pagamento.';
42
47
  }
43
- this.message.find('p').html(response_data.Mensagem);
44
- this.message.fadeIn('fast');
45
- $('input[type="submit"]').removeAttr('disabled').show();
48
+ this.message.find('.message-text').html(response_data.Mensagem);
49
+ this.message.slideDown('slow');
46
50
  },
47
51
 
48
52
  checkoutSuccessful: function(data) {
@@ -56,10 +60,10 @@ App.addChild('MoipForm', {
56
60
 
57
61
  // Go on otherwise
58
62
  if(data.url && $('#payment_type_cards_section').css('display') != 'block') {
59
- var link = $('<a target="__blank">'+data.url+'</a>')
63
+ var link = $('<a class="alt-link" target="__blank">Clique aqui para ver o boleto e completar o pagamento.</a>')
60
64
  link.attr('href', data.url);
61
- $('.link_content:visible').empty().html(link);
62
- $('.payment_section:visible .subtitle').fadeIn('fast');
65
+ $('.link_content').empty().html(link);
66
+ $('#payment-slip-link').slideDown('slow');
63
67
  }
64
68
  else {
65
69
  var thank_you = $('#project_review').data('thank-you-path');
@@ -74,14 +78,15 @@ App.addChild('MoipForm', {
74
78
  },
75
79
 
76
80
  activate: function(){
77
- this.message = this.$('.next_step_after_valid_document .alert-danger');
81
+ this.message = this.$('.payment-error-message');
78
82
  this.contributionId = $('input#contribution_id').val();
79
- this.projectId = $('input#project_id').val();
83
+ this.projectId = $('input#contribution_project_id').val();
80
84
 
81
- this.loader = this.$('.loader');
85
+ this.loader = this.$('.loader img');
82
86
 
83
87
  window.checkoutSuccessful = _.bind(this.checkoutSuccessful, this);
84
88
  window.checkoutFailure = _.bind(this.checkoutFailure, this);
89
+ this.setupForm();
85
90
  }
86
- });
91
+ }, Skull.Form));
87
92
 
@@ -2,19 +2,15 @@ App.views.MoipForm.addChild('PaymentCard', _.extend({
2
2
  el: '#payment_type_cards_section',
3
3
 
4
4
  events: {
5
- 'keyup input[type="text"]' : 'creditCardInputValidator',
6
5
  'keyup #payment_card_number' : 'onKeyupPaymentCardNumber',
7
- 'click input#credit_card_submit' : 'onSubmit',
6
+ 'click #credit_card_submit' : 'onSubmit',
8
7
  'keyup #payment_card_cpf' : 'onUserDocumentKeyup'
9
8
  },
10
9
 
11
10
  activate: function(options){
12
11
  // Set credit card fields masks
13
12
  this.moipForm = this.parent;
14
- this.$('input#payment_card_date').mask('99/99');
15
- this.$('input#payment_card_birth').mask('99/99/9999');
16
- this.$('input#payment_card_cpf').mask("999.999.999-99");
17
- this.$('input#payment_card_phone').mask("(99) 9999-9999?9");
13
+ window.app.maskAllElements();
18
14
  },
19
15
 
20
16
  onKeyupPaymentCardNumber: function(e){
@@ -24,7 +20,11 @@ App.views.MoipForm.addChild('PaymentCard', _.extend({
24
20
  onSubmit: function(e) {
25
21
  var that = this;
26
22
  e.preventDefault();
27
- $(e.currentTarget).hide();
23
+
24
+ if(!that.moipForm.validate()){
25
+ return false;
26
+ }
27
+
28
28
  that.moipForm.loader.show();
29
29
 
30
30
  // Get token and send payment
@@ -50,26 +50,6 @@ App.views.MoipForm.addChild('PaymentCard', _.extend({
50
50
  });
51
51
  },
52
52
 
53
- hasContent: function(element) {
54
- var value = $(element).val().replace(/[\-\.\_\/\s]/g, '');
55
- if(value && value.length > 0){
56
- $(element).addClass("ok").removeClass("error")
57
- return true
58
- } else {
59
- $(element).addClass("error").removeClass("ok")
60
- return false
61
- }
62
- },
63
-
64
- creditCardInputValidator: function() {
65
- var that = this;
66
- var all_ok = true;
67
- $.each($('#payment_type_cards_section input[type="text"]'), function(i, item){
68
- all_ok = that.hasContent(item);
69
- });
70
- $('input#credit_card_submit').attr('disabled', !all_ok);
71
- },
72
-
73
53
  getCardFlag: function(number) {
74
54
  var cc = (number + '').replace(/\s/g, ''); //remove space
75
55
 
@@ -4,24 +4,16 @@ App.views.MoipForm.addChild('PaymentSlip', _.extend({
4
4
  events: {
5
5
  'click input#build_boleto' : 'onBuildBoletoClick',
6
6
  'click .link_content a' : 'onContentClick',
7
- 'keyup #user_document_payment_slip' : 'onUserDocumentPaymentSlipKeyup'
8
- },
9
-
10
- onUserDocumentPaymentSlipKeyup: function(e){
11
- var $documentField = $(e.currentTarget);
12
- this.onUserDocumentKeyup(e);
13
- $('input#build_boleto').attr('disabled', !$documentField.hasClass('ok'));
7
+ 'keyup #user_document_payment_slip' : 'onUserDocumentKeyup'
14
8
  },
15
9
 
16
10
  activate: function(options){
17
11
  this.moipForm = this.parent;
18
- this.$('input#user_document_payment_slip').mask("999.999.999-99");
19
12
  },
20
13
 
21
14
  onBuildBoletoClick: function(e){
22
15
  var that = this;
23
16
  e.preventDefault();
24
- $(e.currentTarget).hide();
25
17
  that.moipForm.loader.show();
26
18
 
27
19
  // Get token and send payment
@@ -14,13 +14,14 @@ App.views.MoipForm.UserDocument = {
14
14
  var resultCnpj = this.validateCnpj(documentNumber.replace(/[\/.\-\_ ]/g, ''));
15
15
  var numberLength = documentNumber.replace(/[.\-\_ ]/g, '').length
16
16
  if(numberLength > 10) {
17
- if($documentField.attr('id') != 'payment_card_cpf'){
18
- if(numberLength == 11) {$documentField.mask('999.999.999-99?999'); }//CPF
19
- else if(numberLength == 14 ){$documentField.mask('99.999.999/9999-99');}//CNPJ
20
- if(numberLength != 14 || numberLength != 11){ $documentField.unmask()}
21
- }
17
+ if($documentField.attr('id') != 'payment_card_cpf'){
18
+ if(numberLength == 11) {$documentField.mask('999.999.999-99?999'); }//CPF
19
+ else if(numberLength == 14 ){$documentField.mask('99.999.999/9999-99');}//CNPJ
20
+ if(numberLength != 14 || numberLength != 11){ $documentField.unmask()}
21
+ }
22
22
 
23
- if(resultCpf || resultCnpj) {
23
+ if(resultCpf || resultCnpj) {
24
+ $('[data-error-for=' + $documentField.prop('id') + ']').hide();
24
25
  $documentField.addClass('ok').removeClass('error');
25
26
 
26
27
  $.ajax({
@@ -30,12 +31,12 @@ App.views.MoipForm.UserDocument = {
30
31
  });
31
32
 
32
33
  } else {
33
- $documentField.addClass('error').removeClass('ok');
34
+ $documentField.trigger('invalid');
34
35
  }
35
36
  }
36
- else{
37
- $documentField.addClass('error').removeClass('ok');
38
- }
37
+ else{
38
+ $documentField.trigger('invalid')
39
+ }
39
40
 
40
41
  },
41
42
 
@@ -137,7 +137,7 @@ module CatarseMoip
137
137
  case params[:status_pagamento].to_i
138
138
  when TransactionStatus::PROCESS
139
139
  payment_notification.deliver_process_notification
140
- when TransactionStatus::AUTHORIZED, TransactionStatus::FINISHED
140
+ when TransactionStatus::AUTHORIZED
141
141
  contribution.confirm! unless contribution.confirmed?
142
142
  when TransactionStatus::WRITTEN_BACK, TransactionStatus::REFUNDED
143
143
  contribution.refund! unless contribution.refunded?
@@ -0,0 +1,6 @@
1
+ .fontsize-smallest.u-text-center
2
+ | Ao apoiar, você concorda com os
3
+ = link_to 'Termos de Uso', main_app.terms_of_use_path, class: 'alt-link'
4
+ | e
5
+ = link_to 'Política de Privacidade', main_app.privacy_policy_path, class: 'alt-link'
6
+
@@ -1,107 +1,97 @@
1
1
  = javascript_include_tag 'catarse_moip'
2
2
  #catarse_moip_form
3
- = form_tag 'javascript:void(0);', :class => 'moip' do
4
-
5
- .next_step_after_valid_document
6
-
7
- .list_payment
8
- .input
9
- = radio_button_tag 'payment_type', "cards"
10
- = label_tag :payment_type_cards, nil, :class => "cards"
11
-
12
- = radio_button_tag 'payment_type', "boleto"
13
- = label_tag :payment_type_boleto, 'Boleto', :class => "boleto"
14
-
15
- /
16
- = radio_button_tag 'payment_type', "account"
17
- = label_tag :payment_type_account, 'Débito em Conta', :class => "account"
18
-
3
+ = form_tag 'jaascript:void(0);', :class => 'moip' do
4
+ .back-payment-moip-options.next_step_after_valid_document
5
+ .w-row.list_payment.w-form
6
+ .w-col.w-col-7.w-col-small-7.back-payment-moip-options-column
7
+ = radio_button_tag 'payment_type', "cards", false, class: 'w-radio-input back-payment-radio-button'
8
+ = label_tag :payment_type_cards, nil, class: "cards w-form-label" do
9
+ = image_tag 'catarse_bootstrap/payment_cards.jpg'
10
+ .w-col.w-col-5.w-col-small-5.back-payment-moip-options-column
11
+ = radio_button_tag 'payment_type', "boleto", false, class: 'w-radio-input back-payment-radio-button'
12
+ = label_tag :payment_type_boleto, class: "boleto w-form-label" do
13
+ = image_tag 'catarse_bootstrap/payment_boleto.jpg'
14
+ .formwrapper
19
15
  #payment_type_cards_section.payment_section
20
- h3= t('projects.contributions.review.form.labels.payment_card')
16
+ .w-row
17
+ .w-col.w-col-6.w-sub-col
18
+ = label_tag :payment_card_name, "Nome do titular do cartão", class: 'field-label fontweight-semibold'
19
+ = text_field_tag :payment_card_name, nil, class: 'w-input text-field', required: true
20
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_name"]
21
+ | Por favor digite o nome escrito no cartão
22
+ .w-col.w-col-6.cpf
23
+ = label_tag :payment_card_cpf, "CPF", class: 'field-label fontweight-semibold'
24
+ = text_field_tag :payment_card_cpf, nil, class: 'w-input text-field', data: {mask: '999.999.999-99'}, required: true
25
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_cpf"]
26
+ | Verifique o CPF do titular do cartão
27
+ .w-row
28
+ .w-col.w-col-6.w-sub-col.phone
29
+ = label_tag :payment_card_phone, "Telefone", class: 'field-label fontweight-semibold'
30
+ = text_field_tag :payment_card_phone, nil, class: 'w-input text-field', data: {mask: '(99) 9999-9999?9'}, required: true
31
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_phone"]
32
+ | Por favor digite o telefone de contato do titular
33
+ .w-col.w-col-6.birth
34
+ = label_tag :payment_card_birth, "Data de Nascimento", class: 'field-label fontweight-semibold'
35
+ = text_field_tag :payment_card_birth, nil, class: 'w-input text-field', data: {mask: '99/99/9999'}, required: true
36
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_birth"]
37
+ | Por favor digite a data de nascimento do titular
38
+ .w-row
39
+ .w-col.w-col-6.w-sub-col.number
40
+ = label_tag :payment_card_number, 'Número do cartão' , class: 'field-label fontweight-semibold'
41
+ .card-brand.prefix.text-field
42
+ .fontsize-smallest.fontcolor-secondary.u-text-center
43
+ .card-number
44
+ = text_field_tag :payment_card_number, nil, class: 'w-input text-field postfix', required: true
45
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_number"]
46
+ | Por favor verifique o número do cartão de crédito
47
+ .w-col.w-col-6
48
+ .w-row
49
+ .w-col.w-col-6.w-col-small-6.w-col-tiny-6.w-sub-col-middle.source
50
+ = label_tag :payment_card_source, 'Cód. Segurança', class: 'field-label fontweight-semibold'
51
+ = text_field_tag :payment_card_source, nil, class: 'w-input text-field', required: true
52
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_source"]
53
+ | Veja o código de segurança do cartão abaixo da tarja magnética
54
+ .w-col.w-col-6.w-col-small-6.w-col-tiny-6.date
55
+ = label_tag :payment_card_date, 'Data de Expiração', class: 'field-label fontweight-semibold'
56
+ = text_field_tag :payment_card_date, nil, class: 'w-input text-field', data: {mask: '99/99'}, required: true
57
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="payment_card_date"]
58
+ | Qual a data de expiração no cartão?
21
59
 
22
- .clearfix
23
-
24
- .bootstrap-twitter style="float: none;"
25
- .alert.alert-danger.hide
26
- p.error_msg
27
- .clearfix
28
-
29
- .clearfix
30
-
31
- .choose_card
32
- .div
33
- span= t('projects.contributions.review.form.labels.owner_card')
34
- .owner_outside
35
- .owner
36
- ol.inputs
37
- li.name
38
- = label_tag :payment_card_name, "Nome do titular do cartão"
39
- = text_field_tag :payment_card_name, nil
40
- li.cpf
41
- = label_tag :payment_card_cpf, "CPF"
42
- = text_field_tag :payment_card_cpf, nil
43
- li.phone
44
- = label_tag :payment_card_phone, "Telefone"
45
- = text_field_tag :payment_card_phone, nil
46
- li.birth
47
- = label_tag :payment_card_birth, "Data de Nascimento"
48
- = text_field_tag :payment_card_birth, nil
49
- .div
50
- span= t('projects.contributions.review.form.labels.number_card')
51
- .infocard_outside
52
- .infocard
53
- ol.inputs
54
- li.number
55
- = label_tag :payment_card_number, 'Número do cartão'
56
- = text_field_tag :payment_card_number, nil
57
- li.flag
58
- = label_tag :payment_card_flag, 'Bandeira'
59
- = text_field_tag :payment_card_flag, nil, { disabled: true }
60
- li.source
61
- = label_tag :payment_card_source, 'Código de Segurança'
62
- = text_field_tag :payment_card_source, nil
63
- li.date
64
- = label_tag :payment_card_date, 'Data de Expiração'
65
- = text_field_tag :payment_card_date, nil
66
-
67
- .clearfix
68
- .bootstrap-twitter
69
- .loader.hide= image_tag('loading.gif')
70
- = submit_tag t('projects.contributions.review.form.labels.submit'), :disabled => true, :class => 'btn btn-primary btn-large', :id => "credit_card_submit"
71
- #payment_type_boleto_section.hide.payment_section
72
- h3= t('projects.contributions.review.form.labels.payment_boleto')
73
- .clearfix
74
- .bootstrap-twitter style="float: none;"
75
- .alert.alert-danger.hide
76
- p.error_msg
77
- .clearfix
78
- .bootstrap-twitter
79
- = label_tag 'user_document_payment_slip', t('projects.contributions.review.form.labels.document')
80
- = text_field_tag 'user_document_payment_slip', nil, { autocomplete: 'off' }
81
- .loader.hide= image_tag('loading.gif')
82
- = submit_tag t('projects.contributions.review.form.labels.build_boleto'), :class => 'btn btn-primary btn-large', :id => "build_boleto", :disabled => true
83
- .clearfix
84
- p.subtitle.hide= t('projects.contributions.review.form.labels.payment_boleto_subtitle')
85
- .link_content
86
-
87
- /
88
- #payment_type_account_section.hide.payment_section
89
- h3= t('projects.contributions.review.form.labels.payment_account')
90
- .clearfix
91
- .bootstrap-twitter style="float: none;"
92
- .alert.alert-danger.hide
93
- p.error_msg
94
- .clearfix
95
- .bootstrap-twitter
96
- = label_tag 'user_document_account', t('projects.contributions.review.form.labels.document')
97
- = text_field_tag 'user_document_account', nil, { autocomplete: 'off' }
98
- = label_tag :account, t('projects.contributions.review.form.labels.select_account')
99
- = select_tag :account, options_for_select([['Banco do Brasil', 'BancoDoBrasil'], ['Bradesco'], ['Banrisul'], ['Itaú', 'Itau'] ]), :include_blank => true
100
- .loader.hide= image_tag('loading.gif')
101
- = submit_tag t('projects.contributions.review.form.labels.submit'), :class => 'btn btn-primary btn-large', :id => "build_account_link", :disabled => true
102
- p.subtitle.hide= t('projects.contributions.review.form.labels.select_account')
103
- .link_content
104
-
105
-
60
+ .w-row
61
+ .w-col.w-col-12
62
+ .payment-error-message.card.card-error.u-radius.zindex-10.u-marginbottom-30.w-hidden
63
+ .fontsize-smaller.fontweight-bold.u-marginbottom-10= t('.review_errors_title')
64
+ .message-text.fontsize-smaller = t('.review_errors')
65
+ .w-row
66
+ .w-col.w-col-push-3.w-col-6
67
+ .loader.u-text-center.w-col.w-col-12.u-marginbottom-30 = image_tag "catarse_bootstrap/loader.gif"
68
+ = submit_tag t('projects.contributions.review.form.labels.submit'), class: 'btn btn-large u-marginbottom-20', id: "credit_card_submit"
69
+ = render partial: 'terms'
70
+ #payment_type_boleto_section.w-hidden.payment_section
71
+ .w-row
72
+ .w-col.w-col-6
73
+ = label_tag 'user_document_payment_slip', t('projects.contributions.review.form.labels.document'), class: 'field-label fontweight-semibold'
74
+ = text_field_tag 'user_document_payment_slip', nil, { autocomplete: 'off', class: 'w-input text-field', required: true, data: {mask: '999.999.999-99'} }
75
+ .fontsize-smaller.text-error.u-marginbottom-20.fa.fa-exclamation-triangle.w-hidden[data-error-for="user_document_payment_slip"]
76
+ | Verifique o CPF
77
+ .w-row
78
+ .w-col.w-col-12
79
+ .card.card-message.u-radius.fontsize-small.zindex-10.u-marginbottom-30
80
+ | Após clicar no botão abaixo, você receberá um link com o boleto para completar o pagamento.
81
+ .w-row
82
+ .w-col.w-col-12
83
+ .payment-error-message.card.card-error.u-radius.zindex-10.u-marginbottom-30.w-hidden
84
+ .fontsize-smaller.fontweight-bold.u-marginbottom-10= t('.review_errors_title')
85
+ .message-text.fontsize-smaller = t('.review_errors')
86
+ .w-row
87
+ .w-col.w-col-push-3.w-col-6
88
+ #card-loading.loader.u-text-center.w-col.w-col-12.u-marginbottom-30 = image_tag "catarse_bootstrap/loader.gif"
89
+ = submit_tag t('projects.contributions.review.form.labels.build_boleto'), class: 'btn btn-large u-marginbottom-20', id: "build_boleto"
90
+ = render partial: 'terms'
91
+ .w-row
92
+ .w-col.w-col-12
93
+ #payment-slip-link.card.card-message.fontsize-small.u-radius.u-marginbottom-30.zindex-10.w-hidden
94
+ .link_content.fontsize-smaller
95
+ .fontsize-smaller Você também receberá um email com esse boleto.
106
96
 
107
97
  == javascript_include_tag js_moip_index_path
@@ -18,7 +18,6 @@ Gem::Specification.new do |s|
18
18
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
19
 
20
20
  s.add_dependency "rails", "~> 4.0"
21
- s.add_dependency "httparty"
22
21
  s.add_dependency('libxml-ruby', '~> 2.6.0')
23
22
  s.add_dependency "enumerate_it"
24
23
 
@@ -3,13 +3,3 @@
3
3
  config.token = (PaymentEngines.configuration.get_without_cache(:moip_token) rescue nil) || ''
4
4
  config.key = (PaymentEngines.configuration.get_without_cache(:moip_key) rescue nil) || ''
5
5
  end
6
-
7
- MOIP_V2_ENDPOINT = begin
8
- if PaymentEngines.configuration.get_without_cache(:moip_test) == 'true'
9
- 'https://test.moip.com.br'
10
- else
11
- 'https://api.moip.com.br'
12
- end
13
- rescue Exception => e
14
- 'https://test.moip.com.br'
15
- end
@@ -1,7 +1,5 @@
1
- require "httparty"
2
1
  require "catarse_moip/engine"
3
2
  require "catarse_moip/payment_engine"
4
-
5
3
  #require "moip"
6
4
 
7
5
  module CatarseMoip
@@ -14,11 +14,11 @@ module CatarseMoip
14
14
  end
15
15
 
16
16
  def can_do_refund?
17
- true
17
+ false
18
18
  end
19
19
 
20
- def direct_refund contribution
21
- ::CatarseMoip::V2::Refund.start(contribution)
20
+ def direct_refund
21
+ false
22
22
  end
23
23
 
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module CatarseMoip
2
- VERSION = "2.4.0"
2
+ VERSION = "3.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: catarse_moip
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antônio Roberto Silva
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-11-27 00:00:00.000000000 Z
13
+ date: 2014-10-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -26,20 +26,6 @@ dependencies:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '4.0'
29
- - !ruby/object:Gem::Dependency
30
- name: httparty
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '0'
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: libxml-ruby
45
31
  requirement: !ruby/object:Gem::Requirement
@@ -135,7 +121,7 @@ files:
135
121
  - app/assets/javascripts/catarse_moip/payment_slip.js
136
122
  - app/assets/javascripts/catarse_moip/user_document.js
137
123
  - app/controllers/catarse_moip/moip_controller.rb
138
- - app/models/catarse_moip/v2/refund.rb
124
+ - app/views/catarse_moip/moip/_terms.html.slim
139
125
  - app/views/catarse_moip/moip/review.html.slim
140
126
  - catarse_moip.gemspec
141
127
  - config/initializers/moip.rb
@@ -1,121 +0,0 @@
1
- module CatarseMoip
2
- module V2
3
- class Refund
4
- include ::HTTParty
5
-
6
- base_uri ::MOIP_V2_ENDPOINT
7
-
8
- attr_accessor :contribution, :refund_options
9
-
10
- def self.start(contribution)
11
- _instance = new(contribution)
12
- _instance.refund
13
- end
14
-
15
- def initialize(contribution)
16
- self.contribution = contribution
17
- self.refund_options = define_refund_options
18
- end
19
-
20
- def refund
21
- self.class.post("/v2/payments/#{parsed_payment_id}/refunds", {
22
- body: self.refund_options.to_json
23
- }.merge!(basic_auth_params))
24
- end
25
-
26
- def define_refund_options
27
- if refund_method == 'BANK_ACCOUNT'
28
- check_bank_account!
29
- {
30
- amount: amount_to_refund,
31
- method: refund_method,
32
- refundingInstrument: refund_instrument
33
- }
34
- else
35
- {}
36
- end
37
- end
38
-
39
- protected
40
-
41
- def check_bank_account!
42
- unless bank_account.valid?
43
- raise "Invalid bank account"
44
- end
45
- end
46
-
47
- def refund_instrument
48
- {
49
- method: refund_method,
50
- bankAccount: {
51
- type: 'CHECKING',
52
- bankNumber: bank_account.bank_code,
53
- agencyNumber: bank_account.agency.to_i,
54
- agencyCheckNumber: bank_account.agency_digit.to_i,
55
- accountNumber: bank_account.account.to_i,
56
- accountCheckNumber: bank_account.account_digit.to_i,
57
- holder: {
58
- fullname: bank_account.owner_name,
59
- taxDocument: {
60
- type: bank_account_document_type,
61
- number: parsed_holder_document
62
- }
63
- }
64
- }
65
- }
66
- end
67
-
68
- def bank_account
69
- self.contribution.user.bank_account
70
- end
71
-
72
- def bank_account_document_type
73
- if parsed_holder_document.size > 11
74
- 'CNPJ'
75
- else
76
- 'CPF'
77
- end
78
- end
79
-
80
- def parsed_holder_document
81
- bank_account.owner_document.gsub(/[\.\-\/\s]/,'')
82
- end
83
-
84
- def amount_to_refund
85
- if already_expired_refund_deadline?
86
- ((self.contribution.value - self.contribution.payment_service_fee.to_f) * 100).to_i
87
- else
88
- self.contribution.price_in_cents
89
- end
90
- end
91
-
92
- def refund_method
93
- if already_expired_refund_deadline? || !self.contribution.is_credit_card?
94
- 'BANK_ACCOUNT'
95
- else
96
- 'CREDIT_CARD'
97
- end
98
- end
99
-
100
- def already_expired_refund_deadline?
101
- self.contribution.confirmed_at < 170.days.ago
102
- end
103
-
104
- def basic_auth_params
105
- {
106
- basic_auth: {
107
- username: PaymentEngines.configuration[:moip_token],
108
- password: PaymentEngines.configuration[:moip_key],
109
- },
110
- headers: {
111
- 'Content-Type' => 'application/json'
112
- }
113
- }
114
- end
115
-
116
- def parsed_payment_id
117
- contribution.payment_id.gsub('.', '')
118
- end
119
- end
120
- end
121
- end