I have receive an update from PayPal as follows:
So, notification URL for PayPal Express payments is being URL encoded by the Zen Cart store, and PayPal do not (and should not) URL de-code, so IPN messages fail. Shouldn't it be the same as for Website Payment Pro, where the NOTIFY URL is not URL encoded, and subsequently succeeds??My name is Juan, and I am with PayPal Merchant Technical Services. Your issue has been escalated to my team. Our logs show that you are submitting the Notify_url paramater as URL encoded value
EPEP5BF2E64E: request from your system
SHIPTONAME=**** ****&SHIPTOSTREET=********* 25&SHIPTOCITY=Melbu&SHIPTOSTATE=Norway&SHIPTOZIP=8445&SHIPTOCOUNTRYCODE=&BUTTONS OURCE=ZenCart-EC_uk&RETURNFMFDETAILS=0&CUSTOM=EC-4352-1276881127&INVNUM=4352-1276881127-[*******]&CURRENCY=GBP&AMT=29.50&TOKEN=EC-90F44899BF450051M&PAYERID=YFHSHJ4LYGVRY&ACTION=D&TENDER=P&TRXTYPE=S&NOTIFYURL=ht tps%3A%2F%2Fwww.********.com%2Fipn_main_handler.php&REQUEST_ID=1276881127&USER=L W2GLPE3FD&PWD=8XXXXXXXXXXXXXXZ&PARTNER=PayPalUK&VENDOR=**********
as you can see we are receiving the value encoded.
per our documentation https://cms.paypal.com/cms_content/U...r/IPNGuide.pdf on page 11
"PayPal generates an IPN message when you invoke an API operation, such as
DoExpressCheckoutPayment or DoDirectPayment ..."
This means that IPN will send back the contents of what our system received from DoExpressCheckoutPayment or DoDirectPayment ..." and not the SetExpressCheckout call.
IPNs return the your raw request string back and does not apply any decoding to it.



