关键字:php、curl、apns、推送、http2
时间:2017年4月
PHP代码
ini_set('display_errors', 1);
$service_url = 'https://api.push.apple.com/3/device/';
$token = '07cd****3217****6289****94999228d7b45339fbafdf08****8f83****499b';
$headers = array();
$header[] = 'apns-topic:com.xxxxx.xxapp'; // bundle-id
$payload = '{"aps":{"alert":"hello","sound":"msg_high.m4a"}}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_SSLCERT, '/var/www/cer.pem'); // HTTP/2推送证书
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, ''); // 证书没有密码
curl_setopt($ch, CURLOPT_URL, $service_url . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HEADER, TRUE); // 显示response头
curl_setopt($ch, CURL_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
结果
HTTP/2 200 apns-id: 5149B14A-0CB2-B045-8EE9-3C21ECB13FBC