此類提供了在 Apple iOS 中為 Wallet 創建通行證的功能。它根據 Apple 的文檔創建、簽署通行證並將其打包為.pkpass
文件。
PHP 7.0 或更高版本(也可能適用於舊版本)
PHP ZIP 擴充功能(通常預設安裝)
存取檔案系統以寫入臨時快取文件
只需在專案的根目錄中執行以下命令即可透過 Composer 安裝:
composer require pkpass/pkpass
或加到你的composer.json: "pkpass/pkpass": "^2.0.0"
請查看 Examples/example.php 檔案以取得範例用法。有關 pass 的 JSON 以及如何設定其樣式的更多信息,請查看developers.apple.com 上的文檔。
簡單的例子
機票範例
星巴克卡範例
addFile
: 新增一個沒有區域設定的文件,如icon.png
addRemoteFile
:從不帶區域設定的 url 新增文件,例如https://xyz.io/icon.png
addLocaleFile
:新增本地化文件,例如strip.png
addLocaleRemoteFile
:從https://xyz.io/strip.png
等 url 新增本地化文件
轉至 iOS 配置入口網站。
建立一個新的通行證類型 ID,並記下您選擇的通行證 ID,稍後您將需要它。
點擊新建立的 Pass Type ID 下方的編輯按鈕,並根據頁面上顯示的說明產生憑證。確保不要為憑證選擇名稱,而是將其保留為空白。
下載 .cer 檔案並將其拖曳到 Keychain Access 中。
找到您剛剛匯入的證書,然後點擊左側的三角形以顯示私鑰。
選擇憑證及其私鑰,然後右鍵單擊“鑰匙圈存取”中的憑證並選擇Export 2 items…
。
選擇密碼並將檔案匯出到資料夾。
當您收到錯誤「無法讀取憑證檔案」。這可能與使用已棄用一些舊雜湊值的 OpenSSL 版本有關。更多資訊請參閱:https://schof.link/2Et6z3m OpenSSL 錯誤:錯誤:0308010C:數位信封程式::不支援' 這是由於 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
(在下面的 pass 產生中使用新產生的 key_new.p12 檔案)
如上所述請求 Pass 憑證 ( .p12
) 並將其上傳到您的伺服器。
在第 22 行設定正確的路徑和密碼。
將第 29 行和第 31 行的passTypeIdentifier
和teamIndentifier
改為正確的值( teamIndentifier
可以在開發者入口網站上找到)。
完成這些步驟後,您應該可以開始了。將所有檔案上傳到您的伺服器並導航到 iPhone 上的 Examples/example.php 檔案的位址。
如果您無法在 iPhone 上開啟通行證,請將 iPhone 插入 Mac 並開啟「控制台」應用程式。在左側,您可以選擇您的 iPhone。然後,您將能夠檢查添加通行證時發生的任何錯誤:
Trust evaluate failure: [leaf TemporalValidity]
:如果您看到此錯誤,則表示您的通證是使用過時的憑證簽署的。
Trust evaluate failure: [leaf LeafMarkerOid]
:您在開發人員入口網站中建立憑證時未將憑證名稱留空。
版本 2.1.0 - 2023 年 4 月
增加提取 P12 內容的替代方法,以避免最新版本的 OpenSSL 中的問題。
版本 2.0.2 - 2022 年 10 月
由於 PHP 8 棄用,切換到ZipArchive::OVERWRITE
方法來開啟 ZIP (#120)。
版本 2.0.1 - 2022 年 10 月
將 WWDR 憑證更新為 v6 (#118)。
版本 2.0.0 - 2022 年 9 月
更改了建構函數的簽名以取出第三個$json
參數。
刪除已棄用的setJSON()
方法。
刪除了checkError()
和getError()
方法以支援異常。
在提交票證或請求支援之前,請閱讀上述說明並查閱電子錢包文件。也許還值得檢查一下 Stackoverflow,其中包含許多有關該庫的問題。
獲得此軟體包的專業支援 →
客製化諮詢會議可用於實施支援和功能開發。