嘗試以下,使用證書文件,而不是它的內容和去除PKSC7_NOATTR,因爲通過iOS 6.1.1的,簽名應包含簽約日期。
openssl_pkcs7_sign($path . "/manifest.json",
$path . "/signature",
'file://' . $fullPathTo . 'certs/certificate.pem',
array('file://' . $fullPathTo . $privKey, $keyPassword),
array(),
PKCS7_BINARY|PKCS7_DETACHED,
$fullPathTo . $wwdr);
openssl_pkcs7_sign
創建一個電子郵件attachement,所以你還需要提取簽名部分,因爲這是所有.pkpass束需求。
// Read the signature file
$email = file_get_contents($path . "/signature");
// Extract the signature using a regex
$pattern = "/.*?Content-Disposition: attachment; filename=\".*?\"(.*?)-----.*?/sm";
preg_match_all($pattern, $email, $signature);
// Base64 encode the part of result we need
$signature = base64_decode($signature[1][0]);
// Write contents to a new signature file
file_put_contents ($path . "/signature", $signature);
如果仍然不提取,檢查你的證書是有效的通行證類型ID證書,你的私鑰是正確的爲您的證書。你甚至可能想檢查你的PHP日誌來驗證openssl_pkcs7_sign
命令是否正確執行。
更新
當我嘗試你.pkpass包添加到存摺,我得到的設備控制檯下面的錯誤。
<Warning>: Invalid data error reading pass pass.datafarms.peppermints/123456. Manifest JSON didn't parse: The operation couldn’t be completed. (Cocoa error 3840.)
你的簽名文件看起來不錯,錯誤在於你的代碼,該代碼計算SHA1哈希和建設manifest.json
看着你.pkpass包,你的表現在兩個方面腐敗的一部分:
- 它包含多個對象
- 的SHA1值不匹配,該文件的內容
對於這個.pkpass捆綁,你的manifest.json的應該是:
{
"strip.png" : "f95387c0843a51dac73f1b0a3181da9c99ba3dc4",
"[email protected]" : "f325a97fc6bafbe53a5e8feb7b2c509a8ceb6b10",
"[email protected]" : "7b7b025774128b95e50f2bcda55e608412e95a37",
"[email protected]" : "68b61c27657a0018da71c7f73626c8a891da753c",
"icon.png" : "6b15fa477ece83fdd4f544a2381444272a0e39a0",
"logo.png" : "7cf1d842afde33c4b14978f330cf98d05c3e57f2",
"pass.json" : "971417ec80638736cb3392d6d5db53d554f138a4",
}
但是目前我們:
{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]png" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}{
"strip.png" : "156b528933284a0a58fc316897e1b7d202dfe3e8",
"[email protected]" : "99f5dc1a0c5ed300193f87e42d8632f7251a3f26",
"[email protected]" : "f36816f173aa9011186b80b140dfc49395d31051",
"[email protected]" : "c10dd92e6c043c4bcf6214251d6fcb2a760cd9ad",
"icon.png" : "d181ad4208e06afb63d5e6049a40521b458da19d",
"logo.png" : "81c27284f77a447375ba39fb2f0005eeaccf28d8",
"pass.json" : "e5960e9004d5fff241d77415413d609f47d7b2fb",
}
你是否正確使用WWDR獲取數據? – 2013-03-22 04:06:23
我應該得到它有什麼不同嗎? – caycehouse 2013-03-22 04:08:44
結帳這個https://github.com/tschoffelen/PHP-PKPass/blob/master/src/PKPass.php – 2013-03-22 04:08:48