Hi enzo.orsi,
I think that this is all working correctly. I downloaded your form backup and found a few bugs which might explain some of the problems.
In the Custom Code you are setting the PayPal ReDirect return URL to chronoform=AAA_TEST_PAYPAL&event=ipn - you want that to be chronoform=AAA_TEST_PAYPAL&event=submit - you never want to return the User to the ipn event - that is only for use in the hand-shake exchanges with PayPal. (I think that you also had the cancel URL set to the ipn event).
If you have PayPal set to return to the ipn event then there will be no form data as PayPal doesn't send any additional transaction info on return (though you can look it up if needed).
I added an extra email in the IPN event after the listener and that gives me results like this when I test from my iPad - though on the screen I see only the short list (see above).
$form->data: Array (
[demo] => 1
[option] => com_chronoforms5
[chronoform] => AAA_TEST_PAYPAL
[event] => ipn
[transaction_subject] => Test PayPal mobile
[payment_date] => 05:35:53 Feb 01, 2016 PST
[txn_type] => web_accept
[last_name] => Janes
[residence_country] => GB
[pending_reason] => unilateral
[item_name] => Test PayPal mobile
[payment_gross] =>
[mc_currency] => EUR
[payment_type] => instant
[protection_eligibility] => Ineligible
[verify_sign] => AlAlnsACWRTf4OV6vRMZG4sCyEdYAYnrRnfP4BPbL7fImje1mijNluYp
[payer_status] => unverified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => pptest@some_domain.com
[txn_id] => 54E35674N80126333
[quantity] => 1
[receiver_email] => paypal@some_domain.it
[first_name] => Bob
[payer_id] => QQCBLC3XJ2U8L
[item_number] =>
[payer_business_name] => RandJ test Ltd
[handling_amount] => 0.00
[payment_status] => Pending
[shipping] => 0.00
[mc_gross] => 0.04
[custom] =>
[charset] => windows-1252
[notify_version] => 3.8
[ipn_track_id] => ac4d88c4e1bb3
)
So all the information is there as expected,
The reason for checking after the Listener is that the Listener events don't seem to be correctly triggered when you are using a PayPal Sandbox account.
Bob
Dear Bob,
I do not understand why I do not have to use IPN URL equal to RETURN URL.
If I setup:
- ipn notify url to ipn event (PayPal Listener)
- return url to a confirmation page (where for example I write in my db that user paied succesfully)
=> how can I check if user succesfully paied or if it is just going to that url without paying?
That's why I am using PayPal Listener and I write in my db only inside PayPal Listener VALID.
What's the problem to use return_url = notify_url?
Thank you!!