Thanks for such a nice plugin!
I was wondering how I set things up to have the paypal ipn read by the plugin so that it can mark rsvp events as PAID when a successful transaction occurs.
We are able to get the payment sent and completed from the event, but need to know where/how to connect the returned paypal ipn to the person’s record.
Any help is appreciated!
For paypal ipn, paypal connects to your server on a specific url to transfer the ipn info. So it should just be working if your server can be reached from the internet.
Of course there can always be a bug …
You can always look at the function eme_paypal_ipn() in the file eme_rsvp.php. I think I already see an issue there: I should put the value of “$ipn->currencies” to false, otherwise only USD and EUR are accepted …
hmm, we use formidable pro and can get that plugin’s database talking to paypal, I checked that log file for our new entries for eme, and they are not there, but I am assuming that is because eme uses a different logfile.
But how does eme know where to connect to? I did upload the ipn.sql to create the table in the db, and resent the transaction’s ipn, but did not see it show up in the database… I feel like I should have needed to give it more info??
Was there more to setting this up than just checking the rsvp box?
The currencies seem to be ok as we can only accept US$, not sure if that makes difference..
Please let me know if there is something else I may need to do, as we would really like this to work.
A few more thoughts..
I had looked at that function earlier and it appeared that I needed to enter all of our database specifics there, but that confused me as every time there is an eme update, that file would be overwritten. Thus, I did not think that was what was required, but it almost seems that I would HAVE to enter that info there and then upload eme_rsvp.php each time the plugin had an update. Is this correct? Or is there a front-end place to put this or a filter/action I can place in functions to accomplish this?
Is there any documentation that I am missing?
Just not sure how to go forward on this one.
Again, thank you!!
As said: it should just be working, you should not need to change the code.
The ipn.sql is only if you want database logging, but that’s not what I do in EME: the logging is deactivated by default but for debugging purposes you can activate logging (easiest: file based logging).
The link given to paypal upon payment received is this one:
$ipn_link = $events_page_link.$joiner.”eme_eventAction=ipn”;
So you should look in your webserver logfiles for requests ending with “eme_eventAction=ipn”. If these don’t arrive, IPN will of course not function. If they do arrive, they are (or should be) handled by the mentioned function eme_paypal_ipn(), where you can activate logging for debugging.
With that nice detailed info I went searching the server logs and could find nothing. So I checked in with paypal and found that all of the ipns were sent and resent successfully from paypal and had a Response Code of 200. From the IPN Users Guide: “A value of 200 indicates that your server successfully received the IPN message.”
So, I then went to my server logs and started searching for that url, and just the piece that you indicated above “eme_eventAction=ipn” – I could not find anything that matched.
To look further, since the paypal notification url was defined in the paypal logs, I tested it by typing it into my address bar – it went to the page on my site that had the event listings. ( Does this sound about right?)
So I guess I am not sure what to do at this point – is there anything else I can look for or check?
Thanks for heading me down the right path.
Yes, the url should point to the events_listing. Do you see the eme_eventAction=ipn in your logs if you do it manually?
If you activate file-based logging in the ipn function, does it show anything at all?
Yes, I do and did see it if I manually entered the url.
I activated the logs, resent one txn and saw the ipn.log file create and entry that had this message at the top: “WARNING: payment was made to different e-mail account” and following that was a record of IP Values Received.
Checking the business email etc, all look ok(matched our actual paypal email) and the payment was made and cleared fine from our paypal accnt.
Does this info help track anything down?
In the IPN details of the payment, you can see the whole IPN message (in fact just a bunch of POST variables). One of those variables is called “receiver_email” and that one should correspond with the setting in your EME admin settings page.
I’m in the process of testing on a public site myself, but having a bit of trouble getting it to log (I need to find the path)
Yes thank you, I saw that, but just to make sure I check the proper spot, where exactly should I look for this comparison, and where in the db could I confirm this?
Like I said: the paypal website for the IPN details
and the EME settings for the paypal email
lightbulb!!! In your setting you ask for the business ID or the email – I have entered the business ID
Would this be part of the problem?
Hmm … I just saw this: http://www.johnboy.com/blog/http-11-paypal-ipn-example-php-code
Paypal changed their setup … I need to change the paypal script for this to work.
And yes: try with the email.
And try this change, then you’re set for the future. Using this code, I got a successful IPN verify and the status was set to “yes”
Yippee! Yippee Yippee!
Finally got this to work, so thank you! But there were 2 things of note.
1. I HAD to used the email and not the business ID
2. That email was case sensitive, so one capital off, and it failed.
So THANK YOU!! for getting this working and for the flexible plugin.
- The topic ‘How to setup paypal ipn to show PAID status’ is closed to new replies.