solidus_conekta 1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +90 -0
- data/Rakefile +21 -0
- data/app/assets/javascripts/spree/backend/solidus_conekta.js +2 -0
- data/app/assets/javascripts/spree/frontend/conekta.js +635 -0
- data/app/assets/javascripts/spree/frontend/easyXDM.min.js +25 -0
- data/app/assets/javascripts/spree/frontend/printThis.js +146 -0
- data/app/assets/javascripts/spree/frontend/solidus_conekta.js.coffee +63 -0
- data/app/assets/javascripts/spree/frontend/utils.js.erb +35 -0
- data/app/assets/stylesheets/spree/backend/print.css.sass +12 -0
- data/app/assets/stylesheets/spree/backend/solidus_conekta.css +3 -0
- data/app/assets/stylesheets/spree/frontend/conekta.css.sass +45 -0
- data/app/assets/stylesheets/spree/frontend/solidus_conekta.css +4 -0
- data/app/controllers/spree/checkout_controller_decorator.rb +30 -0
- data/app/controllers/spree/conekta/payments_controller.rb +16 -0
- data/app/models/spree/billing_integration/conekta_gateway/bank.rb +30 -0
- data/app/models/spree/billing_integration/conekta_gateway/card.rb +35 -0
- data/app/models/spree/billing_integration/conekta_gateway/cash.rb +30 -0
- data/app/models/spree/billing_integration/conekta_gateway/monthly_payment.rb +35 -0
- data/app/models/spree/billing_integration/conekta_gateway.rb +31 -0
- data/app/models/spree/conekta_payment.rb +16 -0
- data/app/models/spree/credit_card_decorator.rb +8 -0
- data/app/models/spree/line_item_decorator.rb +11 -0
- data/app/models/spree/order_decorator.rb +19 -0
- data/app/models/spree/payment_decorator.rb +18 -0
- data/app/models/spree.rb +5 -0
- data/app/overrides/add_conekta_scripts_to_the_checkout.rb +4 -0
- data/app/views/spree/admin/payments/_banorte.html.erb +32 -0
- data/app/views/spree/admin/payments/_oxxo.html.erb +29 -0
- data/app/views/spree/admin/payments/_spei.html.erb +30 -0
- data/app/views/spree/admin/payments/source_forms/_conekta.html.erb +3 -0
- data/app/views/spree/admin/payments/source_forms/_conekta_card.html.erb +3 -0
- data/app/views/spree/admin/payments/source_views/_conekta.html.erb +1 -0
- data/app/views/spree/admin/payments/source_views/_conekta_card.html.erb +19 -0
- data/app/views/spree/checkout/_conekta_scripts.html.erb +17 -0
- data/app/views/spree/checkout/existing_payment/_conekta_card.html.erb +9 -0
- data/app/views/spree/checkout/payment/_conekta.html.erb +3 -0
- data/app/views/spree/checkout/payment/_conekta_card.html.erb +75 -0
- data/app/views/spree/conekta/gateway_options.json.jbuilder +34 -0
- data/app/views/spree/conekta/payments/_bank.html.erb +0 -0
- data/app/views/spree/conekta/payments/_banorte.html.erb +30 -0
- data/app/views/spree/conekta/payments/_card.html.erb +0 -0
- data/app/views/spree/conekta/payments/_cash.html.erb +0 -0
- data/app/views/spree/conekta/payments/_oxxo.html.erb +36 -0
- data/app/views/spree/conekta/payments/_spei.html.erb +28 -0
- data/app/views/spree/conekta/payments/show.html.erb +25 -0
- data/config/locales/en.yml +26 -0
- data/config/locales/es-MX.yml +26 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20130904161251_create_spree_conekta_payments.rb +9 -0
- data/db/migrate/20130904172418_rename_type_column_to_conekta_payment.rb +7 -0
- data/db/migrate/20140220160614_add_installments_to_spree_credit_card.rb +5 -0
- data/db/migrate/20140509145837_add_payment_method_id_to_spree_conekta_payment.rb +6 -0
- data/db/migrate/20140509151116_add_user_id_to_spree_conekta_payment.rb +6 -0
- data/lib/generators/solidus_conekta/install/install_generator.rb +31 -0
- data/lib/solidus_conekta/engine.rb +40 -0
- data/lib/solidus_conekta/factories.rb +6 -0
- data/lib/solidus_conekta/version.rb +3 -0
- data/lib/solidus_conekta.rb +10 -0
- data/lib/spree/conekta/client.rb +36 -0
- data/lib/spree/conekta/configuration.rb +25 -0
- data/lib/spree/conekta/credit_card.rb +42 -0
- data/lib/spree/conekta/credit_card_collection.rb +36 -0
- data/lib/spree/conekta/customer.rb +39 -0
- data/lib/spree/conekta/exchange.rb +30 -0
- data/lib/spree/conekta/fake_response.rb +10 -0
- data/lib/spree/conekta/monthly_payment_provider.rb +26 -0
- data/lib/spree/conekta/payment_notification_handler.rb +36 -0
- data/lib/spree/conekta/payment_source/bank.rb +13 -0
- data/lib/spree/conekta/payment_source/card.rb +21 -0
- data/lib/spree/conekta/payment_source/cash.rb +13 -0
- data/lib/spree/conekta/provider.rb +134 -0
- data/lib/spree/conekta/response.rb +14 -0
- data/lib/tasks/solidus_conekta_tasks.rake +4 -0
- metadata +509 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
module Spree
|
2
|
+
Payment.class_eval do
|
3
|
+
def payment_method_source
|
4
|
+
payment_method.options[:source_method]
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.find_by_order_number(order_number)
|
8
|
+
Spree::Payment.joins(:order)
|
9
|
+
.where(state: 'pending', spree_orders: {
|
10
|
+
number: order_number
|
11
|
+
}).readonly(false).last
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.capture_by_order_number(order_number)
|
15
|
+
Spree::Payment.find_by_order_number(order_number.split('-')[0]).try(:capture!)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/app/models/spree.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
<%- @order_details = @order.last_payment_details.params %>
|
2
|
+
|
3
|
+
<table class='print' id='conekta_banorte'>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th class='title' colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<th> <%= t('conekta.banorte.service_number') %> </th>
|
10
|
+
<th> <%= t('conekta.banorte.reference') %> </th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tfoot>
|
14
|
+
<tr>
|
15
|
+
<td colspan='2'> <%= raw t('conekta.banorte.payment_message') %> </td>
|
16
|
+
</tr>
|
17
|
+
</tfoot>
|
18
|
+
<tbody>
|
19
|
+
<tr>
|
20
|
+
<td class='align-center'> <%= @order_details['banorte']['service_number'] %> </td>
|
21
|
+
<td class='align-center'> <%= @order_details['banorte']['reference'] %> </td>
|
22
|
+
</tr>
|
23
|
+
<tr>
|
24
|
+
<td class='align-right'> <%= t('conekta.total') %> </td>
|
25
|
+
<td class='align-center'><%= money(@order.total) %></td>
|
26
|
+
</tr>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
|
30
|
+
<a id='pbutton' href='#' class='icon-print' onclick='printDoc("#conekta_banorte")'>
|
31
|
+
<%= t('conekta.cash.print_payment_form') %>
|
32
|
+
</a>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%- @order_details = @order.last_payment_details.params %>
|
2
|
+
|
3
|
+
<table class='print' id='conekta_oxxo'>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th class='title' colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<th> <%= t('conekta.oxxo.bar_code') %> </th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tfoot>
|
13
|
+
<tr>
|
14
|
+
<td colspan='2'> <%= raw t('conekta.oxxo.payment_message') %> </td>
|
15
|
+
</tr>
|
16
|
+
</tfoot>
|
17
|
+
<tbody>
|
18
|
+
<tr>
|
19
|
+
<td class='align-center'>
|
20
|
+
<%= image_tag(@order_details['oxxo']['barcode_url']) %>
|
21
|
+
<div><%= @order_details['oxxo']['barcode'] %></div>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
</tbody>
|
25
|
+
</table>
|
26
|
+
|
27
|
+
<a id='pbutton' href='#' class='icon-print' onclick='printDoc("#conekta_oxxo")'>
|
28
|
+
<%= t('conekta.oxxo.print_payment_form') %>
|
29
|
+
</a>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%- @order_details = @order.last_payment_details.params %>
|
2
|
+
|
3
|
+
<table class='print' id='conekta_spei'>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th class='title' colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<th> <%= t('conekta.spei.clabe') %> </th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tfoot>
|
13
|
+
<tr>
|
14
|
+
<td colspan='2'> <%= raw t('conekta.spei.payment_message') %> </td>
|
15
|
+
</tr>
|
16
|
+
</tfoot>
|
17
|
+
<tbody>
|
18
|
+
<tr>
|
19
|
+
<td class='align-center'> <%= @order_details['spei']['receiving_account_number'] %> </td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td class='align-right'> <%= t('conekta.total') %> </td>
|
23
|
+
<td class='align-center'><%= money(@order.total) %></td>
|
24
|
+
</tr>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
27
|
+
|
28
|
+
<a id='pbutton' href='#' class='icon-print' onclick='printDoc("#conekta_spei")'>
|
29
|
+
<%= t('conekta.cash.print_payment_form') %>
|
30
|
+
</a>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render partial: @order.last_payment_source %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<fieldset data-hook="credit_card">
|
2
|
+
<legend align="center"><%= Spree.t(:credit_card) %></legend>
|
3
|
+
|
4
|
+
<div class="row">
|
5
|
+
<div class="alpha six columns">
|
6
|
+
<dl>
|
7
|
+
<dt><%= Spree.t(:card_type) %>:</dt>
|
8
|
+
<dd><%= payment.source.cc_type %></dd>
|
9
|
+
|
10
|
+
<dt><%= Spree.t(:card_number) %>:</dt>
|
11
|
+
<dd><%= payment.source.display_number %></dd>
|
12
|
+
|
13
|
+
<dt><%= Spree.t(:expiration) %>:</dt>
|
14
|
+
<dd><%= payment.source.month %>/<%= payment.source.year %></dd>
|
15
|
+
</dl>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
</fieldset>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% unless Rails.env.test? %>
|
2
|
+
<script type="text/javascript">
|
3
|
+
$(function() {
|
4
|
+
$('#card_month').on('change', function(e){
|
5
|
+
$('#conekta_month').val($(this).val());
|
6
|
+
});
|
7
|
+
|
8
|
+
$('#card_year').on('change', function(e){
|
9
|
+
$('#conekta_year').val($(this).val());
|
10
|
+
});
|
11
|
+
|
12
|
+
var gatewayOptions = JSON.parse("<%= escape_javascript render(template: 'spree/conekta/gateway_options.json').html_safe %>");
|
13
|
+
|
14
|
+
spreeConekta = new Spree.Conekta($('#checkout_form_payment'), gatewayOptions);
|
15
|
+
});
|
16
|
+
</script>
|
17
|
+
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<tr id="<%= dom_id(wallet_payment_source, 'spree')%>" class="<%= cycle('even', 'odd') %>">
|
2
|
+
<td><%= wallet_payment_source.payment_source.name %></td>
|
3
|
+
<td><%= wallet_payment_source.payment_source.display_number %></td>
|
4
|
+
<td><%= wallet_payment_source.payment_source.month %></td>
|
5
|
+
<td><%= wallet_payment_source.payment_source.year %></td>
|
6
|
+
<td>
|
7
|
+
<%= radio_button_tag "order[wallet_payment_source_id]", wallet_payment_source.id, default, class: "existing-cc-radio" %>
|
8
|
+
</td>
|
9
|
+
</tr>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
<%= image_tag 'credit_cards/credit_card.gif', :id => 'credit-card-image' %>
|
2
|
+
<% param_prefix = "payment_source[#{payment_method.id}]" %>
|
3
|
+
|
4
|
+
|
5
|
+
<p class="field">
|
6
|
+
<%= label_tag "name_on_card_#{payment_method.id}", Spree.t(:name_on_card) %><span class="required">*</span><br />
|
7
|
+
<%= text_field_tag "#{param_prefix}[name]",
|
8
|
+
"#{@order.billing_firstname} #{@order.billing_lastname}",
|
9
|
+
{ id: "name_on_card_#{payment_method.id}",
|
10
|
+
data: { conekta: 'card[name]' } } %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p class="field" data-hook="card_number">
|
14
|
+
<%= label_tag "card_number", Spree.t(:card_number) %><span class="required">*</span><br />
|
15
|
+
<% options_hash = Rails.env.production? ? {autocomplete: 'off'} : {} %>
|
16
|
+
<%= text_field_tag "#{param_prefix}[number]",
|
17
|
+
'',
|
18
|
+
options_hash.merge(:id => 'card_number',
|
19
|
+
class: 'required cardNumber',
|
20
|
+
size: 19,
|
21
|
+
maxlength: 19,
|
22
|
+
autocomplete: "off",
|
23
|
+
data: { conekta: 'card[number]' }) %>
|
24
|
+
|
25
|
+
<span id="card_type" style="display:none;">
|
26
|
+
( <span id="looks_like" ><%= Spree.t(:card_type_is) %> <span id="type"></span></span>
|
27
|
+
<span id="unrecognized"><%= Spree.t(:unrecognized_card_type) %></span>
|
28
|
+
)
|
29
|
+
</span>
|
30
|
+
</p>
|
31
|
+
|
32
|
+
<p class="field" data-hook="card_expiration">
|
33
|
+
<%= label_tag "card_month", Spree.t(:expiration) %><span class="required">*</span><br />
|
34
|
+
<%= select_month(Date.today,
|
35
|
+
{ prefix: param_prefix, field_name: 'month', use_month_numbers: true },
|
36
|
+
class: 'required',
|
37
|
+
id: "card_month",
|
38
|
+
data: { conekta: 'card[exp_month]' }) %>
|
39
|
+
|
40
|
+
<%= select_year(Date.today,
|
41
|
+
{ prefix: param_prefix, field_name: 'year', start_year: Date.today.year, end_year: Date.today.year + 15 },
|
42
|
+
class: 'required',
|
43
|
+
id: "card_year",
|
44
|
+
data: { conekta: 'card[exp_year]' }) %>
|
45
|
+
</p>
|
46
|
+
|
47
|
+
<p class="field" data-hook="card_code">
|
48
|
+
<%= label_tag "card_code", Spree.t(:card_code) %><span class="required">*</span><br />
|
49
|
+
<%= text_field_tag "#{param_prefix}[verification_value]",
|
50
|
+
'',
|
51
|
+
options_hash.merge(id: 'card_code',
|
52
|
+
class: 'required cardCode',
|
53
|
+
size: 5,
|
54
|
+
data: { conekta: 'card[cvc]' } ) %>
|
55
|
+
<%= link_to "(#{Spree.t(:what_is_this)})", spree.cvv_path, target: '_blank', "data-hook" => "cvv_link", id: "cvv_link" %>
|
56
|
+
</p>
|
57
|
+
|
58
|
+
<% if payment_method.with_installments? %>
|
59
|
+
<p class="field">
|
60
|
+
<%= label_tag "installments_number_#{payment_method.id}", t('conekta.installments_number') %>
|
61
|
+
<%= select_tag "#{param_prefix}[installments_number]", options_for_select(Spree::Conekta.configuration.installment_options, Spree::Conekta.configuration.installment_default), data: { conekta: 'monthly_installments' } %>
|
62
|
+
</p>
|
63
|
+
<% end %>
|
64
|
+
|
65
|
+
<%= hidden_field_tag "conekta_month", Date.today.month, data: { conekta: 'card[exp_month]' } %>
|
66
|
+
<%= hidden_field_tag "conekta_year", Date.today.year, data: { conekta: 'card[exp_year]' } %>
|
67
|
+
|
68
|
+
<%= hidden_field_tag "#{param_prefix}[conekta_response]", '' %>
|
69
|
+
<%= hidden_field_tag "#{param_prefix}[gateway_payment_profile_id]", '', :id => "gateway_payment_profile_id" %>
|
70
|
+
|
71
|
+
<script type="text/javascript">
|
72
|
+
$(function() {
|
73
|
+
Conekta.setPublishableKey('<%= payment_method.preferred_public_auth_token %>');
|
74
|
+
});
|
75
|
+
</script>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
json.description('Spree Order')
|
2
|
+
json.amount(@order.display_total.cents)
|
3
|
+
json.currency(Spree::Config[:currency])
|
4
|
+
json.reference_id(@order.number)
|
5
|
+
|
6
|
+
json.details do
|
7
|
+
json.name(@order.name)
|
8
|
+
json.phone(@order.bill_address.phone)
|
9
|
+
json.email(@order.email)
|
10
|
+
|
11
|
+
json.billing_address do
|
12
|
+
json.email(@order.email)
|
13
|
+
json.street1(@order.bill_address.address1)
|
14
|
+
json.street2(@order.bill_address.address2)
|
15
|
+
json.city(@order.bill_address.city)
|
16
|
+
json.state(@order.bill_address.state)
|
17
|
+
json.country(@order.bill_address.country)
|
18
|
+
json.zip(@order.bill_address.zipcode)
|
19
|
+
|
20
|
+
json.line_items(@order.line_items.map(&:to_conekta))
|
21
|
+
|
22
|
+
json.shipment do
|
23
|
+
json.price(@order.shipments.sum(:cost))
|
24
|
+
json.address do
|
25
|
+
json.street1(@order.ship_address.address1)
|
26
|
+
json.street2(@order.ship_address.address2)
|
27
|
+
json.city(@order.ship_address.city)
|
28
|
+
json.state(@order.ship_address.state)
|
29
|
+
json.country(@order.ship_address.country)
|
30
|
+
json.zip(@order.ship_address.zipcode)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<h1><%= t('conekta.banorte.payment_title') %></h1>
|
2
|
+
|
3
|
+
<table id='conekta_banorte' class='payment-information'>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<th> <%= t('conekta.banorte.service_number') %> </th>
|
10
|
+
<th> <%= t('conekta.banorte.reference') %> </th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tfoot>
|
14
|
+
<tr>
|
15
|
+
<td colspan='2'> <%= raw t('conekta.banorte.payment_message') %> </td>
|
16
|
+
</tr>
|
17
|
+
</tfoot>
|
18
|
+
<tbody>
|
19
|
+
<tr>
|
20
|
+
<td class='align-center'> <%= @order_details['payment_method']['service_number'] %> </td>
|
21
|
+
<td class='align-center'> <%= @order_details['payment_method']['reference'] %> </td>
|
22
|
+
</tr>
|
23
|
+
<tr>
|
24
|
+
<td class='align-right' colspan='2'>
|
25
|
+
<b><%= t('conekta.total') %></b>
|
26
|
+
<%= @order.display_total.to_html %>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
</tbody>
|
30
|
+
</table>
|
File without changes
|
File without changes
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<img class='conekta-oxxo' src='https://s3.amazonaws.com/pagalo/oxxo_logo.png'></img>
|
2
|
+
<h1 id='oxxo-title'><%= t("conekta.oxxo.payment_title") %></h1>
|
3
|
+
|
4
|
+
<table id='conekta_oxxo' class='payment-information'>
|
5
|
+
<thead>
|
6
|
+
<tr>
|
7
|
+
<th colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<th colspan='2'> <%= t('conekta.oxxo.bar_code') %> </th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tfoot>
|
14
|
+
<tr>
|
15
|
+
<td colspan='2'> <%= raw t('conekta.oxxo.payment_message') %> </td>
|
16
|
+
</tr>
|
17
|
+
</tfoot>
|
18
|
+
<tbody>
|
19
|
+
<tr>
|
20
|
+
<td class='align-center' id='barcode'>
|
21
|
+
<%= image_tag(@order_details['payment_method']['barcode_url']) %>
|
22
|
+
<div><%= @order_details['payment_method']['barcode'] %></div>
|
23
|
+
</td>
|
24
|
+
</tr>
|
25
|
+
<tr>
|
26
|
+
<td class='align-right'>
|
27
|
+
<b><%= t('conekta.total') %></b>
|
28
|
+
<% if @order.currency != 'MXN' %>
|
29
|
+
<%= Spree::Conekta::Exchange.new(@order.total, @order.currency).amount_exchanged %> MXN
|
30
|
+
<% else %>
|
31
|
+
<%= @order.display_total.to_html%>
|
32
|
+
<% end%>
|
33
|
+
</td>
|
34
|
+
</tr>
|
35
|
+
</tbody>
|
36
|
+
</table>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<h1><%= t('conekta.spei.payment_title') %></h1>
|
2
|
+
|
3
|
+
<table id='conekta_spei' class='payment-information'>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th colspan='2'> <%= t('conekta.order_number', number: @order.number) %> </th>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<th> <%= t('conekta.spei.clabe') %> </th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tfoot>
|
13
|
+
<tr>
|
14
|
+
<td colspan='2'> <%= raw t('conekta.spei.payment_message') %> </td>
|
15
|
+
</tr>
|
16
|
+
</tfoot>
|
17
|
+
<tbody>
|
18
|
+
<tr>
|
19
|
+
<td class='align-center'> <%= @order_details['payment_method']['receiving_account_number'] %> </td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td class='align-right' colspan='2'>
|
23
|
+
<b><%= t('conekta.total') %></b>
|
24
|
+
<%= @order.display_total.to_html %>
|
25
|
+
</td>
|
26
|
+
</tr>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<section id='order-payment'>
|
2
|
+
<header class='order-title'>
|
3
|
+
<div class='logos'>
|
4
|
+
<img class='conekta-brand' src='https://s3.amazonaws.com/conekta/v5/img/conekta-brand.png' alt='Conekta'></img>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<h2 class='payment-title'><%= t('conekta.title') %></h2>
|
8
|
+
</header>
|
9
|
+
|
10
|
+
<div class='order-body'>
|
11
|
+
<%= render partial: @order.last_payment_source %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<footer class='order-footer'>
|
15
|
+
<%= button_tag t('conekta.print_payment_form'), id: 'print-payment', class: 'icon-print' %>
|
16
|
+
</footer>
|
17
|
+
</section>
|
18
|
+
|
19
|
+
<script type="text/javascript">
|
20
|
+
$(document).ready(function() {
|
21
|
+
$('#print-payment').click(function(){
|
22
|
+
window.print();
|
23
|
+
});
|
24
|
+
});
|
25
|
+
</script>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
en:
|
2
|
+
conekta:
|
3
|
+
additional_steps_warning: Additional steps to complete your payment
|
4
|
+
card:
|
5
|
+
processing_order: Processing order please wait
|
6
|
+
oxxo:
|
7
|
+
bar_code: Barcode
|
8
|
+
next_step: Next step
|
9
|
+
payment_message: Print this form and take it to the nearest OXXO to make your payment.
|
10
|
+
payment_title: Payment through OXXO
|
11
|
+
print_payment_form: Print payment form
|
12
|
+
title: Payment information
|
13
|
+
total: Total
|
14
|
+
banorte:
|
15
|
+
payment_title: Banorte deposit
|
16
|
+
service_number: Service Number
|
17
|
+
reference: Reference
|
18
|
+
payment_message: Give this reference number at any Banorte bank.
|
19
|
+
spei:
|
20
|
+
payment_title: SPEI
|
21
|
+
clabe: CLABE
|
22
|
+
reference: Reference
|
23
|
+
payment_message: Use this CLABE to make a SPEI transfer.
|
24
|
+
order_number: 'Order Number: %{number}'
|
25
|
+
total: 'Total:'
|
26
|
+
installments_number: 'Installments Number'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
es-MX:
|
2
|
+
conekta:
|
3
|
+
additional_steps_warning: Pasos adicionales para completar su pago
|
4
|
+
card:
|
5
|
+
processing_order: Procesando su pago espere un momento
|
6
|
+
oxxo:
|
7
|
+
bar_code: Código de barras
|
8
|
+
payment_message: Imprime este formulario y preséntalo en el Oxxo mas cercano para realizar tu pago.
|
9
|
+
payment_title: Pago a través de Oxxo
|
10
|
+
total: Total
|
11
|
+
banorte:
|
12
|
+
payment_title: Depósito en ventanilla Banorte
|
13
|
+
service_number: Número de servicio
|
14
|
+
reference: Referencia
|
15
|
+
payment_message: 'Presente este número de referencia en cualquier sucursal: <strong> Banorte </strong>'
|
16
|
+
spei:
|
17
|
+
payment_title: SPEI
|
18
|
+
clabe: CLABE
|
19
|
+
reference: Referencia
|
20
|
+
payment_message: Usa esta CLABE para hacer una transferencia SPEI.
|
21
|
+
title: Información de pago
|
22
|
+
next_step: Siguiente paso
|
23
|
+
order_number: 'Número de orden: %{number}'
|
24
|
+
print_payment_form: Imprimir ficha de pago
|
25
|
+
total: 'Total a pagar:'
|
26
|
+
installments_number: 'Meses sin intereses'
|
data/config/routes.rb
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
class RenameTypeColumnToConektaPayment < SolidusSupport::Migration[4.2]
|
2
|
+
def change
|
3
|
+
rename_column :spree_conekta_payments, :type, :payment_type
|
4
|
+
add_column :spree_conekta_payments, :first_name, :string
|
5
|
+
add_column :spree_conekta_payments, :last_name, :string
|
6
|
+
end
|
7
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module SolidusConekta
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
|
5
|
+
class_option :auto_run_migrations, type: :boolean, default: false
|
6
|
+
|
7
|
+
def add_javascripts
|
8
|
+
append_file 'vendor/assets/javascripts/spree/frontend/all.js', "\n//= require spree/frontend/solidus_conekta\n"
|
9
|
+
append_file 'vendor/assets/javascripts/spree/backend/all.js', "\n//= require spree/backend/solidus_conekta\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_stylesheets
|
13
|
+
inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', "\n *= require spree/frontend/solidus_conekta\n", before: /\*\//, verbose: true
|
14
|
+
inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', "\n *= require spree/backend/solidus_conekta\n", before: /\*\//, verbose: true
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_migrations
|
18
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_conekta'
|
19
|
+
end
|
20
|
+
|
21
|
+
def run_migrations
|
22
|
+
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
|
23
|
+
if run_migrations
|
24
|
+
run 'bundle exec rake db:migrate'
|
25
|
+
else
|
26
|
+
puts 'Skipping rake db:migrate, don\'t forget to run it!'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module SolidusConekta
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
require 'spree'
|
4
|
+
|
5
|
+
engine_name 'solidus_conekta'
|
6
|
+
|
7
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
8
|
+
|
9
|
+
# use rspec for tests
|
10
|
+
config.generators do |g|
|
11
|
+
g.test_framework :rspec
|
12
|
+
end
|
13
|
+
|
14
|
+
if Rails.version >= '3.1'
|
15
|
+
initializer :assets do |config|
|
16
|
+
Rails.application.config.assets.precompile += %w( solidus_conekta.js )
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.activate
|
21
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
|
22
|
+
Rails.env.production? ? require(c) : load(c)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
initializer "spree.gateway.payment_methods", after: "spree.register.payment_methods" do |app|
|
27
|
+
app.config.spree.payment_methods << Spree::BillingIntegration::ConektaGateway
|
28
|
+
app.config.spree.payment_methods << Spree::BillingIntegration::ConektaGateway::Cash
|
29
|
+
app.config.spree.payment_methods << Spree::BillingIntegration::ConektaGateway::Card
|
30
|
+
app.config.spree.payment_methods << Spree::BillingIntegration::ConektaGateway::Bank
|
31
|
+
app.config.spree.payment_methods << Spree::BillingIntegration::ConektaGateway::MonthlyPayment
|
32
|
+
end
|
33
|
+
|
34
|
+
initializer 'solidus_conekta.assets.precompile' do |app|
|
35
|
+
app.config.assets.precompile += %w( spree/backend/print.css )
|
36
|
+
end
|
37
|
+
|
38
|
+
config.to_prepare &method(:activate).to_proc
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
# Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
|
3
|
+
#
|
4
|
+
# Example adding this to your spec_helper will load these Factories for use:
|
5
|
+
# require 'solidus_conekta/factories'
|
6
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'solidus_core'
|
2
|
+
require 'solidus_backend'
|
3
|
+
require 'solidus_frontend'
|
4
|
+
require 'solidus_support'
|
5
|
+
require 'nokogiri'
|
6
|
+
require 'typhoeus/adapters/faraday'
|
7
|
+
require 'faraday'
|
8
|
+
require 'faraday_middleware'
|
9
|
+
require 'solidus_conekta/engine'
|
10
|
+
require 'spree/conekta/configuration'
|