IOS苹果AppStore内购付款的服务器端php验证方法(使用thinkphp)(apple商店付款)奔走相告

随心笔谈9个月前发布 admin
73 0

function validate_apple_pay($receipt_data){

function acurl($receipt_data, $sandbox=0){
//小票信息
$POSTFIELDS=array(“receipt-data”=> $receipt_data);
$POSTFIELDS=json_encode($POSTFIELDS);

//正式购买地址 沙盒购买地址
$url_buy=”https://buy.itunes.apple.com/verifyReceipt”;
$url_sandbox=”https://sandbox.itunes.apple.com/verifyReceipt”;
$url=$sandbox ? $url_sandbox : $url_buy;

//简单的curl
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
// 验证参数
if (strlen($receipt_data)<20){
$result=array(
‘status’=>false,
‘message’=>’非法参数’
);
return $result;
}
// 请求验证
$html=acurl($receipt_data);
$data=json_decode($html,true);

// 如果是沙盒数据 则验证沙盒模式
if($data[‘status’]==’21007′){
// 请求验证
$html=acurl($receipt_data, 1);
$data=json_decode($html,true);
$data[‘sandbox’]=’1′;
}

if (isset($_GET[‘debug’])) {
exit(json_encode($data));
}

// 判断是否购买成功
if(intval($data[‘status’])===0){
$result=array(
‘status’=>true,
‘message’=>’购买成功’
);
}else{
$result=array(
‘status’=>false,
‘message’=>’购买失败 status:’.$data[‘status’]
);
}
return $result;
}

© 版权声明

相关文章