easy_pay_u_latam 0.1.16 → 0.1.17

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: c08212451cfd2aeb7cb163142f777adc2c2dc450be6b67e5351d5460c8e8cb90
4
- data.tar.gz: f3b0243c7acb9fe01469785e971999ef88c27958eed7977821ad9db7c7b9c8f7
3
+ metadata.gz: 92312a4faad16ed20b911633516d52cdf80d0aed11e76244c99a59d6d31a3ce6
4
+ data.tar.gz: b97b7aaac62e33efd4cb2c8eba3fd88909397c6fd80b3f79457bc2d47abaa03e
5
5
  SHA512:
6
- metadata.gz: 0451a45e206af40bfa978b331e81e7cbdb76bc7969c23d16ca6c19776defcef73fada8b6d1c0ebe91e525548038fce254ec91c0be8ce7fcf3d0854cfb41a6630
7
- data.tar.gz: 1f478315511728b34dfd1ede054ef7a25dd75156fd6cc1361d93e3ca6334a7dd1876db58533ec83d0c044d752bd43a694687b9141cce9c937f5386596729041b
6
+ metadata.gz: c96fb55e3e4b6cc9724213d52fb0351eafe7a559e3c75f2e2b4418b36bf501a7d2d24fa0d0a716936fe7dd2c399f09b0f2585d8b754a29ce80c346beec49bb0b
7
+ data.tar.gz: 3887f13d76debc527dc211c0375d57beb0e98445b263b5d55cf80965e55d0138d28a74ed10bef569f6d390a46b1ab0fc60e71b403608f7c9bfa91c12f049bad4
@@ -7,6 +7,8 @@
7
7
  //Atributos de Planes
8
8
  this.actual_plan = null;
9
9
  this.selected_plan = null;
10
+ this.last_payment = null;
11
+ this.is_buyer = false;
10
12
  this.plans = [];
11
13
 
12
14
  //Atributos de Subscripciones
@@ -37,9 +39,13 @@
37
39
  width: 500 //optional
38
40
  };
39
41
 
40
- this.init = function(uuid, token, plans){
42
+ this.init = function(uuid, token, plans, is_buyer, last_payment, actual_plan){
41
43
  this.user_uuid = uuid;
42
44
  this.user_token = token;
45
+ this.is_buyer = is_buyer;
46
+ this.last_payment = last_payment;
47
+ this.actual_plan = actual_plan;
48
+
43
49
  this.ClearCard();
44
50
  this.GetClient();
45
51
  //No tengo ni idea porque me toco hacer eso pero sin el timeout simplemente el ng-repeat no renderiza plans
@@ -296,6 +302,7 @@
296
302
  subscription: {
297
303
  quantity: "1",
298
304
  installments: "1",
305
+ immediatePayment: true,
299
306
  trialDays: "15",
300
307
  customer: {
301
308
  id: "",
@@ -318,9 +325,12 @@
318
325
  self.subscription_loading = false;
319
326
  //Mirar si se muestra alerta y se fuerza un refresh
320
327
  //O recirbir respuesta json y actualizar variables necesarias desde el API
328
+ swal("Información", "Estamos procesando tu pago", "success");
329
+ window.location.reload();
321
330
  },
322
331
  function(res, status){
323
332
  self.subscription_loading = false;
333
+ swal("Información", res.data.message, "warning");
324
334
  }
325
335
  );
326
336
  }
@@ -348,11 +358,14 @@
348
358
  $http.delete("/easy_pay_u_latam/api/v1/pay_u_subscriptions/0000.json", {params: params}).then(
349
359
  function(res, status){
350
360
  self.subscription_loading = false;
361
+ swal("Información", res.data.message, "success");
362
+ window.location.reload();
351
363
  //Mirar si se muestra alerta y se fuerza un refresh
352
364
  //O recirbir respuesta json y actualizar variables necesarias desde el API
353
365
  },
354
366
  function(res, status){
355
367
  self.subscription_loading = false;
368
+ swal("Información", res.data.message, "warning");
356
369
  }
357
370
  );
358
371
  });
@@ -8,7 +8,7 @@ module EasyPayULatam
8
8
  cards = RApi::Card.new client
9
9
  unless cards.response["creditCardList"].blank?
10
10
  if cards.response["creditCardList"].count == 1
11
- if current_user.payu_default_card = cards.response["creditCardList"][0]["token"]
11
+ if current_user.payu_default_card != cards.response["creditCardList"][0]["token"]
12
12
  current_user.update_attribute :payu_default_card, cards.response["creditCardList"][0]["token"]
13
13
  end
14
14
  end
@@ -43,8 +43,9 @@ module EasyPayULatam
43
43
  #validat si tiene subscripciones y actualizar subscricion
44
44
 
45
45
  subs = RApi::Subscription.new client
46
+
46
47
  unless subs.response.blank?
47
- unless subs.response["creditCardList"].empty?
48
+ if !subs.response["creditCardList"].nil? && !subs.response["creditCardList"].empty?
48
49
  res = subs.update({"creditCardToken": params[:id]})
49
50
 
50
51
  unless subs.response.blank?
@@ -4,24 +4,35 @@ module EasyPayULatam
4
4
  acts_as_token_authentication_handler_for User
5
5
 
6
6
  def index
7
- client = RApi::Client.new current_user.pay_u_costumer_id
8
- subs = RApi::Subscription.new client
9
-
10
- unless subs.response["recurringBillList"].blank?
11
- render status: 200, json: {subscriptions: subs.response["recurringBillList"].last(30)}
12
- else
13
- render status: 200, json: {subscriptions: []}
14
- end
7
+ render status: 200, json: {subscriptions: current_user.all_payments.first(30)}
8
+ # client = RApi::Client.new current_user.pay_u_costumer_id
9
+ # subs = RApi::Subscription.new client
10
+ #
11
+ # unless subs.response["recurringBillList"].blank?
12
+ # render status: 200, json: {subscriptions: subs.response["recurringBillList"].last(30)}
13
+ # else
14
+ # render status: 200, json: {subscriptions: []}
15
+ # end
15
16
  end
16
17
 
17
18
  def create
19
+ @payUConfig = EasyPayULatam.configuration
20
+ generate_payment(params[:subscription][:plan][:planCode])
21
+
18
22
  client = RApi::Client.new current_user.pay_u_costumer_id
19
23
  subs = RApi::Subscription.new client
20
24
  subs.params = params[:subscription].as_json
21
25
  subs.params["customer"]["id"] = current_user.pay_u_costumer_id
22
26
  subs.params["customer"]["creditCards"][0]["token"] = current_user.payu_default_card
27
+
28
+ if !current_user.last_payment.nil? && current_user.last_payment.end_date > Date.today
29
+ subs.params["trialDays"] = (current_user.last_payment.end_date - Date.today).to_i
30
+ end
31
+
32
+ subs.params["notifyUrl"] = "#{@payUConfig.get_root_url}/easy_pay_u_latam/api/v1/pay_u_payments/#{ @payu_payment.id}/confirmation.json?user_id=#{current_user.id}"
33
+
23
34
  response = subs.create!
24
- binding.pry
35
+
25
36
  unless subs.response.blank?
26
37
  render status: 200, json: {message: "ok"}
27
38
  else
@@ -40,17 +51,51 @@ module EasyPayULatam
40
51
  def destroy
41
52
  client = RApi::Client.new current_user.pay_u_costumer_id
42
53
  subs = RApi::Subscription.new client
43
- unless subs.response.blank?
44
- unless subs.response["creditCardList"].empty?
45
- res = subs.delete params[:id]
46
54
 
47
- render status: 200, json: {message: res["description"]}
48
- else
49
- render status: 411, json: {message: "No tienes subscripciones para cancelar"}
55
+ if current_user.last_payments.count > 0
56
+ current_user.last_payments.each do |sub|
57
+ res = subs.delete sub.reference_recurring_payment
58
+ sub.update_attribute :response_message_pol, "CANCELLED BY USER"
59
+ sub.update_attribute :state_pol, "-1"
50
60
  end
61
+
62
+ render status: 200, json: {message: "¡Subscripción cancelada correctamente, tu plan estará activo por el periodo que ya habías pagado!"}
51
63
  else
52
64
  render status: 411, json: {message: "No tienes subscripciones para cancelar"}
53
65
  end
66
+
67
+ end
68
+
69
+ def generate_payment(plan_code)
70
+ plan = Plan.actives.find_by_payu_plan_code plan_code
71
+ # period_moths = 1 if plan.interval.downcase == "day"
72
+ period_moths = 1 if plan.interval.downcase == "month"
73
+ period_moths = 6 if plan.interval.downcase == "semester"
74
+ period_moths = 12 if plan.interval.downcase == "year"
75
+
76
+ current_user.update_attribute(:temp_plan_id, plan.id)
77
+
78
+ period = "del día" if plan.interval.downcase == "day"
79
+ period = "del año" if plan.interval.downcase == "year"
80
+ period = "del semestre" if plan.interval.downcase == "semester"
81
+ period = "del mes" if plan.interval.downcase == "month"
82
+
83
+ # end_date = Date.today + 1.day if plan.interval.downcase == "day"
84
+ end_date = Date.today + 1.month if plan.interval.downcase == "month"
85
+ end_date = Date.today + 6.months if plan.interval.downcase == "semester"
86
+ end_date = Date.today + 1.year if plan.interval.downcase == "year"
87
+
88
+ @payu_payment = EasyPayULatam::PayuPayment.create(
89
+ # amount: plan["value_month"],
90
+ amount: plan["value_#{plan.interval.downcase}"],
91
+ currency: "COP",
92
+ period: period_moths,
93
+ plan_id: plan.id,
94
+ user_id: current_user.id,
95
+ description: "Pago #{plan.name} #{period} UPICK",
96
+ start_date: Date.today,
97
+ end_date: end_date
98
+ )
54
99
  end
55
100
  end
56
101
  end
@@ -1,7 +1,7 @@
1
1
  <%= stylesheet_link_tag "easy_pay_u_latam/subscriptions/application", media: "all" %>
2
2
  <%= javascript_include_tag "easy_pay_u_latam/subscriptions/application" %>
3
3
  <div id="easy_pay_u_latam">
4
- <div ng-controller="SubscriptionsController as ssCtrl" ng-init="ssCtrl.init('<%= current_user.email %>', '<%= current_user.authentication_token %>', <%= Plan.actives.select(:id, :name, :value_month, :description, :payu_plan_code, :payu_plan_id).to_json%>)">
4
+ <div ng-controller="SubscriptionsController as ssCtrl" ng-init="ssCtrl.init('<%= current_user.email %>', '<%= current_user.authentication_token %>', <%= Plan.actives.select(:id, :name, :value_month, :description, :payu_plan_code, :payu_plan_id).to_json%>, <%= current_user.is_buyer?%>, <%= current_user.last_payment.to_json%>, <%= current_user.plan.to_json%>)">
5
5
  <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/none" %>
6
6
  <%= render "easy_pay_u_latam/pay_u_payments/plans/list" %>
7
7
  <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/actual" %>
@@ -8,10 +8,10 @@
8
8
  <%= render "easy_pay_u_latam/pay_u_payments/cards/form" %>
9
9
  </div>
10
10
  <div class="col-md-12">
11
- <div class="alert alert-warning" ng-if="ssCtrl.cards.length == 0">
11
+ <div class="alert alert-warning" ng-show="ssCtrl.cards.length == 0">
12
12
  <strong>Información: </strong> No tienes medio de pagos creados, da click en <b>Nueva tarjeta</b> para crearlos.
13
13
  </div>
14
- <table class="table" ng-if="ssCtrl.cards.length > 0">
14
+ <table class="table" ng-show="ssCtrl.cards.length > 0">
15
15
  <tr>
16
16
  <th>
17
17
  Número de tajeta
@@ -38,7 +38,7 @@
38
38
  {{card.type}}
39
39
  </td>
40
40
  <td class="text-center">
41
- <button type="button" class="text-btn pull-right" ng-click="ssCtrl.DeleteCard(card)">
41
+ <button type="button" class="text-btn pull-right" ng-click="ssCtrl.DeleteCard(card)" ng-if="card.token != ssCtrl.user_default_card">
42
42
  <i class="far fa-trash-alt"></i>
43
43
  Eliminar
44
44
  </button>
@@ -1,4 +1,4 @@
1
- <div class="my-profile-info-text">
1
+ <div class="my-profile-info-text" ng-hide="ssCtrl.actual_plan == null">
2
2
  <h2 class="h4">
3
3
  <i class="fas fa-medal icon-full-blue"></i> Membresía y facturación
4
4
  </h2>
@@ -7,23 +7,29 @@
7
7
  <div class="col-md-8">
8
8
  <p class="h6">
9
9
  Plan actual:
10
- <span ng-if="ssCtrl.subscription_loading == false">
10
+ <span ng-show="ssCtrl.subscription_loading != true">
11
11
  {{ssCtrl.actual_plan.name}}
12
+ <small ng-show="ssCtrl.last_payment.state_pol == '4'">
13
+ (Renovación automática)
14
+ </small>
15
+ <small ng-show="ssCtrl.last_payment.state_pol == '-1'">
16
+ (Renovación manual)
17
+ </small>
12
18
  </span>
13
- <span ng-if="ssCtrl.subscription_loading == true">
19
+ <span ng-show="ssCtrl.subscription_loading == true">
14
20
  <i class="fas fa-circle-notch fa-spin vertical-middle"></i>
15
21
  </span>
16
22
  </p>
17
23
  <p class="h6">
18
- Fecha de inicio:
24
+ Fecha de inicio: {{ssCtrl.last_payment.start_date}}
19
25
  </p>
20
26
  <p class="h6">
21
- Fecha de corte:
27
+ Fecha de corte: {{ssCtrl.last_payment.end_date}}
22
28
  </p>
23
- <p class="h6">
24
- Medio de pago: **** **** **** 7289
29
+ <p class="h6" ng-show="ssCtrl.last_payment.number_card != null">
30
+ Medio de pago: {{ssCtrl.last_payment.number_card}}
25
31
  </p>
26
- <p class="h6" ng-if="ssCtrl.selected_plan != null">
32
+ <p class="h6" ng-show="ssCtrl.selected_plan != null">
27
33
  <span class="label label-info" style="font-size: 14px;">
28
34
  Nuevo plan seleccionado: {{ssCtrl.selected_plan.name}}
29
35
  </span>
@@ -36,16 +42,16 @@
36
42
  </div>
37
43
  <div class="col-md-4">
38
44
  <div class="btn-group-vertical">
39
- <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-click="ssCtrl.ChangePlan();">
45
+ <!-- <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-click="ssCtrl.ChangePlan();">
40
46
  <span>Cambiar plan</span>
41
- </button>
47
+ </button> -->
42
48
  <!-- <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px">
43
49
  <span>Actualizar información de pagos</span>
44
50
  </button>
45
51
  <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px">
46
52
  <span>Detalles de facturación</span>
47
53
  </button> -->
48
- <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-if="ssCtrl.actual_plan != null" ng-click="ssCtrl.DeleteSubscription();">
54
+ <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-show="ssCtrl.actual_plan != null" ng-click="ssCtrl.DeleteSubscription();">
49
55
  <span>Cancelar membresía</span>
50
56
  </button>
51
57
  </div>
@@ -5,10 +5,10 @@
5
5
  <br/>
6
6
  <div class="row">
7
7
  <div class="col-md-12">
8
- <div class="alert alert-warning" ng-if="ssCtrl.subscriptions.length == 0">
8
+ <div class="alert alert-warning" ng-show="ssCtrl.subscriptions.length == 0">
9
9
  <strong>Información: </strong> Aún no tienes facturas para mostrar.
10
10
  </div>
11
- <table class="table" ng-if="ssCtrl.subscriptions.length > 0">
11
+ <table class="table" ng-show="ssCtrl.subscriptions.length > 0">
12
12
  <tr>
13
13
  <th>
14
14
  Orden Id
@@ -28,10 +28,10 @@
28
28
  </tr>
29
29
  <tr ng-repeat="sub in ssCtrl.subscriptions">
30
30
  <td>
31
- {{sub.orderId}} {{sub.subscriptionId}}
31
+ {{sub.reference_code}}
32
32
  </td>
33
33
  <td class="text-center">
34
- {{sub.state}}
34
+ {{sub.response_message_pol}}
35
35
  </td>
36
36
  <td class="text-right">
37
37
  {{sub.amount | myCurrency}}
@@ -40,7 +40,7 @@
40
40
  {{sub.currency}}
41
41
  </td>
42
42
  <td class="text-center">
43
- {{ssCtrl.IntToDate(sub.dateCharge)}}
43
+ {{sub.created_at}}
44
44
  </td>
45
45
  </tr>
46
46
  </table>
@@ -50,7 +50,7 @@ class CreateEasyPayULatamPayuPayments < ActiveRecord::Migration[5.0]
50
50
  t.integer :attempts
51
51
  t.string :merchant_id
52
52
  t.string :exchange_rate
53
- t.string :ip
53
+ t.string :reference_recurring_payment
54
54
 
55
55
  t.timestamps
56
56
  end
@@ -10,7 +10,7 @@ module EasyPayULatam
10
10
  # @callback_url = callback_url
11
11
  @params = {}
12
12
  return if @customer.nil?
13
- load("")
13
+ # load("")
14
14
  end
15
15
 
16
16
  def invoice_url
@@ -1,3 +1,3 @@
1
1
  module EasyPayULatam
2
- VERSION = '0.1.16'
2
+ VERSION = '0.1.17'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_pay_u_latam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - DEVPENGUIN
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-04 00:00:00.000000000 Z
11
+ date: 2018-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails