苹果通存折:
我已经实现了pass本身,并希望为服务器端(webserviceUrl)进行更新等通信,我正在使用下面的代码进行调整。我在php方面不是很有经验,所以任何帮助都是很棒的!
在控制台上安装pass时,它与授权代码匹配,似乎正在工作,但下面的代码没有更新我的表。
表:
设备 {DeviceID,push_token}空-
注册 {device_id,pass_id,pass_type}空
还有一个表 pass ,该表由串行、PassID、authtoken和其他有关Passes的信息组成。
<?php
$servername = "hostname";
$username = "user";
$password = "pass";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$request = explode("/", substr(@$_SERVER['REQUEST_URI'], 1));
if (strtoupper($_SERVER['REQUEST_METHOD']) === "POST"
&& isset($_SERVER['HTTP_AUTHORIZATION'])
&& strpos($_SERVER['HTTP_AUTHORIZATION'], 'ApplePass') === 0
&& $request[2] === "devices"
&& $request[4] === "registrations") {
$auth_key = str_replace('ApplePass ', '', $_SERVER['HTTP_AUTHORIZATION']);
$device_id = $request[3];
$pass_id = $request[5];
$serial = $request[6];
// Catch the JSON post and decode it
$dt = @file_get_contents('php://input');
$device_token = json_decode($dt);
$device_token = $device_token->pushToken;
$sql="INSERT INTO Registrations (device_id, pass_id, pass_type) VALUES ('".$device_id."', '".$pass_id."', '".$serial."')";
if ($conn->query($sql) === TRUE) {
echo "y";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
$sql="INSERT INTO Devices (DeviceID, push_token) VALUES ( '".$device_id."', '".$device_token."')";
if ($conn->query($sql) === TRUE) {
echo "y";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
mysql_query($sql,$link);
exit;
}
}}
?>在这一点上,任何输入都将是非常有用的。
发布于 2017-08-25 17:27:17
为任何遇到这件事的人想出办法。我重定向到webserviceurl是错误的。下面是我在.htaccess中的内容--这意味着我的代码本质上没有删除url信息。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [QSA,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]https://stackoverflow.com/questions/45882134
复制相似问题