Привет, я новичок в ios 7 и php. Я пытался заставить этот класс PHP-PKPass работать с ios 7 он отлично работает с моим браузером Safari. Я могу визуализировать билет, когда пытаюсь загрузить пакет, чтобы добавить его в свою сберегательную книжку. Safari сообщает мне: «Не удается загрузить файл». ://www.rivertechservices.com/passbookpass/index.php" rel="nofollow">пример работы с моими сертификатами я просмотрел журналы телефона, там написано:
Предоставленный идентификатор passTypeIdentifier или teamIdentifier может не соответствовать вашему сертификату, или цепочка доверия сертификата не может быть проверена.
все мои сертификаты работают нормально, json правильный, так как я могу визуализировать его на своем Mac, исследование, которое я провел до сих пор, указывает на то, что пакет необходимо подписать с помощью даты и времени сервера, не применяемого в ios 6, но принудительного в ios 7
кто-нибудь может помочь с добавлением даты и времени подписания прохода с использованием атрибута времени подписи S/MIME через php в текущий класс php?
protected function createSignature($manifest) {
$paths = $this->paths();
file_put_contents($paths['manifest'], $manifest);
$pkcs12 = file_get_contents($this->certPath);
$certs = array();
if(openssl_pkcs12_read($pkcs12, $certs, $this->certPass) == true) {
$certdata = openssl_x509_read($certs['cert']);
$privkey = openssl_pkey_get_private($certs['pkey'], $this->certPass );
if(!empty($this->WWDRcertPath)){
if(!file_exists($this->WWDRcertPath)){
$this->sError = 'WWDR Intermediate Certificate does not exist';
return false;
}
openssl_pkcs7_sign($paths['manifest'], $paths['signature'], $certdata, $privkey, array(), PKCS7_BINARY | PKCS7_DETACHED, $this->WWDRcertPath);
}else{
openssl_pkcs7_sign($paths['manifest'], $paths['signature'], $certdata, $privkey, array(), PKCS7_BINARY | PKCS7_DETACHED);
}
$signature = file_get_contents($paths['signature']);
$signature = $this->convertPEMtoDER($signature);
file_put_contents($paths['signature'], $signature);
return true;
} else {
$this->sError = 'Could not read the certificate';
return false;
}
}