I've got UC_Recurring active on a site. We are using PayPal WPP, currently testing in the sandbox.
Here are the results of the test we have run. I hope this helps iron out some of these bugs.
Use Case 1:
In the admin/store/settings/recurring "Attempt to process recurring fees during checkout" is checked. Debug mode is off.
Both a payment and a recurring payment are correctly created in PayPal.
A fatal error is generated on what would have been the order complete page:
Notice: Undefined property: stdClass::$order_product_id in uc_recurring_product_process_order() (line 498 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_product/uc_recurring_product.module).
Notice: Undefined index: amount in uc_recurring_hosted_paypal_wpp_process() (line 824 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: data in uc_recurring_hosted_paypal_wpp_process() (line 825 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: CURRENCYCODE in uc_recurring_hosted_paypal_wpp_process() (line 852 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined property: stdClass::$rfid in uc_recurring_hosted_paypal_wpp_process() (line 865 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: TRANSACTIONID in uc_recurring_hosted_paypal_wpp_process() (line 878 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'txn_id' cannot be null: INSERT INTO {uc_payment_paypal_ipn} (order_id, txn_id, txn_type, mc_gross, status, receiver_email, payer_email, received) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => 122 [:db_insert_placeholder_1] => [:db_insert_placeholder_2] => web_accept [:db_insert_placeholder_3] => [:db_insert_placeholder_4] => Completed [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => rcharamella+test1@gmail.com [:db_insert_placeholder_7] => 1318622844 ) in uc_recurring_hosted_paypal_wpp_process() (line 886 of /home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).Visting admin/store/orders/recurring and selecting "create profile" produces the following error:
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
Notice: Array to string conversion in DatabaseStatementBase->execute()(line 2137 of/home/compass/public_html/subdomains/beta.compassiontea.com/includes/database/database.inc).
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '', 'Array', NULL, 'Array', '', '', '', '', 'post', 'Array', 'Array', 'Array'' at line 1: SELECT ru.*, u.name FROM {uc_recurring_users} ru JOIN {users} u ON u.uid = ru.uid WHERE rfid = :rfid_build_info, :rfid_rebuild, :rfid_rebuild_info, :rfid_redirect, :rfid_temporary, :rfid_submitted, :rfid_executed, :rfid_programmed, :rfid_cache, :rfid_method, :rfid_groups, :rfid_buttons, :rfid_input; Array ( [:rfid_build_info] => Array ( [args] => Array ( [0] => 9 [1] => paypal_wpp ) ) [:rfid_rebuild] => [:rfid_rebuild_info] => Array ( ) [:rfid_redirect] => [:rfid_temporary] => Array ( ) [:rfid_submitted] => [:rfid_executed] => [:rfid_programmed] => [:rfid_cache] => [:rfid_method] => post [:rfid_groups] => Array ( ) [:rfid_buttons] => Array ( ) [:rfid_input] => Array ( ) ) in uc_recurring_fee_user_load() (line 743 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/uc_recurring.module).
Use Case 2:
In the admin/store/settings/recurring "Attempt to process recurring fees during checkout" is not checked. Debug mode is on.
Orders process correctly, no error messages. A payment is registered in PayPal.
Visiting admin/store/orders/ORDER NUMBER, there is a checkbox in the bottom of the screen labeled "Process the 1 recurring fees associated with products on this order." Click the checkbox and Update and a recurring payment is correctly created in PayPal, the order is updated and the recurring payment becomes listed under the Recurring Fees tab. But the system generates this error message:
Order updated.
Error message
Notice: Undefined index: amount inuc_recurring_hosted_paypal_wpp_process() (line 824 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: data inuc_recurring_hosted_paypal_wpp_process() (line 825 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: CURRENCYCODE inuc_recurring_hosted_paypal_wpp_process() (line 852 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined property: stdClass::$rfid inuc_recurring_hosted_paypal_wpp_process() (line 865 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
Notice: Undefined index: TRANSACTIONID inuc_recurring_hosted_paypal_wpp_process() (line 878 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'txn_id' cannot be null: INSERT INTO {uc_payment_paypal_ipn} (order_id, txn_id, txn_type, mc_gross, status, receiver_email, payer_email, received) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => 123 [:db_insert_placeholder_1] => [:db_insert_placeholder_2] => web_accept [:db_insert_placeholder_3] => [:db_insert_placeholder_4] => Completed [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => rcharamella+test2@gmail.com [:db_insert_placeholder_7] => 1318624007 ) inuc_recurring_hosted_paypal_wpp_process() (line 886 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/modules/uc_recurring_hosted/uc_recurring_hosted.module).If these errors are caused by incorrect settings on our part, please let me know.
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | uc_recurring_hosted.patch | 2.37 KB | luf |
| #4 | uc_recurring_product.patch | 505 bytes | luf |
Comments
Comment #1
gregsomers commentedAny news on this? This problem still exists
Comment #2
luf commentedThis error still occurs, and if you assign the user a role in the item it will create that user with the role, charge the payment, and throw this error at the same time without informing the customer their account was activated.
Comment #3
matthensley commentedRegarding the
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '', 'Array', NULL, 'Array', '', '', '', '', 'post', 'Array', 'Array', 'Array'' at line 1: SELECT ru.*, u.name FROM {uc_recurring_users} ru JOIN {users} u ON u.uid = ru.uid WHERE rfid = :rfid_build_info, :rfid_rebuild, :rfid_rebuild_info, :rfid_redirect, :rfid_temporary, :rfid_submitted, :rfid_executed, :rfid_programmed, :rfid_cache, :rfid_method, :rfid_groups, :rfid_buttons, :rfid_input; Array ( [:rfid_build_info] => Array ( [args] => Array ( [0] => 9 [1] => paypal_wpp ) ) [:rfid_rebuild] => [:rfid_rebuild_info] => Array ( ) [:rfid_redirect] => [:rfid_temporary] => Array ( ) [:rfid_submitted] => [:rfid_executed] => [:rfid_programmed] => [:rfid_cache] => [:rfid_method] => post [:rfid_groups] => Array ( ) [:rfid_buttons] => Array ( ) [:rfid_input] => Array ( ) ) in uc_recurring_fee_user_load() (line 743 of/home/compass/public_html/subdomains/beta.compassiontea.com/sites/all/modules/uc_recurring/uc_recurring.module).issue, for some reason the $rfid argument in uc_recurring_fee_user_load() (in uc_recurring.module) is being passed an array instead of just the rfid, which throws off the db_query() replacement. I'm not suggesting this as a solution, but I was able to get around it for my use case by adding:
just prior to the db_query line.
Comment #4
luf commentedToday I decided to take another look at this module hoping there would have been fixes provided. After realizing it is pretty much in the same state since my last post I channeled my frustration into 2 patches to remove the checkout errors, most of these patches were already create but scattered in different posts, some worked while others didn't, after some trial and error here is a final working version. These patches will solve your checkout issues but there may still be errors on the user's end when editing subscription products. Let's get some more people fixing this, PayPal Recurring is a big deal for a lot of developers if it works properly.
Comment #5
K.MacKenzie commentedTesting Luf's patches now but at first glance they look good.
Comment #6
K.MacKenzie commentedComment #7
jj0914 commentedTried solution from #3, the error still doesn't go away. any suggestions?
Comment #8
aparna.kondala commentedI tested the patch its working really well only errors on user profile.
Comment #9
univate commentedCommitted.