我正在编写php代码,以便向多个iphone设备发送推送通知。。当我执行php代码时,我收到警告消息在线下中
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
像
Warning: pack() [function.pack]: Type H: illegal hex digit in /myapp.com/pushgrams/pushtest.php on line 39
有人能告诉我如何解决这个问题吗?
这就是Apple推送通知的打包方式:
// APNs packet prepare
function pck($token, $notification, $msg_id = 0, $expiration = 604800) {
$token = str_replace(" ", "", $token);
$pck = pack('CNNnH*', 1, $msg_id, $expiration > 0 ? time() + $expiration : 0, strlen($token) / 2, $token) .
pack('n', strlen($notification)) . $notification;
return $pck;
}
以下是您准备通知的方式:
$m = '{"aps":{"alert":"' . $msg. '","sound":"default"},"acme2":["bang","whiz"],"acme3":["bing","bong"]}';
$p = pck($k, $m);