ios内购二次认证服务器代码

本文介绍了一种使用PHP语言实现的iTunes收据验证方法。通过向Apple提供的验证服务器发送POST请求来检查购买收据的有效性。该脚本支持正式环境与沙箱环境的切换,并能自动处理验证状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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);
 
?>

转载于:https://www.cnblogs.com/iapp/p/3631889.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值