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

随心笔谈3个月前更新 admin
211 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了一个名为`validate_apple_pay`的函数,用于验证Apple Pay交易的正确性。函数通过发送curl请求来验证购买信息,主要包括以下步骤: 1. **函数定义**:`validate_apple_pay`接收一个参数`$receipt_data`,用于小票信息验证。2. **参数检查**:首先检查`$receipt_data`的长度是否小于20,如果小于20,则返回错误信息。3. **curl请求**:调用`acurl`函数发送curl请求,验证交易信息。`acurl`函数接收`$receipt_data`和一个布尔参数`$sandbox`,分别用于正式购买地址和沙盒验证。4. **沙盒模式处理**:如果响应数据为沙盒模式(status=21007),则重新发送curl请求,并设置`sandbox`字段为'1'。5. **状态判断**:根据验证结果判断购买状态。如果成功(status=0),返回true和成功信息;否则返回false并包含错误信息。 总结:该函数通过curl请求验证Apple Pay交易的合法性和完整性,并支持正式验证和沙盒验证模式。

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;
}

© 版权声明

相关文章