Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manual Payment Plugin | User Payments - Unable to send Payment notifications for Article/Issue Purchase #11121

Open
1 of 3 tasks
pmangahis opened this issue Mar 18, 2025 · 3 comments
Assignees
Labels
Bug:1:Minor A bug found in uncommon paths, with low consequences, limited users or has an easy workaround
Milestone

Comments

@pmangahis
Copy link

pmangahis commented Mar 18, 2025

Valid Title

  • I have updated the title to accurately reflect the bug description

Description

In 3.4 and 3.5, readers cannot send payment notifications to the Editor when attempting to purchase an article. They encounter an HTTP 500 error.

  • Please check the subscription payment workflow as well.

A journal must first have a full subscription/partial subscription setup.

  • Issue Access: Subscription
  • In Settings> Distribution: Publishing Mode: The journal will require subscriptions to access some or all of its contents.
  • In Settings > Distribution > Payments: Enabled with the Manual Fee Payment Selected
  • In Payments > Payment Types: Numerical value entered in the Reader Fees (Issue or Article Purchase)

Steps to Reproduce

To trigger this bug

  1. Go to the subscription journal
  2. Login as an author
  3. Click on a closed article to make a purchase
  4. This will take you to the following page:
Image 5. Click 'Send notification of payment' 6. Get HTTP 500 Error Image

Expected Result

An email notification should be sent to the Primary contact so they can verify the payment. Here the example of what they would receive in OJS 3.3

  • Email template should be available as well. Under manage emails templates list. It's missing the "Manual Payment Notification" template.
Image

Actual Result

Get HTTP 500 Error

Image

Environment Details

No response

Application Version

OJS 3.4 + 3.5 (RC1)

Logs

[Tue Mar 18 11:17:40.886221 2025] [php:error] [pid 36080:tid 1868] [client ::1:62030] PHP Fatal error: Uncaught Symfony\\Component\\Mime\\Exception\\LogicException: An email must have a "From" or a "Sender" header. in C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mime\\Message.php:132\nStack trace:\n#0 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mime\\Email.php(399): Symfony\\Component\\Mime\\Message->ensureValidity()\n#1 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mailer\\SentMessage.php(34): Symfony\\Component\\Mime\\Email->ensureValidity()\n#2 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mailer\\Transport\\AbstractTransport.php(68): Symfony\\Component\\Mailer\\SentMessage->__construct(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))\n#3 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mailer\\Transport\\Smtp\\SmtpTransport.php(138): Symfony\\Component\\Mailer\\Transport\\AbstractTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))\n#4 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\mail\\Mailer.php(161): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))\n#5 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\Mailer.php(332): PKP\\mail\\Mailer->sendSymfonyMessage(Object(Symfony\\Component\\Mime\\Email))\n#6 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\mail\\Mailer.php(126): Illuminate\\Mail\\Mailer->send('A manual paymen...', Array, Object(Closure))\n#7 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\Mailable.php(206): PKP\\mail\\Mailer->send('A manual paymen...', Array, Object(Closure))\n#8 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\Localizable.php(19): Illuminate\\Mail\\Mailable->Illuminate\\Mail\\{closure}()\n#9 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\Mailable.php(199): Illuminate\\Mail\\Mailable->withLocale(NULL, Object(Closure))\n#10 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\Mailer.php(354): Illuminate\\Mail\\Mailable->send(Object(PKP\\mail\\Mailer))\n#11 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\Mailer.php(301): Illuminate\\Mail\\Mailer->sendMailable(Object(APP\\plugins\\paymethod\\manual\\mailables\\ManualPaymentNotify))\n#12 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\mail\\Mailer.php(126): Illuminate\\Mail\\Mailer->send(Object(APP\\plugins\\paymethod\\manual\\mailables\\ManualPaymentNotify), Array, NULL)\n#13 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Mail\\MailManager.php(622): PKP\\mail\\Mailer->send(Object(APP\\plugins\\paymethod\\manual\\mailables\\ManualPaymentNotify))\n#14 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Facades\\Facade.php(361): Illuminate\\Mail\\MailManager->__call('send', Array)\n#15 C:\\xampp\\htdocs\\ojs-main\\ojs\\plugins\\paymethod\\manual\\ManualPaymentPlugin.php(192): Illuminate\\Support\\Facades\\Facade::__callStatic('send', Array)\n#16 C:\\xampp\\htdocs\\ojs-main\\ojs\\pages\\payment\\PaymentHandler.php(48): APP\\plugins\\paymethod\\manual\\ManualPaymentPlugin->handle(Array, Object(APP\\core\\Request))\n#17 [internal function]: APP\\pages\\payment\\PaymentHandler->plugin(Array, Object(APP\\core\\Request))\n#18 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\core\\PKPRouter.php(327): call_user_func(Array, Array, Object(APP\\core\\Request))\n#19 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\core\\PKPPageRouter.php(249): PKP\\core\\PKPRouter->_authorizeInitializeAndCallRequest(Array, Object(APP\\core\\Request), Array, false)\n#20 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\core\\Dispatcher.php(157): PKP\\core\\PKPPageRouter->route(Object(APP\\core\\Request))\n#21 C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\classes\\core\\PKPApplication.php(422): PKP\\core\\Dispatcher->dispatch(Object(APP\\core\\Request))\n#22 C:\\xampp\\htdocs\\ojs-main\\ojs\\index.php(21): PKP\\core\\PKPApplication->execute()\n#23 {main}\n thrown in C:\\xampp\\htdocs\\ojs-main\\ojs\\lib\\pkp\\lib\\vendor\\symfony\\mime\\Message.php on line 132, referer: http://localhost/ojs-main/ojs/index.php/publicknowledge/en/article/view/mwandenga-signalling-theory/1

Additional Information

No response

@pmangahis pmangahis assigned pmangahis and Tribunal33 and unassigned pmangahis Mar 18, 2025
@pmangahis
Copy link
Author

This issue might also exist for subscription payment that's using manual payment as it follows the same steps.

@asmecher
Copy link
Member

@Tribunal33, I can have a look once you've got the logs posted, thanks!

@Tribunal33 Tribunal33 added the Bug:1:Minor A bug found in uncommon paths, with low consequences, limited users or has an easy workaround label Mar 19, 2025
@Tribunal33 Tribunal33 added this to the 3.5.0 LTS milestone Mar 19, 2025
@Tribunal33
Copy link
Contributor

Tribunal33 commented Mar 19, 2025

@asmecher logs posted. I have given this a severity of Minor due to the manual payment only being used for testing purposes and not being used as part of standard practice. Not sure how we want to handle it.

I noticed that the template for payment is missing from the template list...but I do see another payment template. I don't think this replaces the old one, but best I could find. Wording doesn't seem to be the same.

Old template :

Image

different payment template:

Image

Found another purchase one but does read the same

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug:1:Minor A bug found in uncommon paths, with low consequences, limited users or has an easy workaround
Projects
None yet
Development

No branches or pull requests

3 participants