• Resolved Tomasz Dziuda

    (@dziudek)


    Hi,

    We have got a report form customer who tried to buy on our website.

    The case is following:

    1) Customer filled the form
    2) Then he clicked yellow “Pay with PayPal” button
    3) He decided do pay with his Amex card connected with his PayPal account
    4) The card has been charged but the transaction was not finished, because validation error has been reported.
    5) When customer tried to fix validation error and pay again, he got an information that the card limit is exceed.

    Few additional details:
    * we have enabled 2 payment options: Pay with PayPal (yellow button) and Pay with debit/credit card (black button)
    * we are using the following code, as we prefer the pre 1.9.0 validation style:

    
    /**
     * Enable pre-v.1.9.0 form validation method
     */
    
    add_filter( 'woocommerce_paypal_payments_basic_checkout_validation_enabled', '__return_false' );
    

    * we did not get the money from customer to our PayPal account, so most probably these funds has been just blocked during first payment try.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Support Syde Niklas

    (@niklasinpsyde)

    Hi @dziudek,

    The basic validation was implemented in version 1.9.0 to prevent scenarios where buyers attempt to confirm the payment without having provided all required Checkout form fields.
    This is being looked into, but there are currently some issues with the UX when not taking the intended route through the Checkout. For example, without the basic validation, once the user pre-authorized the payment (but it couldn’t be completed), all other payment options should automatically disappear so the user can confirm the capture of the pre-authorized payment (similar to the express checkout flow).
    But this currently only happens after manually refreshing the page. When this is not done after the WooCommerce validation failed, all payment methods remain visible and the buyer may try to add an additional charge to the card after the first attempt failed due to the WooCommerce validation not succeeding.

    * we did not get the money from customer to our PayPal account, so most probably these funds has been just blocked during first payment try.

    PayPal Payments only captures the (pre-)authorized after WooCommerce successfully completed the Checkout validation (the real WooCommerce form field validation).
    So as long as the user does not get forwarded to the order-received page, no funds will be captured. PayPal usually releases pre-authorizations after a couple of hours, so the funds should be available again after a little while.

    Kind regards,
    Niklas

    Thread Starter Tomasz Dziuda

    (@dziudek)

    Hi @niklasinpsyde,

    So if the user tries to use the same payment method (for example clicks 2 times Pay with Paypal during checkout and validation), we cannot avoid a situation when funds are pre-authorised before the validation is correct? As I remember the basic validation is not working correctly, because it returns only information that there are invalid fields. If it will work as the basic WooCommerce validation we can implement it and remove the current filter on woocommerce_paypal_payments_basic_checkout_validation_enabled.

    Plugin Support Syde Niklas

    (@niklasinpsyde)

    Hi @dziudek,

    Once the user clicks “Pay now” in the PayPal popup window, PayPal pre-authorizes the payment.

    As I remember the basic validation is not working correctly, because it returns only information that there are invalid fields.

    In 1.9.0, the validation only displayed a generic error, but in the latest version 1.9.3 the error looks exactly like the error from the regular WooCommerce form field validation: https://github.com/woocommerce/woocommerce-paypal-payments/pull/740
    The basic validation still only checks whether or not required fields are populated before allowing the buyer to continue with the payment process in the PayPal popup window, though.
    So, when the buyer provides an invalid zip code, the basic validation would pass but the regular WooCommerce validation may reject an invalid zip code after confirming the payment in the popup window.
    All in all, I can’t think of a single good reason to disable the basic validation, apart from personal preference.
    It only causes users to be confused about the (currently suboptimal) behavior when the WooCommerce validation failed.
    We hope this will receive some improvements for the following updates though.

    Kind regards,
    Niklas

    Thread Starter Tomasz Dziuda

    (@dziudek)

    Hi @niklasinpsyde,

    Yes, indeed from 1.9.3 it seems that the validation works much better so I have removed the filter and now we are using the default validation method – I do hope that it will massively reduce a risk of the potential problem with unwanted pre-authorisations ??

    • This reply was modified 2 years, 2 months ago by Tomasz Dziuda.
Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Card charged despite non-finished transaction’ is closed to new replies.