我将PHP与Apple的App Store Connect API结合使用时,我的JTW得到了401/Not授权的返还。
使用php 7.1.3,我尝试了各种库和原始php (代码如下)。我非常确定头部和有效负载都是正常的,问题是使用我从苹果下载的p8私钥文件对其进行了签名。我已经四次检查了kid,iss和私钥文件。
// Create token header as a JSON string
$header = json_encode([
'typ' => 'JWT',
'alg' => 'ES256',
'kid' => '1234567980'
]);
// Create token payload as a JSON string
$payload = json_encode([
'iss' => '12345678-1234-1234-1234-123456789012',
'exp' => time()+60*10, // 20 minute max allowed
'aud' => 'appstoreconnect-v1'
]);
$base64UrlHeader = rtrim(strtr(base64_encode($header), '+/', '-_'), '=');
$base64UrlPayload = rtrim(strtr(base64_encode($payload), '+/', '-_'), '=');
$privateKey = openssl_pkey_get_private('file://'.resource_path('/assets/AppleKey_1234567980.p8'));
$signature = '';
openssl_sign("$base64UrlHeader.$base64UrlPayload", $signature, $privateKey, 'sha256');
// Encode Signature to Base64Url String
$base64UrlSignature = rtrim(strtr(base64_encode($signature), '+/', '-_'), '=');
// Create JWT
$jwt = "$base64UrlHeader.$base64UrlPayload.$base64UrlSignature";当我通过curl提交给Apple时,我得到了一个401/Not Authorized的详细信息“身份验证凭证缺失或无效”,没有更具体的信息。
有没有人用过苹果的App Store Connect API和PHP --谷歌搜索结果很少,我几乎找不到。
发布于 2019-10-29 21:13:49
您可以检查此解决方案。我设法通过身份验证并从appleconnect获取数据。https://stackoverflow.com/a/57150060/860353
https://stackoverflow.com/questions/56300903
复制相似问题