准备工作:
原文地址:点击打开链接http://blog.csdn.net/tuxiangqi/article/details/17245553
1.到开发者中心,创建app id,选择push notification 功能(game center 和另外一个是必选的)。
2.创建certificates
注意:内部开发,只能是用develpment,producation是测试完了,准备发布到appstore的时候再弄的。
其中按照develop 流程的介绍,会创建一个csr文件(production版本也可以公用这个csr文件),通过 钥匙串(通用菜单里的某个应用)创建,详情见官方vcd4kpha+q2vydglmawnhdgvtawduaw5numvxdwvzdc5jzxj0u2lnbmluz1jlcxvlc3sjrnxiupbkx9fu1txj+rl6s/a1xm7evp48yni+cjwvcd4kpha+my60tl2oy2vydcdoxlz+oao4+b7dtdq2/rk9o6y74bxdtb3su7j2y2vydm7evp6jrgnlcntoxlz+t9ygzgv2us1wcm+w5rg+oapxotliztldx9pdzgv2sulk1koschjvyse3ork8pc9wpgo8cd40lrw8yotjzxj0im7evp7i6yduv7pxtk48l3a+cjxwpjxpbwcgc3jjpq==http://www.bkjia.com/uploadfile/collfiles/20131211/2013121109360487.jpg alt=\>
5.制作 ssl和 私钥 的 pem格式文件(php服务端需要)
a。分别制作ssl(cert文件)和 key(私钥)的p12格式文件,通过导出获得。(注意命名)
b.通过终端shell 输入命令,得到ssl 和 key 的 2个pem 格式的文件,并且将它们合二为一
命令参数如下:
原文地址:点击打开链接http://blog.csdn.net/tuxiangqi/article/details/17245553
cd 存放文件夹的路径
openssl pkcs12 -clcerts -nokeys -out 输出文件名.pem -in 原文件的名字例如ssl(cert文件).p12 (将sslcert文件从p12变为pem)
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12 (将key.p12 文件变为 pem,这里会提示一定要设置 私钥的解压密码,至少4位,你输入即可)
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem (这个命令是将私钥刚才设置的 至少4位密码 去除,如果你想保留也可以,但是需要和php服务端的同事说明下)
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (这个命令是将 ssl 和私钥 编译为一个文件pem 命名可以自己改)
下面是从网上找到的其他资源,关于php服务器的设置
array(alert => message123gggg32323333, badge => 1, sound=>'default')); //推送方式,包括了提示内容,提示方式和提示声音。 $ctx = stream_context_create(); //如果在windows的服务器上,寻找pem路径会有问题,路径修改成这样的方法: $pem = !empty($this->cfg['isga']) && $this->cfg['isga'] == 2?'apns-dev.pem':'apns-dev.pem'; //临时全部为开发状态 stream_context_set_option($ctx, 'ssl', 'local_cert', /data/web/cert/.$pem); //linux 的服务器直接写pem的路径即可 stream_context_set_option($ctx, 'ssl', 'local_cert', /data/web/cert/.$pem); //如果你的pem存有密码,需要加一个密码登陆语句 stream_context_set_option($ctx, 'ssl', 'passphrase', ''); //如果你的pem存有密码,需要加一个密码登陆语句 //$pass = ”123123“; //stream_context_set_option($ctx, ‘ssl’, ‘passphrase’, $pass); //此处有两个服务器需要选择,如果是开发测试用,选择第二名sandbox的服务器并使用dev的pem证书,如果是正是发布,使用product的pem并选用正式的服务器 $fp = stream_socket_client(ssl://gateway.push.apple.com:2195, $err, $errstr, 60, stream_client_connect, $ctx); $fp = stream_socket_client(ssl://gateway.sandbox.push.apple.com:2195, $err, $errstr, 60, stream_client_connect, $ctx); if (!$fp) { print_r(failed to connect $err $errstrn); return; } print_r(connection ok\n); $payload = json_encode($body); $msg = chr(0).pack(n, 32).pack('h*', str_replace(' ', '', $devicetoken)).pack(n,strlen($payload)).$payload; print_r(sending message :.$payload.\n); fwrite($fp, $msg); fclose($fp);?>
差不多这里弄好了,你就可以 按照其他 的服务器 教程去弄了。。。网上很多。
当然,你的
关于 和php 服务器交互这块,到这里就结束了
http://www.bkjia.com/phpjc/621632.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/621632.htmltecharticle今天终于完完全全的搞明白了,apns 推送前,客户端的准备工作需要那一些。如果有错误的地方,欢迎大神指出来。 准备工作: 原文地址:...
