ios — сгенерированный PHP пароль не устанавливается в кошелек на iPhone

Я использую это passgenerator библиотека для генерации .pkpass который должен быть установлен на яблочном кошельке на iPhone. .pkpass Файл успешно создан, но его нельзя добавить в «кошелек» на iPhone. Он даже не отображает никаких ошибок при попытке открыть этот файл из вложения электронной почты.
Когда я открываю его с помощью «Pass Viewer» на Mac, он показывает некоторую ошибку в области штрих-кода. Вот скриншот;

купон

Я не знаю, где я делаю что-то не так. Я использую laravel 5.1, и я правильно запросил этот пакет, а также в качестве документации попросил установить переменные среды для установки путей сертификатов.

CERTIFICATE_PATH= './assets/certificates/PassCertificate.p12'
CERTIFICATE_PASS= "mypassword"WWDR_CERTIFICATE='./assets/certificates/WWDRCA.pem'

Вот мой код контроллера, где я устанавливаю его конфигурации в формате json.

public function index(PassGenerator $pass)
{
$pass_identifier = 'testPkPass';  // This, if set, it would allow for retrieval later on of the created Pass
$pkpass = $pass->getPass($pass_identifier);
if (!$pkpass) {
$pkpass = $this->createWalletPass($pass_identifier);
}
$path = storage_path().'/app/passgenerator/'.$pass_identifier.'.pkpass';
return Response::download($path, $pass_identifier.'.pkpass', [
'Content-Transfer-Encoding' => 'binary',
'Content-Description' => 'File Transfer',
'Content-Disposition' => 'attachment; filename="myTestingPass.pkpass"',
'Content-length' => strlen($pkpass),
'Content-Type' => PassGenerator::getPassMimeType(),
'Pragma' => 'no-cache',
]);
}

private function createWalletPass($pass_identifier)
{

$pass = new PassGenerator($pass_identifier);

$pass_definition = [
"description"       => "description",
"formatVersion"     => 1,
"organizationName"  => "Black Book",
"passTypeIdentifier"=> "pass.biz.myIdentifier.coupon",
"serialNumber"      => "123456",
"teamIdentifier"    => "xyz",
"foregroundColor"   => "rgb(255, 255, 255)",
"backgroundColor"   => "rgb(44, 49, 51)",
"barcode" => [
"message"   => "encodedmessageonQR",
"format"    => "PKBarcodeFormatQR",
"altText"   => "altextfortheQR",
"messageEncoding"=> "utf-8",
],
"coupon" => [
"headerFields" => [
[
"key" => "header",
"label" => "Value",
"value" => "30%"]
],
"secondaryFields" => [
[
"key" => "welcome",
"label" => "",
"value" => "Welcome valued customer!"],
[
"key" => "date",
"label" => "EXPIRES",
"value" => "2016/06/29"]
],
"backFields" => [
[
"key" => "terms",
"label" => "Terms & Conditions",
"value" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."], [
"key" => "contact",
"label" => "Contact Us",
"value" => "[Contact-us] Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco."],
],
],
];

$pass->setPassDefinition($pass_definition);

// Add assets to the PKPass package
$pass->addAsset(base_path('public/assets/wallet/background.png'));
$pass->addAsset(base_path('public/assets/wallet/thumbnail.png'));
$pass->addAsset(base_path('public/assets/wallet/icon.png'));
$pass->addAsset(base_path('public/assets/wallet/logo.png'));

$pkpass = $pass->create();
return $pkpass;
}

Любая помощь могла бы быть полезна. Пожалуйста, дайте мне знать, если я делаю что-то не так с конфигурацией или где-то еще.

0

Решение

У вас проблема с вашей подписью.

Aug  5 16:38:36 pfr MobileSafari(PassKitCore)[2017] <Notice>: Error evaluating trust: <private>
Aug  5 16:38:36 pfr MobileSafari(PassKitCore)[2017] <Notice>: Signature validation: *** FAILED ***
Aug  5 16:38:36 pfr MobileSafari(PassKitCore)[2017] <Fault>: Invalid data error reading pass <private>. <private>
Aug  5 16:38:36 pfr MobileSafari(PassKitCore)[2017] <Notice>: Invalid data error reading pass <private>. <private>
Aug  5 16:38:36 pfr MobileSafari[2017] <Notice>: PassBook Pass download failed: The pass cannot be read because it isn't valid.

Вы pass.json имеет идентификатор команды "teamIdentifier":"5w2h"

Согласно вашему файлу подписи, идентификатор вашей команды WY92JHSJ83. Исправьте идентификатор вашей команды и попробуйте снова.

Также вы можете оставить свой background.png а также thumbnail.png так как они не являются действительными изображениями для формата купона.

1

Другие решения

Других решений пока нет …