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

Guzzle TypeError on daily cron #47

Closed
WS-NL opened this issue Nov 11, 2018 · 18 comments
Closed

Guzzle TypeError on daily cron #47

WS-NL opened this issue Nov 11, 2018 · 18 comments

Comments

@WS-NL
Copy link

WS-NL commented Nov 11, 2018

De dagelijkse cron geeft een error bij cron taak 26 (WHMCS update) met het gebruik van een van jullie mollie module's - ideal - bancontact - creditcard
Hierdoor werkt de hele cron niet

[WHMCS Application] ERROR: TypeError: Argument 1 passed to GuzzleHttp\Ring\Client\StreamHandler::__invoke() must be of the type array, object given, called in /home/modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php on line 277 and defined in /vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php:26 Stack trace: #0
/modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(277): GuzzleHttp\Ring\Client\StreamHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #1 /modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(125): GuzzleHttp\Client->transfer(Object(GuzzleHttp\Psr7\Request), Array) #2 /modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(131): GuzzleHttp\Client->requestAsync('get', Object(GuzzleHttp\Psr7\Uri), Array) #3 /modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(89): GuzzleHttp\Client->request('get', 'https://pki.whm...', Array) #4


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@Wouter0100
Copy link
Member

Jup, deze error klopt helaas. WHMCS kan haar dependencies niet fatsoenlijk up-to-date houden en schermt composer af, dus we kunnen het niet op de normale manier inladen. In onze betaalde modules hebben we hier een oplossing voor gevonden, maar deze kan helaas niet bij deze Open-Source module. Als iemand dus een oplossing heeft, horen we dat graag.

De oorzaak is dus dat de Mollie library die we gebruiken een nieuwere versie van guzzle gebruikt en dat deze dus niet matched met de versie die WHMCS gebruikt.

@WS-NL
Copy link
Author

WS-NL commented Jan 3, 2019

Goede morgen Wouter

Had gister nog contact met je via het ticket systeem.

Echter krijg ik geen email van jullie binnen op mijn outlouk account, ook kan ik dus mijn wachtwoord niet herstellen.
Heb je de update of een werkende mollie module waar de dagelijkse cron job wel werkt, de mollie recurring hebben we inderdaad niet nodig
Anders zouden we graag een refund willen, wel zo netjes
Hoor graag van je

@apeman76
Copy link
Contributor

Is hier toevallig nog nieuws over?
Bij 7.7.0 is guzzle geupdate: https://docs.whmcs.com/Version_7.7.0_Release_Notes#Library_Updates

@Wouter0100
Copy link
Member

Wouter0100 commented Feb 19, 2019

@thomashoeky ze blijven helaas binnen de 5.*-release. Guzzle zit ondertussen in 6.3.3, wat betekend dat ze ver achterlopen. Door het verschil in de major release, is de interface anders en krijg je deze bug.

Het enige dat ik als oplossing gevonden heb voor deze open-source gateway is de update taak in de cronjob uit te zetten en, als je een update wilt draaien Mollie even uit te zetten. We hebben voor onze betaalde addons wel een oplossing voor gevonden, maar helaas zit daar een heel build-proces aan vast die ik niet kan porteren naar hier.

Korte uitleg:
Als u de cron aanpast naar cron.php skip --CheckForWhmcsUpdate dan zal de cron.php alles doen, behalve WHMCS updates checken. Als u vervolgens een WHMCS update wilt doen, moet u even de modules/gateway/mollie folder en file van naam veranderen (naar bijv. mollie_tijdelijk) en dan zal het naar behoren functioneren. Na de update kunt u het dan terug aanpassen en dan zal 't werken.

@ExchequerNL
Copy link

Inderdaad exact hetzelfde probleem!

Nu ben ik geen developer dus vermoedelijk zie ik iets over het hoofd maar als de desbetreffende guzzle library in WHMCS zelf zit ingebakken, waarom wordt er via github dan dezelfde library nog eens meegepakt? Is het dan niet makkelijker om simpelweg te verwijzen naar de 5.3.3 library van WHMCS?

@Wouter0100
Copy link
Member

@ExchequerNL omdat de Mollie library de nieuwe verwacht/eist.

@ExchequerNL
Copy link

Heej wouter. Is het een idee om dit een openstaand probleem te maken? Had niet door dat er alweer een 7.8.2 was. Wie weet bedenkt er iemand ooit nog een oplossing.

@Wouter0100
Copy link
Member

Heb de label bug er aan gehangen, ook al vind ik die niet helemaal appropriate. Het is namelijk geen bug en zit - naar mijn mening - ook niet aan onze kant.

@Wouter0100 Wouter0100 changed the title Dagelijkse cron error? Guzzle TypeError on daily cron Jan 8, 2020
@nbejansen
Copy link

@Wouter0100 kun je hier misschien delen hoe je dit in de betaalde versie hebt opgelost? E.v.t. kan ik een GitHub action schrijven die de build van de open-source versie doet.

@Wouter0100
Copy link
Member

@Nick-Jansen ik heb het opgelost met php-scoper, welke alle dependencies scoped in een aparte namespace.

@dqos
Copy link
Contributor

dqos commented Aug 4, 2020

Vanaf WHMCS 8.0 zou dit opgelost moeten worden (is op dit moment nog in Beta):
https://docs.whmcs.com/Version_8.0_Release_Notes

guzzlehttp/guzzle: 6.5.3 to 7.0.1

@Wouter0100
Copy link
Member

@tamerciaga vreemd. Ze zaten eerst op 5.3.3 (zie changelogs van 7.7, waar ze naar 5.3.3 geupdate zijn). Nu springen ze echter ineens van 6.5.3 naar 7.0.1. Alles in de 6.x range zou al voldoende moeten zijn geweest om deze bug te kunnen sluiten.

Ik heb even een e-mail naar mijn contactpersoon gestuurd, om te vragen wat hier fout gaat.

@Wouter0100
Copy link
Member

Top, ze hebben de docs aangepast. Staat nu guzzlehttp/guzzle: 5.3.3 to 7.0.1.

@SvenVanRukven
Copy link
Contributor

@Wouter0100 waneer een update voor whmcs 8.0.0 verwachten, krijg bij 8.0.0 Beta3 deze error.

Error: Undefined class constant 'MAJOR_VERSION' in /home/u32497p6xxxx/domains/xxxx.com/public_html/vendor/guzzlehttp/guzzle/src/Utils.php:121 Stack trace: #0 /home/u32497p6xxxx/domains/xxxx.com/public_html/vendor/guzzlehttp/guzzle/src/functions.php(61): GuzzleHttp\Utils::defaultUserAgent() #1 /home/u32497p6xxxx/domains/xxxx.com/public_html/modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(194): GuzzleHttp\default_user_agent() #2 /home/u32497p6xxxx/domains/xxxx.com/public_html/modules/gateways/mollie/vendor/guzzlehttp/guzzle/src/Client.php(75): GuzzleHttp\Client->configureDefaults(Array) #3 /home/u32497p6xxxx/domains/xxxx.com/public_html/modules/gateways/mollie/vendor/mollie/mollie-api-php/src/MollieApiClient.php(269): GuzzleHttp\Client->__construct(Array) #4 /home/u32497p6xxxx/domains/xxxx.com/public_html/modules/gateways/mollie/mollie.php(47): Mollie\Api\MollieApiClient->__construct() #5 /home/u32497p6xxxx/domains/xxxx.com/public_html/modules/gateways/mollieideal_devapp.php(21): mollie_link(Array, 'ideal') #6 /home/u32497p6xxxx/domains/xxxx.com/public_html/vendor/whmcs/whmcs-foundation/lib/Module/AbstractModule.php(0): mollieideal_devapp_link(Array) #7 /home/u32497p6xxxx/domains/xxxx.com/public_html/vendor/whmcs/whmcs-foundation/lib/Module/Gateway.php(0): WHMCS\Module\AbstractModule->call('link', Array) #8 /home/u32497p6xxxx/domains/xxxx.com/public_html/vendor/whmcs/whmcs-foundation/lib/Invoice.php(0): WHMCS\Module\Gateway->call('link', Array) #9 /home/u32497p6xxxx/domains/xxxx.com/public_html/viewinvoice.php(0): WHMCS\Invoice->getPaymentLink() #10 {main}

@Wouter0100
Copy link
Member

Interessant. Allicht dat een update van de deps dan het zou kunnen oplossen. We laden zelf namelijk nog 6.x in.

@SvenVanRukven
Copy link
Contributor

SvenVanRukven commented Aug 17, 2020

denk dat ik het tijdelijk effe opgelost heb door de source zip te downloaden en de folder WHMCS-Mollie-Payments-2.10 naar molliepayment te vernoemen en via ssh binnen in die map "composer update" gedaan en ging hij guzzle van 6.3.3 naar 7.01 en alles er om heen updaten. dan de inhoud van src folder naar /modules/gateways en nu werkt het weer geen errors meer op 8.0.0 beta3.

@Wouter0100
Copy link
Member

@DevFuseStudio bedankt voor de oplossing! Dat was inderdaad mijn vermoeden. Zie je een mogelijkheid een PR in te schieten?

Verder m.b.t. je vraag over de WHMCS Mollie Recurring: zou je daarvoor contact op kunnen nemen met [email protected]? We staan daar klaar om al je problemen m.b.t. deze gateway op te lossen. Deze repository is voor de WHMCS Mollie Payments gateway, welke losstaat van WHMCS Mollie Payments.

@Wouter0100
Copy link
Member

Fixed with WHMCS 8 together with WHMCS Mollie Payments version 3.0. Closing for now, but thanks for reporting and all people involved in the discussion! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants