Hello,
I am running Ubertcart 2.x RC6 with Google Checkout as the payment processor. Put simply, I keep receiving e-mails from Google Checkout informing me that there is a problem with the integration between Ubercart and Google Checkout. The e-mail says:
We've made several unsuccessful attempts to send order notifications to your notification callback URL, https://mydomain.org/google_checkout As a result, you aren't receiving order status, risk, or other notifications.
When I visit the URL for my callback, the following error appears:
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in sites/all/modules/ubercart/payment/uc_google_checkout/uc_google_checkout.pages.inc:30 Stack trace: #0
sites/all/modules/ubercart/payment/uc_google_checkout/uc_google_checkout.pages.inc(30): SimpleXMLElement->__construct('') #1 [internal function]: uc_google_checkout_callback() #2
includes/menu.inc(348): call_user_func_array('uc_google_check...', Array) #3
index.php(18): menu_execute_active_handler() #4 {main} thrown in
sites/all/modules/ubercart/payment/uc_google_checkout/uc_google_checkout.pages.inc on line 30
Some additional information:
1. I configured uc_google_checkout exactly per the instructions from Ubercart's docs section
2. I purchased and installed a security certificate on my dedicated server from GoDaddy that appears to be supported by Google Checkout.
3. Per the docs, I downloaded and installed the SecurePages module to make the https://mydomain.org/google_checkout link secure.
4. In Google Checkout's Integration settings, I am using XML as opposed to HTML, per the docs.
Can anyone offer some advice as to what's going on and how I can fix it?
Thanks
| Comment | File | Size | Author |
|---|---|---|---|
| #16 | 579786_gco_notifications.patch | 16.77 KB | Island Usurper |
| #15 | 579786_gco_notifications.patch | 16.49 KB | Island Usurper |
Comments
Comment #1
eusebius commentedSome additional information I discovered a moment ago from the system log:
Comment #2
eggersrj commentedEusebius, were you able to figure this out?
I have the same problem.
Comment #3
wrightnow commentedI'm having the same issue - payment goes through on a GC payment, but Drupal site has no idea what's going on since the callback doesn't work...
** Update **
I patched the NPE, which was happening when I manually loaded the page since there was no xml parameter being set. Turns out the issue with google was the certificate not being installed correctly. Google->tools->integration center gave more insight.
Comment #4
mimetic2 commentedI also have this problem.
Comment #5
eusebius commentedjww2nc,
What's the NPE? I followed your lead and double checked my cert using openssl, but everything seems to check out okay, except for this one message at the top:
Thanks for the help
Comment #6
wrightnow commentedJust to make sure I'm clear - the NPE catch I put in doesn't fix the overall problem (which in my case was a certificate issue with our site host), but simply catches the NPE produced if the input isn't well-formed XML and the SimpleXMLElement constructor crashes. It's probably not vital, which is why I never published it. But my changes are in uc_google_checkout.pages.inc and affect the function uc_google_checkout_callback(). See below for the entire altered method.
Comment #7
danharper commentedI also have this problem, I keep getting e-mails from google saying they can't contact my callback api.
Is there a fix for this or can I request my host to setup my certificate differently?
Cheers Dan
Comment #8
wrightnow commentedIn our case, the issue was SSL cert based - my patch just gets UC to handle the error more gracefully.
Comment #9
patoshi commentedsame problem here.. what is NPE? and do i need to patch anything with the module or is this due to my configuration?
Comment #10
doofaye commentedanyone worked this out yet ?
I reckon either SSl certificate not supported or mis configured by host.
Can anyone explain to me what the error message actually means?
Comment #11
thepuzzlemaster commentedHas anyone figured this out yet? Or does anyone have any insight into a work around? I am having the exact same problem with a certificate from a trusted source. Exact same symptoms...
Comment #12
patoshi commentedsame problem here.. anyone resolve this?
Comment #13
Melissamcewen commentedHas anyone figured this out? Any help is appreciated!
Comment #14
BrianLewisDesign commentedSame problem here. Need the Google Checkout callback to work. Urgent. Google checkout is useless without the call back.
Comment #15
Island Usurper commentedGoogle Checkout's API version is now 2.5, so I have modified the code to reflect this. One of the changes was the way notifications were handled. Now, you don't need an SSL certificate on your site because Google just sends a serial number. The site is then supposed to send a notification request containing that serial number, and all of the other authentication parameters as normal.
For any existing GCO integrations, this means you have to change your settings in the Merchant Center to keep receiving notifications. Under the Settings tab, click Integration on the left side. Change "Callback contents" to "Notification Serial Number" and API version to 2.5.
Comment #16
Island Usurper commentedI committed #757604: Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed', so this patch needed a reroll. I also realized that it would be a very good idea to specify the Notification content and API version that we expect.
I've been using this in production for a while now, so with correct configuration, it should work.
Comment #18
larowlanAdded some doco http://drupal.org/node/1187830 as finding this patch earlier could have saved some time.