2016-09-08 25 views
2

我正在使用expiredate参数传递php。我想使用Apple推送通知更新通行证。根据Passbook文档,您需要使用Apple推送通知服务从iOS设备触发提款以更新存折。如何使用PHP中的推送通知更新Apple Wallet通行证

+0

如果您正在寻找复制/粘贴代码,那么你来错了地方。这些文件非常清晰,我建议你自己尝试一下,如果遇到困难,请回到特定的编程问题。 – PassKit

+0

你在问什么?您的声明“根据Passbook文档,您需要使用Apple推送通知服务触发iOS设备的拉取操作,以便更新Passbook。”是正确的。 – PassKit

+0

也有很多解决你的问题的答案。 http://stackoverflow.com/questions/15877496/how-to-make-a-push-notification-for-a-pass,http://stackoverflow.com/questions/34310956/update-passes-of-passbook。 – PassKit

回答

0

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

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

的certificates.pem是您用来登录您的传中扩展名为.p12相同的证书。所以,你需要使用下面的代码

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

根据本教程https://www.raywenderlich.com/123862/push-notifications-tutorial#comments来导出为.pem。

+0

它目前是否在您的服务器上运行并通过推送更新传递?因为我已经尝试了这一点,并没有在我身边工作。有什么建议么? –

+0

@tahirwaseer对不起,这不是正确的答案。请试试这个http://stackoverflow.com/questions/39849883/cant-push-notification-to-apns-to-update-my-pass-in-apple-wallet?noredirect=1#comment66998009_39849883 –

+0

谢谢@Hoang Trung 。我会尝试的。 –