如何使用PHP中的推送通知更新Apple Wallet传递

时间:2016-09-08 10:15:21

标签: laravel-5 apple-push-notifications passbook wallet

我正在使用expiredate参数在php中传递。我想使用Apple推送通知更新传递。根据Passbook文档,您需要使用Apple推送通知服务来触发iOS设备的拉取以更新Passbook。

1 个答案:

答案 0 :(得分:0)

这是我将PHP通知推送到APNS的PHP代码。你可以参考。

$apnsHost = 'gateway.push.apple.com';
$apnsPort = 2195;
$apnsCert = base_path('certificates.pem');
$push_token = 'device token';
$passIdentify = 'pass indentify';

$payload = '{}';
$msg = chr(0) . pack('n', 32) . pack('H*', $push_token) . pack('n', strlen($payload)) . $payload . pack('n', strlen($passIdentify)) . $passIdentify;

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

fwrite($apns, $msg);

@socket_close($apns);
fclose($apns);

certificate.pem与用于在.p12扩展名中签名传递的证书相同。因此,您需要使用以下代码将其导出到.pem

$ cd ~/Desktop
$ openssl pkcs12 -in WenderCastPush.p12 -out WenderCastPush.pem -nodes -clcerts

根据本教程https://www.raywenderlich.com/123862/push-notifications-tutorial#comments