This library will send push notifications to Apple as fast as possible, and report any bad tokens.
Inspired by this StackOverflow post:
http://stackoverflow.com/a/18491136/1569360
... and careful reading of 'Troubleshooting Push Notifications' here:
Example Usage:
$payload = array(
'aps' => array(
'alert' => 'some alert',
),
);
$tokens = array(
'ca360e9029938b9ed8ed435640f3760620526bd72037017d3c50cfa264b7914f',
'ca360e9029938b9ed8ed435640f3760620526bd72037017d3c50cfa264b79150',
'ca360e9029938b9ed8ed435640f3760620526bd72037017d3c50cfa264b79151',
'ca360e9029938b9ed8ed435640f3760620526bd72037017d3c50cfa264b79152',
'ca360e9029938b9ed8ed435640f3760620526bd72037017d3c50cfa264b79153',
);
$expiry = (new \DateTime('+24 hours'))->getTimestamp();
$client = FastAPNS\ClientBuilder::create()
->setLocalCert(__DIR__ . '/ssl/MyAppCertificate.includesprivatekey.pem')
->setPassphrase('p@ssword')
->build();
$client->send($payload, $tokens, $expiry);
var_dump($client->getBadTokens());
Ensure that your APNS certificate is encoded in PEM format and includes the private key. This file should be set to mode 0400.
END