zoukankan      html  css  js  c++  java
  • ios内购二次认证服务器代码

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

  • 相关阅读:
    Jmeter(五十)
    实践理解mysql的联合索引
    ElasticSearch---查询es集群状态、分片、索引
    Java8 函数式接口
    Java8 CompletableFuture
    java8多线程的lambda
    java线程池异步
    InputStream输入流,传输数据不完整
    RestEasy上传文件的工具类
    ElasticSearch---es之Post Filter,聚合后过滤
  • 原文地址:https://www.cnblogs.com/iapp/p/3631889.html
Copyright © 2011-2022 走看看