Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revert to master
  • Loading branch information
mdavo6 committed Sep 1, 2022
commit 5e27b00773f7a376e758eecdc2536fd5f0ec9627
2 changes: 1 addition & 1 deletion app/controllers/spree/checkout_controller_decorator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ def self.prepended(base)
base.include Spree::BraintreeHelper
base.helper_method [:asset_available?, :options_from_braintree_payments]
base.after_action :allow_braintree_iframe
#base.after_action :update_source_data, only: :update, if: proc { params[:state].eql?('payment') }
base.after_action :update_source_data, only: :update, if: proc { params[:state].eql?('payment') }
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/spree/admin/payment_methods_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def braintree_advanced_preference_fields(object, form)
end

def get_preference_fields(object, keys, form)
keys.map do |key|
keys.reject { |k| k == :currency_merchant_accounts }.map do |key|
next unless object.has_preference?(key)

if object.preference_type(key) == :boolean
Expand Down
4 changes: 1 addition & 3 deletions app/models/spree/braintree_vzero/order_decorator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,7 @@ def remove_phone_number_placeholder


def braintree_confirmation_required?
# Updated so only Paypal Express payments require confirmation
#paid_with_braintree? && state.eql?('payment')
paid_with_paypal_express?
paid_with_braintree? && state.eql?('payment')
end

def prepare_address_hash(hash)
Expand Down
23 changes: 15 additions & 8 deletions app/overrides/spree/shared/_payment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,24 @@
text: %{
<% elsif payment.payment_method.kind_of?(Spree::Gateway::BraintreeVzeroBase) %>
<% if (last_digits = payment.source.braintree_last_digits) %>
<p>
<%= payment.source.braintree_card_type.capitalize %><br>
<%= Spree.t(:ending_in) + " " + last_digits %>
</p>
<%
cc_type = payment.source.braintree_card_type
img = "credit_cards/icons/" + cc_type.downcase + ".png"
%>
<% if asset_available?(img) %>
<%= image_tag img %>
<% else %>
<p><%= Spree.t(:cc_type) + ": " + cc_type %></p>
</br>
<% end %>
<p><%= Spree.t(:ending_in) + " " + last_digits %></p>
<% end %>

<% if (paypal_email = payment.source.paypal_email) %>
<p>
Paypal<br>
<%= paypal_email %>
</p>
<!-- PayPal Logo --><img src="https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg" border="0" alt="PayPal Logo"><!-- PayPal Logo -->
<%= paypal_email %>
<% end %>

<% else %>
}
)
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@
<% end %>
<% end %>

<%= f.field_container :payment_method_stores, class: ['form-group'] do %>
<%= label_tag :payment_method_stores, Spree.t(:stores) %>
<%= collection_select(:payment_method, :store_ids, @stores, :id, :unique_name, {}, { multiple: true, class: 'select2' }) %>
<% end %>

<%= f.field_container :payment_method_display_on, class: ['form-group'] do %>
<%= label_tag :payment_method_display_on, Spree.t(:display) %>
<%= select(:payment_method, :display_on, Spree::PaymentMethod::DISPLAY.collect { |display| [Spree.t(display), display.to_s] }, {}, {:class => 'select2'}) %>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@
<p id="hosted-fields-expiration-date" class="form-control"></p>
<br/>
<% elsif dropin %>
<br/>
<div id="payment-form"/>
<br/>
<% end %>
</div>

Expand All @@ -53,17 +55,8 @@
<% end %>
</div>

<% if hosted %>
<script src="https://js.braintreegateway.com/web/3.54.1/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/hosted-fields.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/three-d-secure.min.js"></script>
<% elsif dropin %>
<script src='https://js.braintreegateway.com/web/dropin/1.30.1/js/dropin.min.js'></script>
<% elsif paypal %>
<script src="https://js.braintreegateway.com/web/3.54.1/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/paypal-checkout.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/data-collector.min.js"></script>
<% end %>
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<script src="https://js.braintreegateway.com/v1/braintree-data.js" async=true></script>

<script type="text/javascript">
$('#payment_payment_method_id_<%= payment_method.id %>').click(function (e) {
Expand All @@ -80,11 +73,16 @@
var clientToken = "<%= payment_method.client_token(@order) %>";
var errorMessagesContainer = "col-md-12";

var container = "payment-form";
$('#' + container).empty();
<% if dropin %>
var container = "payment-form";
$('#' + container).empty();
<% end %>
var checkout;

<%= render(partial: 'spree/shared/braintree_vzero/dropin', locals: { shipping_address: shipping_address, payment_method: payment_method }, formats: [:js]) if dropin %>
<%= render(partial: 'spree/shared/braintree_vzero/hosted', locals: { payment_method: payment_method }, formats: [:js]) if hosted %>
braintree.setup(clientToken, '<%= payment_method_type %>', {

<%= render(partial: 'spree/shared/braintree_vzero/dropin', locals: { shipping_address: shipping_address, payment_method: payment_method }, formats: [:js]) if dropin %>
<%= render(partial: 'spree/shared/braintree_vzero/hosted', locals: { payment_method: payment_method }, formats: [:js]) if hosted %>
});
});
</script>
3 changes: 0 additions & 3 deletions app/views/spree/braintree_vzero/_paypal_checkout.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,4 @@
}

</script>

<script src="https://js.braintreegateway.com/v2/braintree.js" onload="braintreeLoaded()"></script>
<script src="https://js.braintreegateway.com/js/braintree-2.32.1.min.js"></script>
<% end %>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
<%= Spree.t(:save_and_continue) %>
</span>
<% else %>
<%= submit_tag Spree.t(submit_label_key), class: 'btn btn-primary text-uppercase font-weight-bold w-100 checkout-content-save-continue-button braintree-submit', style: 'display: none;', method_id: method.id %>
<%= submit_tag Spree.t(:save_and_continue), class: 'btn btn-lg btn-success primary braintree-submit', style: 'display: none;', method_id: method.id %>
<% end %>
<% end %>
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,11 @@

function setupPayment() {
$('#order_payments_attributes__payment_method_id_<%= payment_method.id %>').click(function (e) {
var checkoutFormId = "<%= payment_method.preferred_checkout_form_id %>"
SpreeBraintreeVzero.advancedFraudTools = <%= payment_method.preferred_advanced_fraud_tools %>;
SpreeBraintreeVzero.paymentMethodID = "<%= payment_method.id %>";
SpreeBraintreeVzero.checkoutFormId = "#" + checkoutFormId;
SpreeBraintreeVzero.threeDSecure = <%= payment_method.try(:preferred_3dsecure) || false %>;
var threeDSecure;
var checkoutFormId = "<%= payment_method.preferred_checkout_form_id %>"
var formId = "#" + checkoutFormId;

var formId = "#" + checkoutFormId;

var clientToken = "<%= payment_method.client_token(@order) %>";
var clientToken = "<%= payment_method.client_token(@order) %>";

<% if hosted %>
var hf, threeDS;
Expand All @@ -24,7 +20,7 @@
var dropin;
<% end %>

var payBtn = document.getElementsByClassName('braintree-submit')[0];
var payBtn = document.getElementsByName('commit')[0];
var payGroup = $('.pay-group');

$('.credit-card-pay-success').css('display', 'none');
Expand Down Expand Up @@ -78,27 +74,7 @@
function setupDropin (clientToken) {
return braintree.dropin.create({
authorization: clientToken,
container: '#drop-in',
dataCollector: true,
paypal: {
flow: 'vault',
buttonStyle: {
label: 'paypal',
tagline: false,
size: 'medium'
}
}
})
}

function setupPaypal (clientToken) {
return braintree.dropin.create({
authorization: clientToken,
container: '#paypal-container',
card: false,
paypal: {
flow: 'vault'
}
container: '#drop-in'
})
}

Expand All @@ -110,10 +86,8 @@
<% elsif dropin %>
return setupDropin(clientToken).then(function(instance) {
dropin = instance;
<% elsif paypal %>
return setupPaypal(clientToken).then(function(instance) {
paypal = instance;
<% end %>
<% end %>

setupForm();
}).catch(function (err) {
console.log('component error:', err);
Expand Down Expand Up @@ -169,7 +143,7 @@

<% if hosted %>
hf.tokenize().then(function (payload) {
<% elsif dropin || paypal %>
<% elsif dropin %>
dropin.requestPaymentMethod(
function(err, payload) {
if (err) {
Expand All @@ -182,16 +156,10 @@
}
<% end %>

$(formId).append("<input type='hidden' name='braintree_last_two' value=" + payload.details.lastTwo + ">");
$(formId).append("<input type='hidden' name='braintree_card_type' value=" + payload.details.cardType.replace(/\s/g, "") + ">");
$(formId).append("<input type='hidden' name='order[payments_attributes][][braintree_nonce]' value=" + payload.nonce + ">");
$(formId).append("<input type='hidden' name='device_data' value=" + payload.deviceData + ">");

if (payload.type == "CreditCard") {
$(formId).append("<input type='hidden' name='braintree_last_two' value=" + payload.details.lastTwo + ">");
$(formId).append("<input type='hidden' name='braintree_card_type' value=" + payload.details.cardType.replace(/\s/g, "") + ">");
$(formId).append("<input type='hidden' name='payment_method_nonce' value=" + payload.nonce + ">");
} else if (payload.type == "PayPalAccount") {
$(formId).append("<input type='hidden' name='paypal_email' value=" + payload.details.email + ">");
}
$(formId).append("<input type='hidden' name='payment_method_nonce' value=" + payload.nonce + ">");
setTimeout(function () {
$(payBtn).attr("disabled", false)
$('#checkout form').submit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
</div>
<% end %>
<% end %>
<br/>

<% if paypal %>
<div id="paypal-container">
Expand Down Expand Up @@ -88,19 +89,15 @@
<script src="https://js.braintreegateway.com/web/3.54.1/js/hosted-fields.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/three-d-secure.min.js"></script>
<% elsif dropin %>
<script src='https://js.braintreegateway.com/web/dropin/1.30.1/js/dropin.min.js'></script>
<% elsif paypal %>
<script src="https://js.braintreegateway.com/web/3.54.1/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/paypal-checkout.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.54.1/js/data-collector.min.js"></script>
<script src='https://js.braintreegateway.com/web/dropin/1.20.4/js/dropin.min.js'></script>
<% end %>

<% if payment_method.try(:preferred_3dsecure) == "true" %>
<%= render partial: 'spree/checkout/payment/braintree_vzero/three_d_secure',
locals: { payment_method: payment_method, hosted: hosted, dropin: dropin, paypal: paypal }
locals: { payment_method: payment_method, hosted: hosted, dropin: dropin }
%>
<% else %>
<%= render partial: 'spree/checkout/payment/braintree_vzero/non_three_d_secure',
locals: { payment_method: payment_method, hosted: hosted, dropin: dropin, paypal: paypal }
locals: { payment_method: payment_method, hosted: hosted, dropin: dropin }
%>
<% end %>
Loading