Donation API Errors

Options

Hi,

I'm hoping someone can help me with the errors I'm getting while trying to use the Donation API. I am able to use the ConsAPI fine, and I thought I followed the instructions for implementing the DonationAPI, but I guess I'm missing something.

I think my problem is that the parameters are not being successfully passed to the Donation URL. It's reporting that I must enter my shipping address, which isn't even specified as parameter for use with the API (I'd guess this is equal to the donor.address fields) along with other fields which I think are filled out.

I'm using CURL to POST the user's input to the DonationAPI in the same manner that I did for the ConsAPI, which is working. I've copy and pasted the data I'm sending, and the response I'm getting in case it helps illustrate what's happening. Keep in mind, when I set validate to false, I still get a 101 error but it's very vague.

&api_key=xxxxxxxx&v=1.0&method=donate&response_format=xml&validate=true&form_id=xxxx&summary=data&send_receipt=true&send_registration_email=false&level_id=xxxx&other_amount=&additional_amount=&anonymous=&card_number=xxxxxxxxxx&card_cvv=xxxxxx&card_exp_date_month=x&card_exp_date_year=xxxxx&card_exp_date=&ach_account=&ach_routing=&gift_aid=&billing.address.street1=zzzzzzzzz&billing.address.street2=&billing.address.city=Middlefield&billing.address.state=CT&billing.address.zip=06455&billing.address.country=UnitedStates&billing.name.title=&billing.name.first=&billing.name.middle=&billing.name.last=&billing.name.suffix=&billing.name.proSuffix=&donor.address.street1=xxxxxxxxx&donor.address.street2=&donor.address.city=Middlefield&donor.address.state=CT&donor.address.zip=06455&donor.address.country=UnitedStates&donor.name.title=&donor.name.first=Daniel&donor.name.middle=R&donor.name.last=Rynaski&donor.name.suffix=Mr&donor.name.proSuffix=&donor.email=danr%40fathom.net&donor.email_opt_in=on&donor.phone=&donor.phone_type=&donor.employer=&donor.occupation=&df_preview=true&remember_me=on&shipping_first_namename=Daniel&name.first=Daniel&shipping.name.middle=R&name.middle=R&shipping.name.last=Rynaski&name.last=Rynaski&shipping.addr.country=United+

=> ( => 101

=> Error: There was a problem encountered while processing your

donation. => FIELD_VALIDATION => There was a

problem processing your request. Please see below. =>

Array ( => Please enter the country of your shipping address.

=> Please enter your shipping street address. => Please

enter your first name. => Please enter the state/province of

your shipping address. => Please enter your shipping zip/postal

code. => Please enter your last name. => Please enter the

last name for your shipping address. => Please enter the first

name for your shipping address. => Credit card number is

invalid. => Please enter the city of your shipping address. ) )

)

Any ideas?

Thanks for your help

- Dan

Tagged:

Comments

  • Hey Daniel,

    It sounds like you are doing this on your own server, rather than on a Convio secure page? I'm not sure it has any relation to the error, but it's my understanding that it should not be proxied through your own server.

    I don't think is a technical thing so much as a regulatory compliance issue (Dave Hart posted on this recently on someone else's question).

    FYI when your posting code best way to do is using the code with curly braces around it (click the help icon).

  • Did you ever get this to work? When you say you are using, "CURL to POST the input" is it an actual POST? If so, is there an S:Tag for getting POST data? I am using GET and sending through a similar string to you, retrieving with S:334 and it is working or at least the XML is saying it is successful when df_preview = true.

    Can you explain a little more on the steps/pages you have built and how they interact?

    And Adrian is correct, you need to build this in pagebuilder so it is secure and talking Convio server to Convio server.

    Just for your info, here is what I am doing...roughly.

    Page 1 is on our server and is asking for information that we don't care to store in Convio

    Page 1 then writes that info to our non-Convio database and sends the user to a pagebuilder page at the following URL:

    https://secure3.convio.net/sitename/site/SPageNavigator/PageBuildingPageName?api_key=1234&v=1.0&method=donate&df_preview=true&noscripts=true&form_id=1234&....

    Where "...." is the billing info from the page before and concatanated into a format similar to yours.

    Page 2 populates all the required fields (they are hidden input fields), billing info, URL response info, donation amount etc. And then asks for the credit card number and such. We then submit that form to the Convio API.

    Page 3 is the XML response page that says the donation was successful and shows a transaction date of 1969 and a transaction id of 0. I am hoping when we test with a live credit card that the date and id will be accurate.

    Anyway, that is where I am at.

  • Ryan Hagg:

    Did you ever get this to work? When you say you are using, "CURL to POST the input" is it an actual POST? If so, is there an S:Tag for getting POST data? I am using GET and sending through a similar string to you, retrieving with S:334 and it is working or at least the XML is saying it is successful when df_preview = true.

    Can you explain a little more on the steps/pages you have built and how they interact?

    And Adrian is correct, you need to build this in pagebuilder so it is secure and talking Convio server to Convio server.

    Just for your info, here is what I am doing...roughly.

    Page 1 is on our server and is asking for information that we don't care to store in Convio

    Page 1 then writes that info to our non-Convio database and sends the user to a pagebuilder page at the following URL:

    https://secure3.convio.net/sitename/site/SPageNavigator/PageBuildingPageName?api_key=1234&v=1.0&method=donate&df_preview=true&noscripts=true&form_id=1234&....

    Where "...." is the billing info from the page before and concatanated into a format similar to yours.

    Page 2 populates all the required fields (they are hidden input fields), billing info, URL response info, donation amount etc. And then asks for the credit card number and such. We then submit that form to the Convio API.

    Page 3 is the XML response page that says the donation was successful and shows a transaction date of 1969 and a transaction id of 0. I am hoping when we test with a live credit card that the date and id will be accurate.

    Anyway, that is where I am at.

    One thing to check when making the POST to the Convio API from a remote server: the form's enctype must be "application/x-www-form-urlencoded".

Categories