PHP 7 Cron Jobs bij SiteGround

Gebruikers van SiteGround weten waarschijnlijk wel dat SiteGround altijd bovenop nieuwe ontwikkelingen zit. Zo hadden ze PHP 7 al vrij snel beschikbaar gesteld aan hun gebruikers. Door een regel op te nemen in een .htaccess  bestand kan PHP 7 eenvoudig geactiveerd worden:

AddHandler application/x-httpd-php70 .php .php5 .php4 .php3

Meer informatie hierover is te vinden op de volgende SiteGround pagina’s:

Voor zover mij bekend werkt dit echter niet voor Cron Jobs die direct de PHP executable aanroepen via bijvoorbeeld:

/usr/local/bin/php /home/username/public_html/wp-cron.php

Nou is het vrij eenvoudig om de PHP 7 executable te gebruiken door bovestaande commando aan te passen:

/usr/local/bin/php70 /home/username/public_html/wp-cron.php

Dit resulteerde bij mij echter in de volgende fout:

Cannot load Zend OPcache - it was already loaded

Reden om even te informeren bij de SiteGround support afdeling:

PHP 7 Cron Jobs bij SiteGround

Helaas werd de chatsessie zomaar beëindigd en heeft SiteGround niet opnieuw contact met me opgenomen. Na een korte zoektocht kwam ik echter zelf een oplossing tegen:

Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -S <addr>:<port> [-t docroot]
   php [options] -- [args...]
   php [options] -a

  -a               Run as interactive shell
  -c <path>|<file> Look for php.ini file in this directory
  -n               No configuration (ini) files will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Door de -n optie toe te voegen aan het commando was de foutmelding verdwenen.

/usr/local/bin/php70 -n /home/username/public_html/wp-cron.php

Mollie Recurring testen betaling blijft pending

Bij Pronamic werken we momenteel hard aan de ondersteuning van Mollie Recurring in de Pronamic iDEAL plugin. Hierbij liepen we tegen het probleem aan dat test incasso betalingen de status pending  bleven houden. We hebben daarom zojuist even geïnformeerd bij Mollie wat we over het hoofd zien:

Hallo Mollie,

We zijn momenteel bezig met de Mollie Recurring API en lopen tegen een probleem aan. De test directdebit betaling blijft de status pending houden terwijl er een valid mandate is:

curl -X GET https://api.mollie.nl/v1/payments/tr_********** -H "Authorization: Bearer test_******************************"
curl -X GET https://api.mollie.nl/v1/customers/cst_**********/mandates/mdt_********** -H "Authorization: Bearer test_******************************"

Zien wij iets over het hoofd?

Het handige van Mollie is dat de API ook eenvoudig via curl  is aan te roepen. In combinatie met tools zoals underscore-cli of jq kun je zo de Mollie API eenvoudig testen.

jq

brew install jq
curl -X GET https://api.mollie.nl/v1/payments/tr_********** -H "Authorization: Bearer test_******************************" | jq

Mollie API test curl jq

underscore-cli

npm install -g underscore-cli
curl -X GET https://api.mollie.nl/v1/payments/tr_********** -H "Authorization: Bearer test_******************************" | underscore print --color

Mollie API test curl underscore

Update maandag 10 oktober

Inmiddels hebben we een reactie gekregen van Mollie:

In de testmodus klopt dit inderdaad. Om recurring te testen kun je dit het beste doen met de Creditcard betaalmethode. Dit zal hetzelfde werken als met SEPA-incasso.

Als er nog vragen zijn, horen wij deze graag. Veel informatie is overigens ook terug te vinden op onze Support-pagina: https://www.mollie.com/nl/support

Het is wel jammer dat dit in testmodus niet correct werkt en Mollie ook geen stappen lijkt te nemen om dit of de documentatie hiervan te verbeteren.