內(nèi)購(gòu)訂單驗(yàn)證
public function actionInApple(){
$receipt = Yii::$app->request->post('appleReceipt'); //IOS返回的加密數(shù)據(jù)
$transactionId = Yii::$app->request->post('transactionId'); //商品交易號(hào)
$url = 'https://buy.itunes.apple.com/verifyReceipt'; //正式驗(yàn)證地址
//向apple服務(wù)器取得信息
$verifyJson = ['receipt-data' => $receipt]; //IOS驗(yàn)證數(shù)據(jù)格式
$data_string= json_encode($verifyJson); //將數(shù)據(jù)轉(zhuǎn)換為json字符串
$res = self::curl_post_apple($url, $data_string);
$data = json_decode($res, true); //解析ios返回的數(shù)據(jù)
//如果返回狀態(tài)值為21007,請(qǐng)求ios的測(cè)試驗(yàn)證地址
//根據(jù)產(chǎn)品需求,可以不進(jìn)行測(cè)試地址驗(yàn)證
if(isset($data['status']) && $data['status']===21007){
$url = 'https://sandbox.itunes.apple.com/verifyReceipt'; //測(cè)試驗(yàn)證地址
$res = self::curl_post_apple($url, $post_string);
$data = json_decode($res, true);
}
//狀態(tài)值為0,數(shù)據(jù)驗(yàn)證通過(guò)
if(isset($data['status']) && $data['status'] === 0){
//驗(yàn)證商品交易號(hào)是否一致
if($transactionId != $item['transaction_id'] ){
return false;
}
}
}
//通過(guò)curl請(qǐng)求ios服務(wù)器
private static function curl_post_apple($url, $data_string){
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL, $url);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_handle,CURLOPT_HEADER, 0);
curl_setopt($curl_handle,CURLOPT_POST, true);
curl_setopt($curl_handle,CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($curl_handle);
curl_close($curl_handle);
return $response;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者