이 클래스는 Apple iOS에서 Wallet에 대한 패스를 생성하는 기능을 제공합니다. Apple 설명서에 따라 패스를 .pkpass
파일로 생성, 서명 및 패키징합니다.
PHP 7.0 이상(이전 버전에서도 작동 가능)
PHP ZIP 확장(종종 기본으로 설치됨)
임시 캐시 파일을 쓰기 위해 파일 시스템에 액세스
Composer를 통해 설치하려면 프로젝트의 루트 디렉터리에서 다음 명령을 실행하기만 하면 됩니다.
composer require pkpass/pkpass
또는 작곡가.json에 "pkpass/pkpass": "^2.0.0"
추가하세요.
예제 사용법은 example/example.php 파일을 살펴보세요. 패스용 JSON 및 스타일 지정 방법에 대한 자세한 내용은 개발자.apple.com의 문서를 참조하세요.
간단한 예
항공권 예
스타벅스 카드 예시
addFile
: icon.png
와 같이 로케일 없이 파일을 추가합니다.
addRemoteFile
: https://xyz.io/icon.png
와 같이 로케일이 없는 URL에서 파일을 추가합니다.
addLocaleFile
: strip.png
와 같은 현지화된 파일을 추가합니다.
addLocaleRemoteFile
: https://xyz.io/strip.png
와 같은 URL에서 현지화된 파일을 추가합니다.
iOS 프로비저닝 포털로 이동합니다.
새 패스 유형 ID를 만들고 선택한 패스 ID를 적어 두세요. 나중에 필요합니다.
새로 생성된 패스 유형 ID 아래의 편집 버튼을 클릭하고 페이지에 표시된 지침에 따라 인증서를 생성하세요. 인증서 이름을 선택 하지 말고 대신 비워 두십시오.
.cer 파일을 다운로드하여 키체인 접근으로 드래그합니다.
방금 가져온 인증서를 찾아 왼쪽의 삼각형을 클릭하면 개인 키가 표시됩니다.
인증서와 개인 키를 모두 선택한 다음 키체인 접근에서 인증서를 마우스 오른쪽 버튼으로 클릭하고 Export 2 items…
선택합니다.
비밀번호를 선택하고 파일을 폴더로 내보냅니다.
'인증서 파일을 읽을 수 없습니다.' 오류가 발생하는 경우 이는 일부 이전 해시가 더 이상 사용되지 않는 OpenSSL 버전을 사용하는 것과 관련이 있을 수 있습니다. 자세한 내용은 여기를 참조하세요: https://schof.link/2Et6z3m OpenSSL 오류: 오류:0308010C:digital 봉투 루틴::지원되지 않음' 이는 osx가 이전 버전의 OpenSSL을 사용하여 .p12 파일을 내보내기 때문에 발생합니다. 이 문제를 해결하려면 다음 명령을 사용하십시오.
openssl pkcs12 -legacy -in key.p12 -nodes -out key_decrypted.tmp
(key.p12를 .p12 파일 이름으로 바꾸십시오).
openssl pkcs12 -in key_decrypted.tmp -export -out key_new.p12
(아래 패스 생성에서 새로 생성된 key_new.p12 파일 사용)
위에서 설명한 대로 패스 인증서( .p12
)를 요청하고 서버에 업로드하세요.
22번째 줄에 올바른 경로와 비밀번호를 설정하세요.
passTypeIdentifier
및 teamIndentifier
29행과 31행에서 올바른 값으로 변경합니다( teamIndentifier
개발자 포털에서 찾을 수 있음).
이 단계를 완료하고 나면 시작할 준비가 된 것입니다. 모든 파일을 서버에 업로드하고 iPhone에서 example/example.php 파일 주소로 이동하세요.
iPhone에서 패스를 열 수 없는 경우 iPhone을 Mac에 연결하고 '콘솔' 애플리케이션을 엽니다. 왼쪽에서는 iPhone을 선택할 수 있습니다. 그러면 패스를 추가하는 동안 발생하는 모든 오류를 검사할 수 있습니다.
Trust evaluate failure: [leaf TemporalValidity]
: 이 오류가 표시되면 패스가 오래된 인증서로 서명된 것입니다.
Trust evaluate failure: [leaf LeafMarkerOid]
: 개발자 포털에서 인증서를 생성하는 동안 인증서 이름을 비워 두지 않았습니다.
버전 2.1.0 - 2023년 4월
최신 버전의 OpenSSL에서 발생하는 문제를 피하기 위해 P12 콘텐츠를 추출하는 대체 방법을 추가합니다.
버전 2.0.2 - 2022년 10월
PHP 8 지원 중단으로 인해 ZIP을 여는 ZipArchive::OVERWRITE
메서드로 전환합니다(#120).
버전 2.0.1 - 2022년 10월
WWDR 인증서를 v6(#118)으로 업데이트합니다.
버전 2.0.0 - 2022년 9월
세 번째 $json
매개변수를 가져오도록 생성자의 서명을 변경했습니다.
더 이상 사용되지 않는 setJSON()
메서드를 제거합니다.
예외를 위해 checkError()
및 getError()
메서드를 제거했습니다.
티켓을 제출하거나 지원을 요청하기 전에 위의 지침을 읽고 지갑 문서를 참조하세요. 이 라이브러리에 대한 몇 가지 질문이 포함된 Stackoverflow를 확인하는 것도 가치가 있을 수 있습니다.
이 패키지에 대한 전문적인 지원을 받으세요 →
구현 지원 및 기능 개발을 위한 맞춤형 컨설팅 세션이 제공됩니다.