PHP Library for Convio Open API
Hi Everyone,
My name is Nick Bartkowiak and I am a support engineer at Convio specializing in our Open API. I'm hear to introduce myself and as my first order of business, provide you with this simple PHP interface for our API, which I have written. This should provide an easy way for your PHP applications to configure the API, make requests, and handle responses. It is largely untested and certainly not officially supported by Convio, but I will do my best to answer an questions you have about it and help with use cases.
You'll find two files in contained in the zip archive:
ConvioOpenApi.php
example.php
It's all very simple really, ConvioOpenApi.php is the library object itself, which you will need to include to make calls. It is reasonably well documented with comments, so make sure to read all of them. example.php simply gives a direct example of how to properly configure the API and make a simple authenticated call to get a constitutent's info.
Please play around with it and let me know what you think!
Nick
Comments
-
Had a little trouble with the attachment, so I have uploaded it as a document here:
0 -
Nick Bartkowiak:
Had a little trouble with the attachment, so I have uploaded it as a document here:
Nick,
I'm trying to work on a donation form on a PHP based page.
I'm struggling to get things working.
The donation requires variaables like billing.address.state which have periods/dots and PHP and Zend Framework strip out periods and conver them to underscores in the POST data. Not sure how to get around this issue. Anyone on your side know of a solution in PHP for Donations? Thanks,Josh
0 -
Josh Bowes:
Nick,
I'm trying to work on a donation form on a PHP based page.
I'm struggling to get things working.
The donation requires variaables like billing.address.state which have periods/dots and PHP and Zend Framework strip out periods and conver them to underscores in the POST data. Not sure how to get around this issue. Anyone on your side know of a solution in PHP for Donations? Thanks,Josh
Hi Josh,
That's an interesting issue. I've never used the Zend framework (although I do use their PHP coding standard) so I wonder if they reserver dot (.) delimiters for some specific purpose. There shouldn't be anything in raw PHP or this library that would turn dots (.) to underscores (_) in the POST data. Do you have cURL installed? cURL definitely doesn't do any conversion like that and that's the PHP extension that this library uses to make its POST calls. If cURL is not installed, it defaults to fopen, which should also not be doing any conversions like that.
My bet is that its something specific in the Zend framework. Have you consulted their documentaion?
Nick
0 -
Nick Bartkowiak:
Hi Josh,
That's an interesting issue. I've never used the Zend framework (although I do use their PHP coding standard) so I wonder if they reserver dot (.) delimiters for some specific purpose. There shouldn't be anything in raw PHP or this library that would turn dots (.) to underscores (_) in the POST data. Do you have cURL installed? cURL definitely doesn't do any conversion like that and that's the PHP extension that this library uses to make its POST calls. If cURL is not installed, it defaults to fopen, which should also not be doing any conversions like that.
My bet is that its something specific in the Zend framework. Have you consulted their documentaion?
Nick
Nick,
Thanks for the reply. Unfortunately it's not specific to Zend Framework but instead PHP.
It's described here:
http://bugs.php.net/bug.php?id=580
"PHP automatically converts periods into underscores in GET, POST, and Cookie data. A section explaining this has been added to the PHP3 manual"
Perhaps it will work with cURL? I'm not too familiar with cURL but what I'm trying to do is create a custom donation form using this API:
http://open.convio.com/api/apidoc/reference/methods/donate_method.html
though I don't see a mention of cURL in the API documentation, perhaps I'm looking in the wrong spot.
If you have any suggestions, they would be greatly appreciated.
Thank you!Josh
0 -
Josh Bowes:
Nick,
Thanks for the reply. Unfortunately it's not specific to Zend Framework but instead PHP.
It's described here:
http://bugs.php.net/bug.php?id=580
"PHP automatically converts periods into underscores in GET, POST, and Cookie data. A section explaining this has been added to the PHP3 manual"
Perhaps it will work with cURL? I'm not too familiar with cURL but what I'm trying to do is create a custom donation form using this API:
http://open.convio.com/api/apidoc/reference/methods/donate_method.html
though I don't see a mention of cURL in the API documentation, perhaps I'm looking in the wrong spot.
If you have any suggestions, they would be greatly appreciated.
Thank you!Josh
Hmm, well that bug entry is nearly 11 1/2 years old and it talks about the PHP3 manual and we are on precipice of PHP6, but you are correct about it not being a Zend specific issue. That's an interesting choice for PHP and one I was unaware of. I'll have to play with it and see what exactly the options are.
cURL is just a library for transferring files via the URL syntax. It's generally a command line tool, but PHP has a nice layer for it (php-curl). It's my preferred way of making HTTP calls via PHP. You won't find it mentioned in the Convio documentation, because the library which you or I use to execute the HTTP call to Convio from PHP is irrelevant.
I would definitely try to get cURL working and see if that makes any difference to the way PHP formats the request. I'll see if I can't dig up any workaround for you in any case.
Also, just as an architectural note, the donation API was designed to be a client called data point, not a server called data point. Most of the integrations with it have been done by flat HTML forms actually POSTing directly to it. I'm interested in your reasons for using this PHP library to POST to the donation form.
Nick
0 -
Nick Bartkowiak:
Hmm, well that bug entry is nearly 11 1/2 years old and it talks about the PHP3 manual and we are on precipice of PHP6, but you are correct about it not being a Zend specific issue. That's an interesting choice for PHP and one I was unaware of. I'll have to play with it and see what exactly the options are.
cURL is just a library for transferring files via the URL syntax. It's generally a command line tool, but PHP has a nice layer for it (php-curl). It's my preferred way of making HTTP calls via PHP. You won't find it mentioned in the Convio documentation, because the library which you or I use to execute the HTTP call to Convio from PHP is irrelevant.
I would definitely try to get cURL working and see if that makes any difference to the way PHP formats the request. I'll see if I can't dig up any workaround for you in any case.
Also, just as an architectural note, the donation API was designed to be a client called data point, not a server called data point. Most of the integrations with it have been done by flat HTML forms actually POSTing directly to it. I'm interested in your reasons for using this PHP library to POST to the donation form.
Nick
Nick,
I appreciate the fast replies - thanks again for that.
I didn't notice how dated that php bug post was. However, it still seems to be the case that PHP removes dots/periods, unfortunately.
I think what I will try to do is modify my form's action to post to a processing function in my DonationController instead of posting directly to the secure3.convio.../Donation API URL. In this process function I'll use CURL to send the POST to the secure3.convio URL.
If you have any other ideas, let me know. I'll update when I make further progress.
Thanks again,
Josh
0 -
Nick Bartkowiak:
Had a little trouble with the attachment, so I have uploaded it as a document here:
thanks for posting this, but when testing this on my server i'm getting a 302 error.
any idea what could be causing this?
0 -
I think I am hitting this same error with dots in parameter names. Trying to use your API for a custom donation form, I get the error "Please enter a billing address before proceeding".
I think this is because of "billing.address.street1" and the other variables like it.
I'm not doing a straght html submit, because I want to avoid the confirmation page. (I think donating should be a one-step process).
Any chance of a fix, or some expample working code to do donations?
0
Categories
- All Categories
- Shannon parent
- shannon 2
- shannon 1
- 21 Advocacy DC Users Group
- 14 BBCRM PAG Discussions
- 89 High Education Program Advisory Group (HE PAG)
- 28 Luminate CRM DC Users Group
- 8 DC Luminate CRM Users Group
- Luminate PAG
- 5.9K Blackbaud Altru®
- 58 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 409 bbcon®
- 2.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- donorCentrics®
- 1.1K Blackbaud eTapestry®
- 2.8K Blackbaud Financial Edge NXT®
- 1.1K Blackbaud Grantmaking™
- 527 Education Management Solutions for Higher Education
- 1 JustGiving® from Blackbaud®
- 4.6K Education Management Solutions for K-12 Schools
- Blackbaud Luminate Online & Blackbaud TeamRaiser
- 16.4K Blackbaud Raiser's Edge NXT®
- 4.1K SKY Developer
- 547 ResearchPoint™
- 151 Blackbaud Tuition Management™
- 61 everydayhero
- 3 Campaign Ideas
- 58 General Discussion
- 115 Blackbaud ID
- 87 K-12 Blackbaud ID
- 6 Admin Console
- 949 Organizational Best Practices
- 353 The Tap (Just for Fun)
- 235 Blackbaud Community Feedback Forum
- 55 Admissions Event Management EAP
- 18 MobilePay Terminal + BBID Canada EAP
- 36 EAP for New Email Campaigns Experience in Blackbaud Luminate Online®
- 109 EAP for 360 Student Profile in Blackbaud Student Information System
- 41 EAP for Assessment Builder in Blackbaud Learning Management System™
- 9 Technical Preview for SKY API for Blackbaud CRM™ and Blackbaud Altru®
- 55 Community Advisory Group
- 46 Blackbaud Community Ideas
- 26 Blackbaud Community Challenges
- 7 Security Testing Forum
- 3 Blackbaud Staff Discussions
- 1 Blackbaud Partners Discussions
- 1 Blackbaud Giving Search™
- 35 EAP Student Assignment Details and Assignment Center
- 39 EAP Core - Roles and Tasks
- 59 Blackbaud Community All-Stars Discussions
- 20 Blackbaud Raiser's Edge NXT® Online Giving EAP
- Diocesan Blackbaud Raiser’s Edge NXT® User’s Group
- 2 Blackbaud Consultant’s Community
- 43 End of Term Grade Entry EAP
- 92 EAP for Query in Blackbaud Raiser's Edge NXT®
- 38 Standard Reports for Blackbaud Raiser's Edge NXT® EAP
- 12 Payments Assistant for Blackbaud Financial Edge NXT® EAP
- 6 Ask an All Star (Austen Brown)
- 8 Ask an All-Star Alex Wong (Blackbaud Raiser's Edge NXT®)
- 1 Ask an All-Star Alex Wong (Blackbaud Financial Edge NXT®)
- 6 Ask an All-Star (Christine Robertson)
- 21 Ask an Expert (Anthony Gallo)
- Blackbaud Francophone Group
- 22 Ask an Expert (David Springer)
- 4 Raiser's Edge NXT PowerUp Challenge #1 (Query)
- 6 Ask an All-Star Sunshine Reinken Watson and Carlene Johnson
- 4 Raiser's Edge NXT PowerUp Challenge: Events
- 14 Ask an All-Star (Elizabeth Johnson)
- 7 Ask an Expert (Stephen Churchill)
- 2025 ARCHIVED FORUM POSTS
- 322 ARCHIVED | Financial Edge® Tips and Tricks
- 164 ARCHIVED | Raiser's Edge® Blog
- 300 ARCHIVED | Raiser's Edge® Blog
- 441 ARCHIVED | Blackbaud Altru® Tips and Tricks
- 66 ARCHIVED | Blackbaud NetCommunity™ Blog
- 211 ARCHIVED | Blackbaud Target Analytics® Tips and Tricks
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- Luminate CRM DC Users Group
- 225 ARCHIVED | Blackbaud eTapestry® Tips and Tricks
- 1 Blackbaud eTapestry® Know How Blog
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
- 1 Blackbaud K-12 Education Solutions™ Blog
- 280 ARCHIVED | Mixed Community Announcements
- 3 ARCHIVED | Blackbaud Corporations™ & Blackbaud Foundations™ Hosting Status
- 1 npEngage
- 24 ARCHIVED | K-12 Announcements
- 15 ARCHIVED | FIMS Host*Net Hosting Status
- 23 ARCHIVED | Blackbaud Outcomes & Online Applications (IGAM) Hosting Status
- 22 ARCHIVED | Blackbaud DonorCentral Hosting Status
- 14 ARCHIVED | Blackbaud Grantmaking™ UK Hosting Status
- 117 ARCHIVED | Blackbaud CRM™ and Blackbaud Internet Solutions™ Announcements
- 50 Blackbaud NetCommunity™ Blog
- 169 ARCHIVED | Blackbaud Grantmaking™ Tips and Tricks
- Advocacy DC Users Group
- 718 Community News
- Blackbaud Altru® Hosting Status
- 104 ARCHIVED | Member Spotlight
- 145 ARCHIVED | Hosting Blog
- 149 JustGiving® from Blackbaud® Blog
- 97 ARCHIVED | bbcon® Blogs
- 19 ARCHIVED | Blackbaud Luminate CRM™ Announcements
- 161 Luminate Advocacy News
- 187 Organizational Best Practices Blog
- 67 everydayhero Blog
- 52 Blackbaud SKY® Reporting Announcements
- 17 ARCHIVED | Blackbaud SKY® Reporting for K-12 Announcements
- 3 Luminate Online Product Advisory Group (LO PAG)
- 81 ARCHIVED | JustGiving® from Blackbaud® Tips and Tricks
- 1 ARCHIVED | K-12 Conference Blog
- Blackbaud Church Management™ Announcements
- ARCHIVED | Blackbaud Award Management™ and Blackbaud Stewardship Management™ Announcements
- 1 Blackbaud Peer-to-Peer Fundraising™, Powered by JustGiving® Blogs
- 39 Tips, Tricks, and Timesavers!
- 56 Blackbaud Church Management™ Resources
- 154 Blackbaud Church Management™ Announcements
- 1 ARCHIVED | Blackbaud Church Management™ Tips and Tricks
- 11 ARCHIVED | Blackbaud Higher Education Solutions™ Announcements
- 7 ARCHIVED | Blackbaud Guided Fundraising™ Blog
- 2 Blackbaud Fundraiser Performance Management™ Blog
- 9 Foundations Events and Content
- 14 ARCHIVED | Blog Posts
- 2 ARCHIVED | Blackbaud FIMS™ Announcement and Tips
- 59 Blackbaud Partner Announcements
- 10 ARCHIVED | Blackbaud Impact Edge™ EAP Blogs
- 1 Community Help Blogs
- Diocesan Blackbaud Raiser’s Edge NXT® Users' Group
- Blackbaud Consultant’s Community
- Blackbaud Francophone Group
- 1 BLOG ARCHIVE CATEGORY
- Blackbaud Community™ Discussions
- 8.3K Blackbaud Luminate Online® & Blackbaud TeamRaiser® Discussions
- 5.7K Jobs Board