PHP Apple Push Notification Service Library
Install PHP APNS using composer:
composer require jwage/php-apns
use JWage\APNS\Certificate;
use JWage\APNS\Safari\PackageGenerator;
$certificate = new Certificate(file_get_contents('apns.p12'), 'certpassword');
$packageGenerator = new PackageGenerator(
$certificate, '/base/pushPackage/path', 'yourdomain.com'
);
// returns JWage\APNS\Safari\Package instance
$package = $packageGenerator->createPushPackageForUser('userid');
// send zip file to the browser
echo $package->getZipPath();
If you need set Intermediate Certificate, example: AppleWWDRCA.pem (since 14 Feb 2016). Add path in constructor PackageGenerator:
...
$packageGenerator = new PackageGenerator(
$certificate, '/base/pushPackage/path', 'yourdomain.com', '/path/to/AppleWWDRCA.pem'
);
...
If you have AppleWWDRCA.cer, and you want to get PEM format. Try to call this command in UNIX console:
openssl x509 -in AppleWWDRCA.cer -inform DER -out AppleWWDRCA.pem -outform PEM
use JWage\APNS\Certificate;
use JWage\APNS\Client;
use JWage\APNS\Sender;
use JWage\APNS\SocketClient;
$certificate = new Certificate(file_get_contents('apns.pem'));
$socketClient = new SocketClient($certificate, 'gateway.push.apple.com', 2195);
$client = new Client($socketClient);
$sender = new Sender($client);
$sender->send('devicetoken', 'Title of push', 'Body of push', 'http://deeplink.com');