<?php // 获取认证结果的状态值 function get_status($arr) { while(list($key, $value) = each($arr)) { if ($key == "status") { return $value; } } return 10000; } // 认证 function verify($check_data, $is_sandbox = 0) { $url = "https://buy.itunes.apple.com/verifyReceipt"; // sanbox购买 if ($is_sandbox != 0) { $url = "https://sandbox.itunes.apple.com/verifyReceipt"; } $curl = curl_init(); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_HEADER, "Content-type : application/json"); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POSTFIELDS, $check_data); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 300); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $handle = curl_exec($curl); curl_close($curl); // 如果从商店验证失败,则尝试使用Sandbox认证 if(get_status(json_decode($handle, true)) != 0 && $is_sandbox == 0) { verify($check_data, 1); } else { echo $handle; } } $receiptData = json_encode(array("receipt-data" => file_get_contents("php://input"))); verify($receiptData); ?>