I don't have much information on this yet, and plan to dig into it more tomorrow. I have confirmed that this was working correctly when running 7.x-3.0-rc3, and is now failing in 7.x-3.0-rc4 (and since the release notes for the stable 7.x-3.0 make no mention of a bug fix, I assume that the problem will exist there as well).
I am using PayPal Express Checkout. From the cart page, I click over to PayPal to pay. I login and choose my payment info, and am sent back to the "Submit Order" page on the Drupal site, where I have to click the Submit Order button to complete the order. In rc3, this would submit the order successfully, create a new user, and show a confirmation page. In rc4, it kicks me back to the cart page, with my selected item listed in the cart.
There are no errors displayed on-screen or appearing in watchdog, and nothing in the Apache error log.
I confirmed that this was an rc4 issue by:
- Checkout the commit immediately before updating to rc4
- Confirm that checkout process works correctly
- Checkout the commit in which I updated Ubercart to rc4 (no other changes were made in this commit)
- Attempt checkout process and get the results explained above
Comment | File | Size | Author |
---|---|---|---|
#9 | 1425370-paypal-ec-redirect-9.patch | 3.7 KB | wodenx |
#8 | 1425370_paypal_ec_redirect.patch | 971 bytes | wodenx |
Comments
Comment #1
longwavePossibly a duplicate of #1422588: Fatal error when submitting payment, please test the patch in that issue.
Comment #2
Odonay CreditAttribution: Odonay commentedNo, it's not a duplicate of that problem. I tried the patch with no success.
I also tried replacing my PayPal module in my release build, with the RC3 PayPal code, and that didn't help either.
I'm still getting kicked back to my cart. However, my orders are being marked as complete/emails are being sent.
I believe it may have something to do with Ubercart itself.
Comment #3
jerry CreditAttribution: jerry commentedFor what it's worth, I may be seeing something similar with the Authorize.Net SIM/DPM payment module. Checkout is successful, status is changed, mail is sent, but the user is kicked back to the (now-empty) shopping cart with no completion message. This was working fine through RC3; not sure that I checked it in RC4, but it's broken in the 3.0 release. I also suspect a change in the Ubercart checkout process, but I haven't had time to dig into it yet.
Comment #4
Odonay CreditAttribution: Odonay commentedFor my users, they are returned to a cart that still has the items in it. It basically appears as if nothing has happened.
I did however, get it to go to a completion page through the Test Payment Gateway, but that isn't much help for getting PayPal to work :)
Comment #5
BrockBoland CreditAttribution: BrockBoland commentedI got the same as Odonay: back at the cart, with the item(s) in it. I haven't had a chance to try the patch from #1422588: Fatal error when submitting payment, but I did glance at it and would be surprised if it solved this issue—it looks like it addresses something else.
Comment #6
Odonay CreditAttribution: Odonay commentedHas anyone else looked into this? For now, would it be wise to revert back to RC3? :/
Comment #7
BrockBoland CreditAttribution: BrockBoland commentedI'll be digging into it over the weekend. I'd like to avoid ever moving backwards in versions, but that may well be the best course of action here.
Comment #8
wodenx CreditAttribution: wodenx commentedSorry, I have been away. Please try the attached patch.
Comment #9
wodenx CreditAttribution: wodenx commentedThis version should fix the same bug in several other places...
Comment #10
jerry CreditAttribution: jerry commentedwodenx confirms my suspicion stated above about a change in the UC checkout process. Starting with RC4, the "do_complete" session variable was restructured. Good catch.
Comment #11
wodenx CreditAttribution: wodenx commentedWe definitely need to write some coder-upgrade tests to catch some of these changes. I will try to get to that soon.
Comment #12
BrockBoland CreditAttribution: BrockBoland commentedThanks wodenx! I tested out the patch from #9 and the checkout process is now working correctly—for the most part. I'm using uc_roles to assign a role to users, but that's not working. I'm not sure yet if this is related to the same change that caused the problem with checkout or not. "do_complete" does not appear in uc_roles at all. This is true for both anon and authenticated users.
I'm going to dig into this more and see whether it's related or not. If it turns out to be a separate issue, this item is RTBC.
Comment #13
BrockBoland CreditAttribution: BrockBoland commentedLooks like my uc_roles issue is indeed related: using the Test Payment Gateway, it worked correctly.
Comment #14
BrockBoland CreditAttribution: BrockBoland commentedComment #15
BrockBoland CreditAttribution: BrockBoland commentedNevermind me. I should have checked this first, but the orders in question have a status of Pending, which is why the roles were not added.
Again: this could be related, but I'm not sure yet.
Comment #16
jerry CreditAttribution: jerry commentedFWIW, I see unmodified references to $_SESSION['do_complete'] in the UC 3.0 versions of uc_cybersource, uc_google_checkout and uc_credit as well. Dunno what problems this might be causing for their users.
For the uc_authorizenet_simdpm module, I've used this check to try to avoid breaking checkout for users of RC3 and earlier:
uc_order conveniently had a schema version change between RC3 and RC4. Might be worth doing something like that here, too.
Comment #17
BrockBoland CreditAttribution: BrockBoland commentedjerry: I think that an issue in the uc_authorizenet_simdpm would be appropriate for that.
I opened #1429460: PayPal Express Checkout not finishing checkout process to handle the rest of the problems I've been having. wodenx's patch from comment #9 does what it's supposed to and fixes that problem.
Comment #18
jerry CreditAttribution: jerry commentedI forgot that the PayPal payment module was bundled, so you're right; backward compatibility is not an issue here. I do think that the unmodified references to the session variable in the other bundled payment modules that I listed are relevant to the Ubercart issue queue, though.
Comment #19
wodenx CreditAttribution: wodenx commented@jerry: I think the other references are caught in the patch at #9.
Comment #20
longwaveCommitted #9.