IOS苹果购买PHP服务器端验证(订阅购买和一次性购买通用)

// 正式环境验证地址
$ios_verify_url = 'https://buy.itunes.apple.com/verifyReceipt';
// 测试环境验证地址
$ios_sandbox_verify_url = 'https://sandbox.itunes.apple.com/verifyReceipt';


$defaults = array(
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_URL => $ios_sandbox_verify_url,
    CURLOPT_FRESH_CONNECT => 1,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_FORBID_REUSE => 1,
    CURLOPT_TIMEOUT => 60,
    CURLOPT_SSL_VERIFYPEER => FALSE,
    CURLOPT_POSTFIELDS => $receipt // 苹果购买后返回的票据信息
);

$ch       = curl_init();
curl_setopt_array($ch, $defaults);
$result   = curl_exec($ch);
$errno    = curl_errno($ch);
$errmsg   = curl_error($ch);
curl_close($ch);

// 判断时候出错,抛出异常
if ($errno != 0) {
    throw new Exception($errmsg, $errno);
}

$object = json_decode($result);
// 判断返回的数据是否是对象
if (!is_object($object) || !isset($object->status)) {
    throw new Exception('Invalid response data');
}

if($object->status === 0) {
	// 认证成功
    $return = array(
    	'status'             => 1, 
    	'receipt'            => null, 
    	'expires_date_ms'    => null,
        'remote_server_code' => $object->status
    );
    
    if (isset($object->latest_receipt) && !empty($object->latest_receipt)) {
        // 如果是订阅购买,需要将票据保存到数据库中
        // 如果苹果返回了这个值,那么需要同步将这个值更新到数据库中
    }

    if (isset($object->latest_receipt_info) && !empty($object->latest_receipt_info)) {
    	// 获取过期时间
        $last_receipt_info = end($object->latest_receipt_info);
        $expires_date_ms   = $last_receipt_info->expires_date_ms / 1000;
    }

    // 其他操作
} else {
    return array(
    	'status'             => 0, 
    	'receipt'            => null, 
    	'expires_date_ms'    => null,
        'remote_server_code' => $object->status
    );
}

或者

$receipt = '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';
validate_receipt($receipt, false);
function validate_receipt($receipt_data, $sandbox_receipt = FALSE) {
    if ($sandbox_receipt) {
        $url = "https://sandbox.itunes.apple.com/verifyReceipt";
    }
    else {
        $url = "https://buy.itunes.apple.com/verifyReceipt";
    }
    $ch = curl_init($url);
    $data_string = json_encode(array(
        'receipt-data' => $receipt_data,
        'password' => '501692890fec42cab66dfc10d3b7xxxx',//订阅购买需要认证密码
    ));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
    );
    $output = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if (200 != $httpCode) {
        die("Error validating App Store transaction receipt. Response HTTP code $httpCode");
    }

    $decoded = json_decode($output, TRUE);
    var_dump($decoded);exit; 
}

  

转载于:https://www.cnblogs.com/adtuu/p/4670354.html

你可能感兴趣的:(IOS苹果购买PHP服务器端验证(订阅购买和一次性购买通用))