et-soft/php-apns

面向对象的PHP苹果推送通知集成库

v0.0.10 2016-11-28 14:33 UTC

This package is auto-updated.

Last update: 2024-08-29 04:09:08 UTC


README

PHP苹果推送通知服务库

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

安装

使用composer安装PHP APNS

composer require jwage/php-apns

生成Safari通知包

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

如果需要设置中间证书,例如:AppleWWDRCA.pem(自2016年2月14日起)。在构造函数PackageGenerator中添加路径

...
$packageGenerator = new PackageGenerator(
    $certificate, '/base/pushPackage/path', 'yourdomain.com', '/path/to/AppleWWDRCA.pem'
);
...

如果您有AppleWWDRCA.cer,并希望将其转换为PEM格式。请尝试在UNIX控制台中调用此命令

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