IPN mc_gross_1 includes the shipping amount

TalSha
Contributor
Contributor

Hi,

 

Does anybody have the following problem:

when a customer makes a payment with Paypal i receive from the IPN in the item mc_gross_1 the total amount including the shipping amount.

for example
the cart items is 138
Shipping is 12

i should have receive :
mc_gross = 150
mc_gross_1 = 138
mc_shippiung = 12

but i get from the IPN:
mc_gross = 150
mc_gross_1 = 150
mc_shippiung = 12

The issue started a week ago and is still ongoing.

I have it in 2 sites, both use WooCommerce.

the cart that is send to paypal looks OK.


Thanks,
Tal.

Login to Me Too
4 REPLIES 4

TalSha
Contributor
Contributor

Hi,

 

Does anybody have the following problem:

when a customer makes a payment with Paypal i receive from the IPN in the item mc_gross_1 the total amount including the shipping amount.

for example
the cart items is 138
Shipping is 12

i should have receive :
mc_gross = 150
mc_gross_1 = 138
mc_shippiung = 12

but i get from the IPN:
mc_gross = 150
mc_gross_1 = 150
mc_shippiung = 12

The issue started a week ago and is still ongoing.

I have it in 2 sites, both use WooCommerce.

the cart that is send to paypal looks OK.


Thanks,
Tal.

Login to Me Too

MTS_Ciaran
Moderator
Moderator

the mc_gross_1 should be the total of all the "_1" variables combined including shipping variables.

 

Can you post the HTML code for the redirect if you're using buttons, or the EC API correlation IDs if using APIs. 

Login to Me Too

bolau
Member
Member

I've got the same problem, due to inconsistencies between different checkout methods.
 
Here's an IPN I get after a checkout with cart upload via a form POST to 
https://www.paypal.com/cgi-bin/webscr
The form fields looks like this:
 
amount_1: 11.9
quantity_1: 1
shipping_1: 1.9
cmd: _cart
 
I would like to use a global shipping field instead of shipping_1, but there is none, as far as I know. In the resulting IPN, both mc_gross and mc_gross_1 include the fee listed in mc_shipping, while mc_shipping1 is not set:
 
{
"mc_gross": "13.80",
"mc_shipping": "1.90",
"notify_version": "3.8",
"num_cart_items": "1",
"payment_type": "instant",
"quantity1": "1",
"txn_type": "cart",
"mc_gross_1": "13.80",
...
}
 
Now I do the same via a Paypal Plus checkout, using the JavaScript Rest API. Here, the shipping field is global, and yields a different IPN. Now, only mc_gross includes mc_shipping, mc_gross_1 is without shipping:
 
{
   "mc_gross": "13.80",
   "mc_shipping": "1.90",
   "notify_version": "3.8",
   "num_cart_items": "1",
   "payment_type": "instant",
   "quantity1": "1",
   "txn_type": "cart",
   "mc_gross_1": "11.90",
...
}
 
It seems reasonable that using shipping vs shipping_1 causes different IPNs, but then I would expect that shipping_1 causes an mc_shipping_1 field instead of mc_shipping in the first IPN. The actual behavior feels very buggy, since the math required for parsing the IPNs is different. What's the best way to deal with this?
 
If I can help with txn_ids or other details, please let me know.
 
All the Best, Boris

Login to Me Too

bolau
Member
Member

I've got the same problem, due to inconsistencies between different checkout methods.
 
Here's an IPN I get after a checkout with cart upload via a form POST to 
https://www.paypal.com/cgi-bin/webscr
The form fields looks like this:
 
amount_1: 11.9
quantity_1: 1
shipping_1: 1.9
cmd: _cart
 
I would like to use a global shipping field instead of shipping_1, but there is none, as far as I know. In the resulting IPN, both mc_gross and mc_gross_1 include the fee listed in mc_shipping, while mc_shipping1 is not set:
 
{
"mc_gross": "13.80",
"mc_shipping": "1.90",
"notify_version": "3.8",
"num_cart_items": "1",
"payment_type": "instant",
"quantity1": "1",
"txn_type": "cart",
"mc_gross_1": "13.80",
...
}
 
Now I do the same via a Paypal Plus checkout, using the JavaScript Rest API. Here, the shipping field is global, and yields a different IPN. Now, only mc_gross includes mc_shipping, mc_gross_1 is without shipping:
 
{
   "mc_gross": "13.80",
   "mc_shipping": "1.90",
   "notify_version": "3.8",
   "num_cart_items": "1",
   "payment_type": "instant",
   "quantity1": "1",
   "txn_type": "cart",
   "mc_gross_1": "11.90",
...
}
 
It seems reasonable that using shipping vs shipping_1 causes different IPNs, but then I would expect that shipping_1 causes an mc_shipping_1 field instead of mc_shipping in the first IPN. The actual behavior feels very buggy, since the math required for parsing the IPNs is different. What's the best way to deal with this?
 
If I can help with txn_ids or other details, please let me know.
 
All the Best, Boris

Login to Me Too

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.