Kelas ini menyediakan fungsionalitas untuk membuat tiket untuk Wallet di iOS Apple. Ini membuat, menandatangani, dan mengemas pass sebagai file .pkpass
sesuai dengan dokumentasi Apple.
PHP 7.0 atau lebih tinggi (mungkin juga berfungsi dengan versi yang lebih lama)
Ekstensi PHP ZIP (sering diinstal secara default)
Akses ke sistem file untuk menulis file cache sementara
Cukup jalankan perintah berikut di direktori root proyek Anda untuk menginstal melalui Composer:
composer require pkpass/pkpass
Atau tambahkan ke composer.json Anda: "pkpass/pkpass": "^2.0.0"
Silakan lihat file example/example.php untuk contoh penggunaan. Untuk informasi selengkapnya tentang JSON untuk pass dan cara mengatur gayanya, lihat dokumen dideveloper.apple.com.
Contoh sederhana
Contoh tiket pesawat
Contoh kartu Starbucks
addFile
: menambahkan file tanpa lokal seperti icon.png
addRemoteFile
: tambahkan file dari url tanpa lokal seperti https://xyz.io/icon.png
addLocaleFile
: tambahkan file lokal seperti strip.png
addLocaleRemoteFile
: tambahkan file yang dilokalkan dari url seperti https://xyz.io/strip.png
Buka portal Penyediaan iOS.
Buat Pass Type ID yang baru, dan tuliskan Pass ID yang kamu pilih, nanti kamu membutuhkannya.
Klik tombol edit di bawah ID Jenis Pass yang baru Anda buat dan buat sertifikat sesuai dengan instruksi yang ditampilkan di halaman. Pastikan untuk tidak memilih nama untuk Sertifikat tetapi tetap mengosongkannya.
Unduh file .cer dan seret ke Akses Rantai Kunci.
Temukan sertifikat yang baru saja Anda impor dan klik segitiga di sebelah kiri untuk menampilkan kunci pribadi.
Pilih sertifikat dan kunci pribadinya, lalu klik kanan sertifikat di Akses Rantai Kunci dan pilih Export 2 items…
.
Pilih kata sandi dan ekspor file ke folder.
Ketika Anda mendapatkan pesan kesalahan 'Tidak dapat membaca file sertifikat. Hal ini mungkin terkait dengan penggunaan versi OpenSSL yang tidak lagi menggunakan beberapa hash lama. Info lebih lanjut di sini: https://schof.link/2Et6z3m Kesalahan OpenSSL: kesalahan:0308010C:rutinitas amplop digital::tidak didukung' ini karena osx mengekspor file .p12 menggunakan OpenSSL versi lama. Untuk memperbaiki masalah ini, gunakan perintah berikut:
openssl pkcs12 -legacy -in key.p12 -nodes -out key_decrypted.tmp
(ganti key.p12 dengan nama file .p12 Anda).
openssl pkcs12 -in key_decrypted.tmp -export -out key_new.p12
(gunakan file key_new.p12 yang baru dibuat dalam pembuatan pass Anda di bawah)
Minta sertifikat Lulus ( .p12
) seperti dijelaskan di atas dan unggah ke server Anda.
Tetapkan jalur dan kata sandi yang benar pada baris 22.
Ubah passTypeIdentifier
dan teamIndentifier
ke nilai yang benar pada baris 29 dan 31 ( teamIndentifier
dapat ditemukan di Portal Pengembang).
Setelah menyelesaikan langkah-langkah ini, Anda harus siap berangkat. Unggah semua file ke server Anda dan navigasikan ke alamat file example/example.php di iPhone Anda.
Jika Anda tidak dapat membuka pass Anda di iPhone, colokkan iPhone ke Mac dan buka aplikasi 'Konsol'. Di sebelah kiri, Anda dapat memilih iPhone Anda. Anda kemudian akan dapat memeriksa kesalahan apa pun yang terjadi saat menambahkan pass:
Trust evaluate failure: [leaf TemporalValidity]
: Jika Anda melihat kesalahan ini, pass Anda ditandatangani dengan sertifikat yang sudah ketinggalan zaman.
Trust evaluate failure: [leaf LeafMarkerOid]
: Anda tidak membiarkan nama sertifikat kosong saat membuatnya di portal pengembang.
Versi 2.1.0 - April 2023
Tambahkan metode alternatif untuk mengekstrak konten P12 untuk menghindari masalah di OpenSSL versi terbaru.
Versi 2.0.2 - Oktober 2022
Beralih ke metode ZipArchive::OVERWRITE
untuk membuka ZIP karena penghentian PHP 8 (#120).
Versi 2.0.1 - Oktober 2022
Perbarui sertifikat WWDR ke v6 (#118).
Versi 2.0.0 - September 2022
Mengubah tanda tangan konstruktor untuk mengambil parameter $json
ketiga.
Hapus metode setJSON()
yang tidak digunakan lagi.
Menghapus metode checkError()
dan getError()
demi pengecualian.
Harap baca instruksi di atas dan lihat Dokumentasi Wallet sebelum mengirimkan tiket atau meminta dukungan. Mungkin ada baiknya juga memeriksa Stackoverflow, yang berisi beberapa pertanyaan tentang perpustakaan ini.
Dapatkan dukungan profesional untuk paket ini →
Sesi konsultasi khusus tersedia untuk dukungan implementasi dan pengembangan fitur.