• Resolved Chad

    (@aeboi80)


    Here are the versions we are running:

    WordPress: 4.5.3
    WooCommerce: 2.6.2 – i just upgraded to this from 2.6.1
    PHP Version: 5.4.43

    The issue we are having is when an order is paid for via PayPal standard, we get a new order notification email. The email has the QTY and price of everything ordered and the shipping price. Everything looks great. But when the order charged to the customers PayPal account, they are NOT being charged shipping costs. Just the gross order amount.

    The order is then put on hold within WooCommerce and we get an order note placed on the order such as:

    Validation error: PayPal amounts do not match (gross 56.00). Order status changed from Pending Payment to On Hold.

    This particular order was for $56 (products) and $17 for shipping. The order notification email from WooCommerce shows $56 and $17 for shipping. The email from PayPal shows just the $56 product charge.

    We’ve gone back through our orders and seen this happen at least 3 times in the past month.

    If an order is placed through our Stripe add-on it works just fine.

    I turned on logging for payapl and included part of it here and removed some sensitive data

    [body] => Array
            (
                [cmd] => _notify-validate
                [mc_gross] => 56.00
                [invoice] => WC-2174
                [protection_eligibility] => Ineligible
                [item_number1] => 1004
                [tax] => 0.00
                [item_number2] => 1002
                [payer_id] => 9DBPNXGZTP82Y
                [payment_date] => 08:30:06 Jul 08, 2016 PDT
                [payment_status] => Completed
                [charset] => windows-1252
                [mc_shipping] => 0.00
                [mc_handling] => 0.00
                [first_name] => Angela
                [mc_fee] => 2.48
                [notify_version] => 3.8
                [custom] => {"order_id":2174,"order_key":"wc_order_577fc6e8a2014"}
                [payer_status] => unverified
                [business] => [email protected] HIDDEN ON PURPOSE
                [num_cart_items] => 2
                [mc_handling1] => 0.00
                [mc_handling2] => 0.00
                [verify_sign] => AKT9YF3SRMaJwCYrIl0ZYYCB3ktdAcDexPRPiG5M44qcxn8E-UrcyUfd
                [payer_email] => [email protected] HIDDEN ON PURPOSE
                [mc_shipping1] => 17.00
                [mc_shipping2] => 0.00
                [txn_id] => 77W47246GW886902K
                [payment_type] => instant
                [last_name] => Doe
                [item_name1] => Pretty Pewter ( Color: Pretty Pewter,
    Size: Small (7-8) )
                [receiver_email] => [email protected] HIDDEN ON PURPOSE
                [item_name2] => Hi-Ho Silver ( Color: Hi-Ho Silver,
    Size: Small (7-8) )
                [payment_fee] => 2.48
                [quantity1] => 3
                [quantity2] => 1
                [receiver_id] => ZTUMSMN25VHWE
                [txn_type] => cart
                [mc_gross_1] => 59.00
                [mc_currency] => USD
                [mc_gross_2] => 14.00
                [residence_country] => CA
                [transaction_subject] => {"order_id":2174,"order_key":"wc_order_577fc6e8a2014"}
                [payment_gross] => 56.00
                [ipn_track_id] => ddac991d3fb48
            )
    
        [timeout] => 60
        [httpversion] => 1.1
        [compress] =>
        [decompress] =>
        [user-agent] => WooCommerce/2.6.1

    I saw that there were people having similar issues about a year ago, but apparently that bug was patched long ago within WooCommerce.

    This particular order was to a customer in Canada, but it has happened with both domestic and international customers.

    https://www.ads-software.com/plugins/woocommerce/

Viewing 3 replies - 1 through 3 (of 3 total)
  • Thread Starter Chad

    (@aeboi80)

    I resolved the issue.

    It turns out the client has previous setup “Shipping Calculations” directly within their PayPal account before they switched to WooCommerce. PayPal >> Profile >> Profile and Settings >> My Selling Tools >> Shipping Calculations

    As such when an order was set from Woo to PP, PP was getting confused because it had a [mc_shipping] value being sent via the IPN, but PP itself was also trying to calculate the shipping cost based on the “Shipping Calculations” table of shipping rates set within the PP account.

    Simply removing the shipping rate table within PP fixed the issue.

    The way I stumbled across this fix was when I turned on the option for “Send shipping details to PayPal instead of billing.” within the PayPal settings of WooCommerce.
    WooCommerce >> Settings >> Checkout >> PayPal >> Shipping Details

    I hope this may help someone in the future.

    Thanks Chad, just guided a client through your instructions and again resolved the issue.

    You’re a star for posting a resolution to this issue. Much appreciated.

    This seems to be the same thing happening to me. The postage cost seems to be lost when the order comes over to paypal.

    How exactly does one delete the shipping rules in paypal? I use paypal UK and the same settings can be found under Paypal >> Profile >> Profile and Settings >> My Selling Preferences >> Postage calculations:

    Postage calculations

    Does the checkbox at the bottom need to be ticked or unticked?

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Validation error: PayPal amounts do not match (gross xx.xx). Order status change’ is closed to new replies.