How to Set Up PayPal with RSVPMaker

For more current information, see https://rsvpmaker.com/blog/category/paypal/

RSVPMaker includes integration routines from the PayPal software developer’s kit to allow you to solicit online payments for your events and record which users have paid. The setup is a little bit involved, but there’s a reason for it.

I could have made it easier to set up RSVPMaker to work with PayPal, but for security reasons I hesitated to do so. If I had you enter your security credentials into a WordPress and save them as options associated with the application, they would be stored in the WordPress database and potentially be vulnerable to exposure through any hack that might allow someone to gain database access. While WordPress is secure enough for many purposes, it does get hacked from time to time, and I wouldn’t want anyone to gain access to your PayPal account (and, indirectly, to your bank and credit card accounts) for the sake of making things more convenient.

So I instead require you to edit the paypal_constants.php file in the paypal subdirectory of the RSVPMaker distribution. You will have to enter your API Username, API Password, and API Signature in that file. To obtain these you must have a Business or Premier PayPal Website Payments Standard or Website Payments Pro account (in most cases, I recommend Website Payments standard, which provides the needed functionality but does not require a monthly fee). Log into PayPal and visit the Profile Menu, follow the link to API Access, and then View API Signature. This will display the codes you need to copy into the configuration file.

I recommend storing this file outside of the web root directory — or at least somewhere other than the default location — so that it’s not possible for an attacker (who may have read these instructions) to browse to

http://yoursite.com/wp-content/plugins/rsvpmaker/paypal/paypal_constants.php

and make some kind of mischief on it. If your directory structure is /home/account/public_html then putting the file in /home/account and giving it a different name would be better.

Once you have this set up, record the path to the configuration file on the Settings screen for RSVPMaker, and you should be good to go.

Create a test event with a fee associated with it, go through the RSVP process, and you should be prompted to pay online. When you click the Pay Now button, you should be redirected to a page on the PayPal website that displays the name of your organization and asks you to either log in or provide credit card information to make a purchase.

Here is a visual walkthrough of the setup steps:

Record location of configuration file. Setting screen should show OK to confirm rsvpmaker can find the file.
In the event editor, set the price or prices you want to charge.
Attendee makes payment selections as part of RSVP
Prompt to pay online
Redirect to PayPal payment page

59 thoughts on “How to Set Up PayPal with RSVPMaker”

  1. Hi David…!

    Correct me if I’m wrong…based on my last checked on PayPal website , they require us to have Business Account , not just the WebSite Payment Standard or Payment Pro to use the APIs credentials.

    Quoting from PayPal sites :

    “Creating an API Signature

    An API signature consists of an API username along with an associated API password and signature, all of which are assigned by PayPal. You need to include this information whenever you execute a PayPal API operation.

    You must have a PayPal Business account to create a signature.”

    Anyway, this plugin is so good that I must give it double thumbs-up!

    Regards…

  2. Hi David…sorry to write again..

    To get the APIs credentials, we need to upgrade to either Premier or Business Account.FYI, I manage to get it and set it on my WP instance.

    See you again..

    1. My point was that you can go with the Website Payments Standard edition, rather than Website Payments Pro. The marketing verbiage is fairly confusing on this point, but I’m running multiple sites with a business account and Website Payments Standard. So there’s no monthly fee, just a per-transaction charge for payments.

  3. I installed RSVP Maker. Edited the php file, but am not getting a PayPal screen, only a confirmation for RSVPing to the event. I am going to assume I didn’t edit the PHP file correctly. Is there other steps I must take to edit the PHP file besides overwriting the sample information? Do you have a sample of how the file is supposed to exactly look minus the asterisks and notes?

    Thanks!

    1. Take a look at the screen shots I added to this post to make sure you’ve followed the steps for the RSVPMaker Settings screen and the specific event.

      If you’re getting an error message or something, let me know what it is so I can try to track down the problem.

      1. Those visuals are great! I click the next button and this is the error I’m encountering…

        Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in /home/content/52/6447752/html/wp-content/plugins/rsvpmaker/rsvpmaker-plugabble.php on line 308

        Warning: require_once(http://theurl.org/modin/paypalfile.php) [function.require-once]: failed to open stream: no suitable wrapper could be found in /home/content/52/6447752/html/wp-content/plugins/rsvpmaker/rsvpmaker-plugabble.php on line 308

        (changed the urls in the error to protect my site, of course.)

        1. It looks to me like you have a url “path” to the configuration file entered into the settings instead of a file path. You need to determine the absolute path to the file on the web server (no http). Your server is configured to disallow importing software code from urls, which is probably a good idea.

  4. I got everything set up, and it looked like it was going to work, but I was given the following error when I was taken back to my site:

    Fatal error: Call to a member function prepare() on a non-object in /home/content/xxxxxx/html/blog/wp-content/plugins/rsvpmaker/rsvpmaker-plugabble.php on line 530

  5. Also, I was wondering why these are different than your instructions. Do we need to change them to match the notes?

    /* Define the PayPal URL. This is the URL that the buyer is
    first sent to to authorize payment with their paypal account
    change the URL depending if you are testing on the sandbox
    or going to the live PayPal site
    For the sandbox, the URL is
    https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=
    For the live site, the URL is
    https://www.paypal.com/webscr&cmd=_express-checkout&token=
    */
    define(‘PAYPAL_URL’, ‘https://www.paypal.com/webscr&cmd=_express-checkout&useraction=commit&token=’);

    /**
    # Version: this is the API version in the request.
    # It is a mandatory parameter for each API request.
    # The only supported value at this time is 2.3
    */

    define(‘VERSION’, ‘3.0’);

  6. Jude, check the WordPress repository for version 1.5, which fixes the bug you found in that PayPal code. As they say in newspapers, “We regret the error.”

    In the sample configuration file, you’re seeing some comments preserved from the sample in the PayPal SDK for PHP. I’m using a slight variation on the code, which I’ve found works better.

  7. Hey David,

    I installed the RSVP maker per your instructions (customized the API, etc.). However, when I attempt to pay using the PayPal function, I get this:

    Warning: require_once(/public_html/wordpress/wp-content/plugins/rsvpmaker/paypal/paypal_constants.php) [function.require-once]: failed to open stream: No such file or directory in /home/foothill/public_html/wordpress/wp-content/plugins/rsvpmaker/rsvpmaker-plugabble.php on line 368

    Fatal error: require_once() [function.require]: Failed opening required ‘/public_html/wordpress/wp-content/plugins/rsvpmaker/paypal/paypal_constants.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/foothill/public_html/wordpress/wp-content/plugins/rsvpmaker/rsvpmaker-plugabble.php on line 368

    1. I took a few minutes to verify it works on this site. See the fake event for the cub scout camping trip to test.

      Make sure you actually have the correct path to the config file recorded on the settings screen. A little green OK should appear next to the file path you’ve entered, after you click submit, if the system can find the path to that file.

      For security reasons, I recommend you store the file with your API credentials outside of web root (looks like that’s public_html on your system).

  8. This does not work!

    I have followed the instructions and when I come to the “PayPal Configuration File:” linking the file to my paypal_config.php it always comes to “error: file not found” I even used the demo “http://yoursite.com/wp-content/plugins/rsvpmaker/paypal/paypal_constants.php” and still does not work..

    Any help on what may be wrong?

    1. The path you provide must be a file path, not a web path so if you have http in the field you plugged into the settings screen, that’s not going to work. Should be something more like /home/myaccount/paypal_config.php. I suggest you locate the file outside of web root because it contains sensitive API login credentials. On many unix systems, web root would be something like /home/myaccount/public_html/

      Clear?

      1. Hi David,

        I have already tried doing that, I even went with your basic version which you said was not safe, bt i wanted to see if that worked:
        /public_html/RomansSite/wp-content/plugins/rsvpmaker/paypal/paypal_config.php

        And I still receive the error.
        I do not know what i am doing wrong?

        1. If you get the latest version, the Settings screen shows the correct path to your web root directory. My suspicion is that /public_html is not right below server root – probably something more like /home/account/public_html – but that’s only a guess. But maybe if you see the path to web root, you’ll be able to work out the correct path to your file.

  9. Any idea why I’m getting the following, when I press the Next to pay button?

    PAYPAL ERROR
    Error Number: 5
    Error Message: Couldn’t resolve proxy ‘PROXY_HOST’

      1. If you update to version 2.3.8, I added something to the Settings screen that shows the correct file path to your web root directory. From there, you should be able to figure out the correct path to your config file.

  10. I’m getting the following error:
    —————————————-
    PayPal ErrorAck: Failure Correlation ID: c90c9988af3e5 Version: 3.0 Error Number: 10444 Short Message: Transaction refused because of an invalid argument. See additional error messages for details. Long Message: The transaction currency specified must be the same as previously specified.
    —————————————–
    I specified CAD (Canadian dollars) in the settings, but the transactions won’t process. I have tried doing transactions with USD, and it works. 

    Any ideas why this doesn’t work? Can I change the code manually within a file to make it CAD permanently?

    1. RSVPMaker doesn’t set the font color, unless I’m missing something in my own code. If the event text is showing up a different color than your other posts, you’ll have to dig into the CSS for your theme to figure out why.

  11. Hi David! I am having a similar error with Seth but it is slightly different. The error is as follows:

    Ack: Failure Correlation ID: 9ed08e0c92546 Version: 3.0 Error Number: 10002 Short Message: Security error Long Message: Security header is not valid

     My Paypal configuration file is configured properly (it has the “ok” in green) and I saved the paypal_constants.php file outside of web root so it is not accessible publicly.

    Please advise. Thanks!

  12. I have another concern.  The amount to be paid by the guest who wish to reserve seats is not passed on to the Paypal payment page. Only after the payment has been made will the guest be redirected to the website and will be able to see the amount paid.

    Is there a way to correct this? Thanks!

  13. i am new to paypal  and  getting following  . what is the meaning that?

    07:16:55,187 INFO  [APICallerBase:159] Proxy configuration file not found. Looks like proxy not being used.
    07:16:55,281 INFO  [NVPAPICaller:349] FIRSTNAME=****&VERSION=51.0&CREDITCARDTYPE=****&AMT=****&ACCT=****&EXPDATE=****&
    METHOD=DoDirectPayment&CVV2=****&PWD=******&SOURCE=PAYPAL_JAVA_SDK_65.1&SIGNATURE=**********&USER=mohan._1331961983_biz_api1.gmail.com sent
    07:16:59,218 INFO  [NVPAPICaller:363] TIMESTAMP=2012%2d03%2d19T07%3a16%3a58Z&CORRELATIONID=7331821889282&ACK=Failure&L_ERRORCODE0=10001&L_SHORTMESSAGE0=Internal%20Error&L_LONGMESSAGE0=Timeout%20processing%20request Ack : 200  Elapsed Time : 3,953 ms
    07:16:59,218 INFO  [NVPAPICaller:349] FIRSTNAME=kavya&VERSION=51.0&CREDITCARDTYPE=Credit+Card&AMT=6000&ACCT=****************&EXPDATE=07%2F2012&METHOD=DoDirectPayment&CVV2=****&PWD=******&SOURCE=PAYPAL_JAVA_SDK_65.1&SIGNATURE=**********&USER=mohan._1331961983_biz_api1.gmail.com sent
    07:17:02,265 INFO  [NVPAPICaller:363] TIMESTAMP=2012%2d03%2d19T07%3a17%3a01Z&CORRELATIONID=713da2659b21b&ACK=Failure&L_ERRORCODE0=10001&L_SHORTMESSAGE0=Internal%20Error&L_LONGMESSAGE0=Timeout%20processing%20request Ack : 200  Elapsed Time : 3,047 ms

  14. When I click the next button, both using the client’s specific paypal API info, or the sandbox info provided on your config file, it rolls me over to the sites homepage.

    What am I doing wrong?

      1. Does one have to take out the upper sandbox info on the php file?

        *Something opens our wings. Something makes boredom and hurt disappear. Someone fills the cup in front of us: We taste only sacredness.*
        *Kim Pitman
        Firefly Inx.net
        828.279.2896*
        **

  15. Getting this error:
    PayPal Error
    Ack: Failure
    Correlation ID: 1a6d8cc08fe67
    Version: 3.0
    Error Number: 10002
    Short Message: Security error
    Long Message: Security header is not valid
    Saw another post of someone with the same error, they suggested it was the API_ENDPOINT url, but I verified mine is correct. any suggestions on how to resolve this issue?

  16. Hope you can respond to this. I’ve gone through your instructions and set up the event and paypal as you suggest and after clicking on the submit button instead of getting something resembling paypal-prompt.jpg above, I get an error saying what I’m looking for can not be found. I’ve read through your responses below and have looked carefully at the location of the constants file but according to the software (I’m getting an OK) that’s not the issue. ideas? Please?

    1. Do you have pretty permalinks enabled, as opposed to urls being displayed as ?p=123

      I’ve had reports of problems because the query strings aren’t formed properly in that configuration (I’m assuming urls in the /2012/12/my-post/ style format).

      I need to fix that, but meanwhile let me know if that might be the issue.

      1. Changed the permalinks setting to Day and Name from custom and now it goes through to the Paypal-prompt screen. However, when I click the Next button I get an error stating:
        ———————————
        PayPal Error

        Ack: Failure
        Correlation ID: 5e96142cd5bc7
        Version: 3.0
        Error Number: 10471
        Short Message: Transaction refused because of an invalid argument. See additional error messages for details.
        Long Message: ReturnURL is invalid.
        ——————————–

        ideas?

  17. For the PayPal Configuration screenshot in the instructions, how is it possible that when I delete the paypal_configuration.php file over ftp, and place the /var/chroot/home/content/xx/xxxxxxx/html in the PayPal Configuration file field, it gives the green OK status? File is non-existent on my WordPress. Probably doing something wrong

    1. The only reason I removed it is to test it because I keep getting an error: file not found when I place it in a folder on my domain. EX: domain_namepath_of_rsvp_paypalpaypal_config-file.php I still get the error: file not found. Any ideas anyone? What does your path look like?

  18. Alright, I’ve scoured these threads and cannot for the life of me figure out where I’ve gone wrong. I’ve hosted my paypal config file on a public (but innocuously-named) part of the server (I’m hosted on GoDaddy). I get the OK green status when I use the absolute hosting path GoDaddy tells me + my root directory (/xxx/xxxx.php). But then I keep getting dumped onto the home page instead of taken to PayPal. I have turned permalinks down to default (not fancy). Have no idea what I’m doing wrong. Strangely, I’m also getting a 404 message when I click the “RSVP now” button on the events page of my website (which is in list view), but I don’t have that problem when I click on the NAME of the event itself. Any thoughts on a diagnosis?

  19. I’ve just installed rsvpmaker 2.7.7, successfully created the configuration file and not in the public file, and have gotten the green, “ok” in the rsvpmaker settings. However, I get this message when trying to test to see if it at least goes to Paypal:

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, cgiadmin@yourhostingaccount.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

    —————–

    I’m using Chrome, but tried it in Safari too, same results. My rsvp page is: http://www.friendsagainstals.org/rsvpmaker/

    any help would be GREATLY appreciated.

    Allison Gillett

  20. I had a website set up with the RSVP Maker using PayPal. The client is going to terminate their PayPal account and do not wish to accept payment within the RSVP Maker via PayPal. I’ve removed the PayPal config file, how do I stop the events from wanting to forward people on to paying?

  21. When we try to register the redirect to Paypal goes to a white screen. The configuration file (paypal-constants.php) is setup and we got a green “OK”. Can you offer any assistance?

  22. After clicking submit for the first time after filling out our form, we end up going to a url like this below

    http://pensardevelopment.com/?e=myemail@myemail.com&rsvp=1&e=myemai@myemail.com

    when it should be going to /rsvpmaker/myevent/?e=myemail@myemail.com&rsvp=1&e=myemai@myemail.com

    You can see the error here after clicking submit: http://pensardevelopment.com/rsvpmaker/2015-golf-test/

    any ideas as to why this url isn’t getting written correctly?

    Thanks!

Leave a Reply