Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
I am having an issue with a commerce file download. I am using D7.14 with Commerce 1.3 After successfully completing the transaction on Paypal. The redirect shows only this info:
Notice: Undefined index: transaction_id in commerce_paypal_ec_response_to_ipn() (line 488 of /home/solarpow/public_html/sites/all/modules/commerce_paypal_ec/commerce_paypal_ec.module).
Notice: Undefined variable: transactions in commerce_paypal_ec_paypal_ipn_process() (line 576 of /home/solarpow/public_html/sites/all/modules/commerce_paypal_ec/commerce_paypal_ec.module).
Notice: Undefined index: default-system in drupal_mail_system() (line 272 of /home/solarpow/public_html/includes/mail.inc).
Warning: class_implements() [function.class-implements]: object or string expected in drupal_mail_system() (line 276 of /home/solarpow/public_html/includes/mail.inc).
Exception: Class <em class="placeholder"></em> does not implement interface <em class="placeholder">MailSystemInterface</em> in drupal_mail_system() (line 281 of /home/solarpow/public_html/includes/mail.inc).
No menus, no headers/footers, nothing but these error messages. The transaction goes through though no access is ever given to the file. This is a new install of the commerce modules and has never worked. I am also not much of a coder, just a musician trying to DIY myself a site. How do I start trying to get to the bottom of the issue here?
Thanks!
Comments
Comment #1
viceversa CreditAttribution: viceversa commentedI have chatted with the original poster on #drupal-support and here is my take of this problem.
Some module that has been installed and then uninstalled has left a spurious reference to the mail_system variable in the DB, whose implementation (keyed by default-system) is no more in place. When drupal_mail_system() tries to use the implementation referenced by mail_system, it does not exist and fails.
Possible solution: deleting the mail_system variable from the variable table in the DB will revert drupal_mail_system() to use the default implementation (namely 'DefaultMailSystem') and therefore solve the problem. The original poster didn't try it because he was not comfortable with editing the DB directly.
Comment #2
citlacom CreditAttribution: citlacom commentedDefinitely here there are 2 things:
1. The warnings of PayPal EC was solved in dev release.
2. As @viceversa said this looks like a problem with dirty reference for a module that has installed and uncorrectly uninstalled.
Try to do some debug in /home/solarpow/public_html/includes/mail.inc file in line 281. Probably if you do a print_r($module); before throw new Exception(t('Class %class does not implement interface %interface', array('%class' => $class, '%interface' => 'MailSystemInterface')));
This way you can get the name of the conflict module and try to reinstall it and uninstall correctly via the modules admin UI.
Comment #3
Drupal Musician CreditAttribution: Drupal Musician commentedI installed the mail system module and used it to set the default mail system. The issue has been resolved. Thanks for the help.