Skip to content

Latest commit

 

History

History
68 lines (47 loc) · 2.38 KB

README.md

File metadata and controls

68 lines (47 loc) · 2.38 KB

PHP APNS

PHP Apple Push Notification Service Library

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version Total Downloads Dependency Status

Install

Install PHP APNS using composer:

composer require jwage/php-apns

Generate Safari Notification Package

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

Sending Notifications

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');