Donation API - PayPal error - Error: The donation bean was not found during finishMethod.
Error: The donation bean was not found during finishMethod.
Full JSON response is:
{"donationResponse":{"errors":{"reason":"UNSPECIFIED","code":"101","message":"Error: The donation bean was not found during finishMethod."}}}
Any idea what the "donation bean" is? I thought this error was displaying because I had the form in preview mode, but I switched it to live, and it's still having issues.
Help would be appreciated.
Comments
-
Ian Banks:
I'm implementing a donation form API and am getting this message after clicking the continue button on PayPal.
Error: The donation bean was not found during finishMethod.
Full JSON response is:
{"donationResponse":{"errors":{"reason":"UNSPECIFIED","code":"101","message":"Error: The donation bean was not found during finishMethod."}}}
Any idea what the "donation bean" is? I thought this error was displaying because I had the form in preview mode, but I switched it to live, and it's still having issues.
Help would be appreciated.In looking at the Luminate error codes, 101 means the donation failed. Ok, I get that...but what the heck is a donation bean? Could it be this required pixel to initiate a session?
<img src="https://secure2.convio.net/ccod/site/PixelServer" />
0 -
Ian Banks:
Ian Banks:
I'm implementing a donation form API and am getting this message after clicking the continue button on PayPal.
Error: The donation bean was not found during finishMethod.
Full JSON response is:
{"donationResponse":{"errors":{"reason":"UNSPECIFIED","code":"101","message":"Error: The donation bean was not found during finishMethod."}}}
Any idea what the "donation bean" is? I thought this error was displaying because I had the form in preview mode, but I switched it to live, and it's still having issues.
Help would be appreciated.In looking at the Luminate error codes, 101 means the donation failed. Ok, I get that...but what the heck is a donation bean? Could it be this required pixel to initiate a session?
<img src="https://secure2.convio.net/ccod/site/PixelServer" />
I'm nearly done with my first Paypal API form, and haven't encountered this one yet. Are you changing domains when Paypal returns the user to the donation form? (From secure to non-secure?)
The Paypal process is weird, because you completely leave your donation form for the Paypal site, and then get returned to Luminate to actually complete the transaction. I suspect the bean is either the half finished donation on the Luminate side, or the payment transaction on the Paypal side. Something is not connecting, so Luminate doesn't know if the payment was successful or not. Does the Paypal charge happen?
Can you post a link to your form?
0 -
Ian Banks:
I'm implementing a donation form API and am getting this message after clicking the continue button on PayPal.
Error: The donation bean was not found during finishMethod.
Full JSON response is:
{"donationResponse":{"errors":{"reason":"UNSPECIFIED","code":"101","message":"Error: The donation bean was not found during finishMethod."}}}
Any idea what the "donation bean" is? I thought this error was displaying because I had the form in preview mode, but I switched it to live, and it's still having issues.
Help would be appreciated.
We are having the same donation bean issue when we use the PHP Library for Convio API to pay via PayPal. Here's a link to our form: https://www.memri.org/new_donate/
We haven't been able to find a solution to this problem so far. The error message that we get is: Error: The donation bean was not found during finishMethod.
It happens when we go to PayPal to complete the payment and press "Continue" at the end. The request goes to Convio and we then receive the error message. The donation form is hosted on our own server, and not Blackbaud's servers.
Has anyone received this error before and managed to find a solution for it?0 -
John - I think that your form's POST URL...
<form class="donation_form" method="post" action="https://www.memri.org/new_donate/send_data.php">
...violates the restriction from proxying through an external server. This form should post directly to Luminate: https://secure2.convio.net/organization/site/CRDonationAPI|
Usage Notes
Important: This method is used to process online credit card donations. It supports only Client API calls. To maintain PCI data security standards for payment card transactions, you must call this method directly from the client's browser and never proxy the call through an external server.
Bouncing the form to your PHP page this way means that credit info touches your server, and therefore causes PCI compliance concern.
Not to mention that it also means that all the code that handles that actual donation is hidden on your server where we can't see it.0 -
Brian Mucha:
John - I think that your form's POST URL...
<form class="donation_form" method="post" action="https://www.memri.org/new_donate/send_data.php">
...violates the restriction from proxying through an external server. This form should post directly to Luminate: https://secure2.convio.net/organization/site/CRDonationAPI|
Usage Notes
Important: This method is used to process online credit card donations. It supports only Client API calls. To maintain PCI data security standards for payment card transactions, you must call this method directly from the client's browser and never proxy the call through an external server.
Bouncing the form to your PHP page this way means that credit info touches your server, and therefore causes PCI compliance concern.
Not to mention that it also means that all the code that handles that actual donation is hidden on your server where we can't see it.We found this PHP library on the "Downloads" section of Convio here: http://open.convio.com/downloads/
We simply downloaded the library from there, which seems to have been created by Convio itself (see here: http://open.convio.com/downloads/php-library-for-convio-open.html), and implemented it according to the example provided. Furthermore, the library is working just fine for credit card donations; we are only having problems when people try to donate via PayPal.
Are you saying Luminate is no longer compatible with this library?
0 -
John Schultz:
Brian Mucha:
John - I think that your form's POST URL...
<form class="donation_form" method="post" action="https://www.memri.org/new_donate/send_data.php">
...violates the restriction from proxying through an external server. This form should post directly to Luminate: https://secure2.convio.net/organization/site/CRDonationAPI|
Usage Notes
Important: This method is used to process online credit card donations. It supports only Client API calls. To maintain PCI data security standards for payment card transactions, you must call this method directly from the client's browser and never proxy the call through an external server.
Bouncing the form to your PHP page this way means that credit info touches your server, and therefore causes PCI compliance concern.
Not to mention that it also means that all the code that handles that actual donation is hidden on your server where we can't see it.We found this PHP library on the "Downloads" section of Convio here: http://open.convio.com/downloads/
We simply downloaded the library from there, which seems to have been created by Convio itself (see here: http://open.convio.com/downloads/php-library-for-convio-open.html), and implemented it according to the example provided. Furthermore, the library is working just fine for credit card donations; we are only having problems when people try to donate via PayPal.
Are you saying Luminate is no longer compatible with this library?Brian is correct -- when passing a credit card to the Luminate Online REST API (with the donate method, or with similar methods like the CRRecurringAPI updateRecurringCreditCardInfo or CRTeamraiserAPI processRegistration method), you must make the request client-side for PCI-DSS compliance. This is noted in the API documentation for such methods (and discussed a little bit in the thread from way back when about the PHP library). This is also why you're getting this slightly cryptic error message -- since the call to startDonation was not made on the client-side, when the client-side redirect from PayPal occurs, it does not find a corresponding session cookie in the user's browser and throws an error. You should change any calls to startDonation (or donate) to use client-side requests, e.g. using JavaScript or form posts and redirects.
0 -
Thanks Noah. Maybe that library should have an obvious note on the download page. It sure seems to be encouraging this exact thing.
John, check out Noah's LuminateExtend library (https://github.com/noahcooper/luminateExtend). Sure makes it easier.
Might not be a great example because it has a lot going on, but here's the form I'm working on right now: https://secure3.convio.net/cmf/_temp/form.htm (In progress, so things are still changing!)
If you strip out all the details... the UI stuff and callbacks and so on, pretty much all that's left is setting the form action...
<form id="form_donation" class="luminateApi" method="POST" action="https://secure3.convio.net/cmf/site/CRDonationAPI" data-luminateApi='{"callback": "LurieChildrens.Donation.SubmitDonationCallback"}'>
...and then initializing LuminateExtend and binding it to the form.
$( document ).ready(function() {
'use strict';
luminateExtend.init({
apiKey: 'BF_CMMT_1011',
path:
{
nonsecure: 'http://foundation.luriechildrens.org/site/',
secure: 'https://secure3.convio.net/cmf/site/'
}
});
luminateExtend.api.bind();
}
0 -
Thanks for the response, and sorry for seeing this so late. The notification system here is really bad.
Paypal does not perform a donation, so no charge occurs.
Donation form can be found here: https://www.opendoorsusa.org/donate/donation-portal/where-needed-most/
Note, the form is currently in preview mode, though I've tested in both preview and non-preview modes and still get the donation bean error.
This form is set up using jQuery AJAX to send data directly to the Luminate servers (no proxy/server caching), so we're following the donation API guidelines.
When the user selects PayPal the action/post url changes to send to the server with method=startDonation with all the pertinant data. We get a response back form the server for the PayPal page to send the user to. We then direct the user to PayPal to complete the transaction where the error occurs after the user attempts to finish the payment.
Here's a video showing the process and the error that occurs.https://youtu.be/tK0wnNosf8Y
0 -
Ian Banks:
Thanks for the response, and sorry for seeing this so late. The notification system here is really bad.
Paypal does not perform a donation, so no charge occurs.
Donation form can be found here: https://www.opendoorsusa.org/donate/donation-portal/where-needed-most/
Note, the form is currently in preview mode, though I've tested in both preview and non-preview modes and still get the donation bean error.
This form is set up using jQuery AJAX to send data directly to the Luminate servers (no proxy/server caching), so we're following the donation API guidelines.
When the user selects PayPal the action/post url changes to send to the server with method=startDonation with all the pertinant data. We get a response back form the server for the PayPal page to send the user to. We then direct the user to PayPal to complete the transaction where the error occurs after the user attempts to finish the payment.
Here's a video showing the process and the error that occurs.https://youtu.be/tK0wnNosf8Y
So some good news and bad news...it appears that PayPal doesn't even work on regular Luminate hosted forms, so that is likely the reason I'm experiencing this issue. I suspect that PayPal integration wasn't set up correctly which is the reason for this.
0 -
Hey Ian, well that explains things. I didn't think of that!
At least all this effort allowed you to discover that site wide issue and the PCI compliance thing. Two birds with one bug!0 -
Brian Mucha:
Hey Ian, well that explains things. I didn't think of that!
At least all this effort allowed you to discover that site wide issue and the PCI compliance thing. Two birds with one bug!Ok sadly I was mistaken...things are working properly with PayPal and the Luminate hosted donation forms...so...now I'm just waiting for support to assist since I've no clue what else to do regarding this at this point.
0 -
Darn.
End of the day here, and I’m off Friday. I’ll
try to take a peek at your code but it probably won’t happen right
away. So post if support makes any progress.Regards,
Brian Patrick Mucha
Associate Director, Web Applications
Ann & Robert H. Lurie Children’s
Hospital of Chicago FoundationT 312.227.7286 | M 312.590.9557 | SMS 312.590.9557 | bmucha@luriechildrens.org
225 East Chicago Avenue, Chicago, Illinois
60611-2991DesignTemplate2
This message contains confidential information and is intended only
for the individual named. If you are not the named addressee you
should not disseminate, distribute or copy this e-mail. Please
notify the sender immediately by e-mail if you have received this
e-mail by mistake and delete this e-mail from your system. E-mail
transmission cannot be guaranteed to be secure or error-free as
information could be intercepted, corrupted, lost, destroyed,
arrive late or incomplete, or contain viruses. The sender therefore
does not accept liability for any errors or omissions in the
contents of this message, which arise as a result of e-mail
transmission. If verification is required please request a
hard-copy version. (LCHOC VER 1.0)0 -
Brian Mucha:
Darn.
End of the day here, and I’m off Friday. I’ll try to take a peek at your code but it probably won’t happen right away. So post if support makes any progress.
Regards,
Brian Patrick Mucha
Associate Director, Web Applications
Ann & Robert H. Lurie Children’s Hospital of Chicago Foundation
T 312.227.7286 | M 312.590.9557 | SMS 312.590.9557 | bmucha@luriechildrens.org
225 East Chicago Avenue, Chicago, Illinois 60611-2991
DesignTemplate2
This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. (LCHOC VER 1.0)
Sounds like a plan. Thanks Brian!
0 -
Hey Ian! Just wanted to reach out and see if you were able to resolve your error? Everything on the up and up?
0 -
Ami Defesche:
Hey Ian! Just wanted to reach out and see if you were able to resolve your error? Everything on the up and up?
Sadly no.
This issue still persists despite PayPal integration working on the Luminate hosted forms. Because I'm not listed on the support account, I have to wait until my team reaches out/hears back from tech support on this (unless someone from tech sees this thread).
0 -
An update here:
We've opted to remove PayPal integration until we have more time to figure it out. I'll post back when that happens.0 -
Ian Banks:
An update here:
We've opted to remove PayPal integration until we have more time to figure it out. I'll post back when that happens.We were able to contact Luminate support and they've escelated the issue and will keep us up to date. As I find things I'll post them back here.
0 -
Update here: so during the call with Luminate support they said they would have one of their developers take a look and get back to us. Today I got the following email:
So aside from the tech referencing this very thread (which I think is hilarious) it appears that for donation forms that aren't hosted on the Luminate platform (ie. selfhosted) I need to have success/finish callbacks AND have an authentication token set. Both of those things were listed as optional in the API documentation which is why I didn't use them. They also mentioned again using the Luminate Extend library someone mentioned above https://github.com/noahcooper/luminateExtend. I must have missed that during the conversation about PCI compliance...and it's kindof too late for this project since I already built everything out lol.Thanks for taking time to speak to me this morning. As briefly explained during the call this issue here is not with the Luminate API but with the actual API implementation. The bean error you are seeing here is thrown when the server doesn’t receive session that tells it where the returned information from PayPal belongs. I would recommend that the developer make use of a third party JavaScript library “Luminate Extend” https://github.com/noahcooper/luminateExtend in implementing this donation form. There is also an entry on our Blackbaud Forum where other developers have discussed ways to remediate the issue. The entry can be found herehttps://community.blackbaud.com/forums/ viewtopic/1/29210 ,you would need to create an account or login using Gmail account to access this forum. Please have the developer review this entry and send me follow-up questions if any.
To summarize though:- Need authentication token
- Need to implement `finish_success_redirect`
- Contact support again to have them change PayPal to support a separate confirmation page
I'll update this thread with progress when I get a chance to work on the PayPal integration piece again.
0 -
Thank you for posting the update! This can have a lot of value for us all in the future.
[cid:image2c973e.PNG@ffc7d9d3.408a9c08]
DesignTemplate2
This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. (LCHOC VER 1.0)
0 -
Ian Banks:
Update here: so during the call with Luminate support they said they would have one of their developers take a look and get back to us. Today I got the following email:
So aside from the tech referencing this very thread (which I think is hilarious) it appears that for donation forms that aren't hosted on the Luminate platform (ie. selfhosted) I need to have success/finish callbacks AND have an authentication token set. Both of those things were listed as optional in the API documentation which is why I didn't use them. They also mentioned again using the Luminate Extend library someone mentioned above https://github.com/noahcooper/luminateExtend. I must have missed that during the conversation about PCI compliance...and it's kindof too late for this project since I already built everything out lol.Thanks for taking time to speak to me this morning. As briefly explained during the call this issue here is not with the Luminate API but with the actual API implementation. The bean error you are seeing here is thrown when the server doesn’t receive session that tells it where the returned information from PayPal belongs. I would recommend that the developer make use of a third party JavaScript library “Luminate Extend” https://github.com/noahcooper/luminateExtend in implementing this donation form. There is also an entry on our Blackbaud Forum where other developers have discussed ways to remediate the issue. The entry can be found herehttps://community.blackbaud.com/forums/ viewtopic/1/29210 ,you would need to create an account or login using Gmail account to access this forum. Please have the developer review this entry and send me follow-up questions if any.
To summarize though:- Need authentication token
- Need to implement `finish_success_redirect`
- Contact support again to have them change PayPal to support a separate confirmation page
I'll update this thread with progress when I get a chance to work on the PayPal integration piece again.The reason it may make sense to use luminateExtend is that it handles all of this sort of thing for you automatically. If you don't want to though, it's still possible to get this working.
Like you mentioned, the first thing is that you definitely need finish_success_redirect and finish_error_redirect in your call to the startDonation method. If you haven't used redirect URLs before, it's worth checking out http://open.convio.com/api/#main.using_redirect_parameters.html for details on how they work, namely how you can pass success and error data to the URL using XPath.
The second part is establishing a session. The reason using luminateExtend works is that it always establishes a session for you before making a request. It does so by calling an undocumented (I know ...) CRConsAPI method called getLoginUrl, e.g.
https://secure3.convio.net/myorg/site/CRConsAPI?v=1.0&api_key=key&method=getLoginUrl
In addition to an auth token, this method gives you back a JSESSIONID. You'll need to pass this in the POST data when you call startDonation.
One other thing that's super important when calling the API cross-domain (which again luminateExtend handles for you) is that you set the withCredentials property on the XMLHttpRequest to true. This ensures that cookies are passed in the request.
And you're certainly correct -- the donation bean error message isn't as clear as it could be. Really what it's indicating is that Luminate Online doesn't know which session to connect the request to.
2 -
Noah Cooper:
Like you mentioned, the first thing is that you definitely need finish_success_redirect and finish_error_redirect in your call to the startDonation method. If you haven't used redirect URLs before, it's worth checking out http://open.convio.com/api/#main.using_redirect_parameters.html for details on how they work, namely how you can pass success and error data to the URL using XPath.
Figuring out the syntax to do that wasn't really easy, so I thought I'd drop this here.
<input name="finish_success_redirect" id="finish_success_redirect" type="hidden" value="https://secure3.convio.net/ABC/_thanks.htm?cons_id=${donationResponse/donation/cons_id}" />
https://kb.blackbaud.com/articles/Article/88537
edit: Here's how you get the rest of the data.
<input
name="finish_success_redirect"
id="finish_success_redirect"
type="hidden"
value="https://secure3.convio.net/ABC/_thanks.htm
?cons_id=${donationResponse/donation/cons_id}
&amount=${donationResponse/donation/amount/formatted}'
&value_of_goods=${donationResponse/donation/value_of_goods/formatted}'
&tax_deductible_amount=${donationResponse/donation/tax_deductible_amount/formatted}
&org_tax_id=${donationResponse/donation/org_tax_id}
&transaction_id=${donationResponse/donation/transaction_id}
&confirmation_code=${donationResponse/donation/confirmation_code}"
&date_time=${donationResponse/donation/date_time}'
/>
There's also summary_data that lists each field. The contents of this object depends on the fields on the form. But you can get them like this:
&summary_data_date_id=${donationResponse/donation/summary_data/field[1]/value}
&summary_data_dd_originator_id${donationResponse/donation/summary_data/field[2]/value}
&summary_data_tracking_code_id=${donationResponse/donation/summary_data/field[3]/value}
...
You can also elect to have html for a summary page returned. I didn't try that, but the syntax should be:
&summary_page=${donationResponse/donation/summary_page}
1 -
Noah Cooper:
Ian Banks:
Update here: so during the call with Luminate support they said they would have one of their developers take a look and get back to us. Today I got the following email:
So aside from the tech referencing this very thread (which I think is hilarious) it appears that for donation forms that aren't hosted on the Luminate platform (ie. selfhosted) I need to have success/finish callbacks AND have an authentication token set. Both of those things were listed as optional in the API documentation which is why I didn't use them. They also mentioned again using the Luminate Extend library someone mentioned above https://github.com/noahcooper/luminateExtend. I must have missed that during the conversation about PCI compliance...and it's kindof too late for this project since I already built everything out lol.Thanks for taking time to speak to me this morning. As briefly explained during the call this issue here is not with the Luminate API but with the actual API implementation. The bean error you are seeing here is thrown when the server doesn’t receive session that tells it where the returned information from PayPal belongs. I would recommend that the developer make use of a third party JavaScript library “Luminate Extend” https://github.com/noahcooper/luminateExtend in implementing this donation form. There is also an entry on our Blackbaud Forum where other developers have discussed ways to remediate the issue. The entry can be found herehttps://community.blackbaud.com/forums/ viewtopic/1/29210 ,you would need to create an account or login using Gmail account to access this forum. Please have the developer review this entry and send me follow-up questions if any.
To summarize though:- Need authentication token
- Need to implement `finish_success_redirect`
- Contact support again to have them change PayPal to support a separate confirmation page
I'll update this thread with progress when I get a chance to work on the PayPal integration piece again.The reason it may make sense to use luminateExtend is that it handles all of this sort of thing for you automatically. If you don't want to though, it's still possible to get this working.
Like you mentioned, the first thing is that you definitely need finish_success_redirect and finish_error_redirect in your call to the startDonation method. If you haven't used redirect URLs before, it's worth checking out http://open.convio.com/api/#main.using_redirect_parameters.html for details on how they work, namely how you can pass success and error data to the URL using XPath.
The second part is establishing a session. The reason using luminateExtend works is that it always establishes a session for you before making a request. It does so by calling an undocumented (I know ...) CRConsAPI method called getLoginUrl, e.g.
https://secure3.convio.net/myorg/site/CRConsAPI?v=1.0&api_key=key&method=getLoginUrl
In addition to an auth token, this method gives you back a JSESSIONID. You'll need to pass this in the POST data when you call startDonation.
One other thing that's super important when calling the API cross-domain (which again luminateExtend handles for you) is that you set the withCredentials property on the XMLHttpRequest to true. This ensures that cookies are passed in the request.
And you're certainly correct -- the donation bean error message isn't as clear as it could be. Really what it's indicating is that Luminate Online doesn't know which session to connect the request to.I just found this thread, but I am having the same issue. I am using LuminateExtend and doing everything through Javascript. Most donations go through, but we have users reporting seeing this error with some frequency. No one in the organization has been able to replicate it. I've brought it to support but they have been unable to help. Our donation form is at this URL: https://www.compassionandchoices.org/donate/
0 -
Brian Mucha:
Noah Cooper:
Like you mentioned, the first thing is that you definitely need finish_success_redirect and finish_error_redirect in your call to the startDonation method. If you haven't used redirect URLs before, it's worth checking out http://open.convio.com/api/#main.using_redirect_parameters.html for details on how they work, namely how you can pass success and error data to the URL using XPath.
Figuring out the syntax to do that wasn't really easy, so I thought I'd drop this here.
<input name="finish_success_redirect" id="finish_success_redirect" type="hidden" value="https://secure3.convio.net/ABC/_thanks.htm?cons_id=${donationResponse/donation/cons_id}" />
https://kb.blackbaud.com/articles/Article/88537
edit: Here's how you get the rest of the data.
<input
name="finish_success_redirect"
id="finish_success_redirect"
type="hidden"
value="https://secure3.convio.net/ABC/_thanks.htm
?cons_id=${donationResponse/donation/cons_id}
&amount=${donationResponse/donation/amount/formatted}'
&value_of_goods=${donationResponse/donation/value_of_goods/formatted}'
&tax_deductible_amount=${donationResponse/donation/tax_deductible_amount/formatted}
&org_tax_id=${donationResponse/donation/org_tax_id}
&transaction_id=${donationResponse/donation/transaction_id}
&confirmation_code=${donationResponse/donation/confirmation_code}"
&date_time=${donationResponse/donation/date_time}'
/>
There's also summary_data that lists each field. The contents of this object depends on the fields on the form. But you can get them like this:
&summary_data_date_id=${donationResponse/donation/summary_data/field[1]/value}
&summary_data_dd_originator_id${donationResponse/donation/summary_data/field[2]/value}
&summary_data_tracking_code_id=${donationResponse/donation/summary_data/field[3]/value}
...
You can also elect to have html for a summary page returned. I didn't try that, but the syntax should be:
&summary_page=${donationResponse/donation/summary_page}@Noah and @Brian, the two of you have been incredibly helpful as as I've been working through this.
Do either of you know if there's a way to activate PayPal sandboxing? I'm pretty sure I got myself blacklisted running test donations while attempting to fine-tune the finish_success_redirect xpath get parameters. I thought that passing the preview was allowing me to do test donations without spending real money...but that isn't the case with PayPal it seems without turning on sandboxing.
I've attempted to just switch the URL from https://www.paypal.com/... to https://www.sandbox.paypal.com/... but that results in an invalid session with the messageThis transaction has expired. Please return to the recipient's website to complete your transaction using their regular checkout flow.
Also, Noah, I'm going to see if I can find time int he future to re-write the donation page I built to use LumianteExtend since it handles all these things in a less clunky way. Your documentation for it is superb. You should write some docs for the other Luminate API's
0 -
Ian Banks:
Brian Mucha:
Noah Cooper:
Like you mentioned, the first thing is that you definitely need finish_success_redirect and finish_error_redirect in your call to the startDonation method. If you haven't used redirect URLs before, it's worth checking out http://open.convio.com/api/#main.using_redirect_parameters.html for details on how they work, namely how you can pass success and error data to the URL using XPath.
Figuring out the syntax to do that wasn't really easy, so I thought I'd drop this here.
<input name="finish_success_redirect" id="finish_success_redirect" type="hidden" value="https://secure3.convio.net/ABC/_thanks.htm?cons_id=${donationResponse/donation/cons_id}" />
https://kb.blackbaud.com/articles/Article/88537
edit: Here's how you get the rest of the data.
<input
name="finish_success_redirect"
id="finish_success_redirect"
type="hidden"
value="https://secure3.convio.net/ABC/_thanks.htm
?cons_id=${donationResponse/donation/cons_id}
&amount=${donationResponse/donation/amount/formatted}'
&value_of_goods=${donationResponse/donation/value_of_goods/formatted}'
&tax_deductible_amount=${donationResponse/donation/tax_deductible_amount/formatted}
&org_tax_id=${donationResponse/donation/org_tax_id}
&transaction_id=${donationResponse/donation/transaction_id}
&confirmation_code=${donationResponse/donation/confirmation_code}"
&date_time=${donationResponse/donation/date_time}'
/>
There's also summary_data that lists each field. The contents of this object depends on the fields on the form. But you can get them like this:
&summary_data_date_id=${donationResponse/donation/summary_data/field[1]/value}
&summary_data_dd_originator_id${donationResponse/donation/summary_data/field[2]/value}
&summary_data_tracking_code_id=${donationResponse/donation/summary_data/field[3]/value}
...
You can also elect to have html for a summary page returned. I didn't try that, but the syntax should be:
&summary_page=${donationResponse/donation/summary_page}@Noah and @Brian, the two of you have been incredibly helpful as as I've been working through this.
Do either of you know if there's a way to activate PayPal sandboxing? I'm pretty sure I got myself blacklisted running test donations while attempting to fine-tune the finish_success_redirect xpath get parameters. I thought that passing the preview was allowing me to do test donations without spending real money...but that isn't the case with PayPal it seems without turning on sandboxing.
I've attempted to just switch the URL from https://www.paypal.com/... to https://www.sandbox.paypal.com/... but that results in an invalid session with the messageThis transaction has expired. Please return to the recipient's website to complete your transaction using their regular checkout flow.
Also, Noah, I'm going to see if I can find time int he future to re-write the donation page I built to use LumianteExtend since it handles all these things in a less clunky way. Your documentation for it is superb. You should write some docs for the other Luminate API'sIf you want to use a PayPal sandbox, you actually need to have Blackbaud set up a separate merchant account for you that points to that sandbox. Then you'll need to assign the donation campaign you're using to use that merchant account.
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