<?php
/**
 * Created by PhpStorm.
 * User: varun_2
 * Date: 30-01-2016
 * Time: 17:30
 */

namespace App\Http\Controllers\Action;



//
//class itunesReceiptValidator
//{
//    const SANDBOX_URL    = 'https://sandbox.itunes.apple.com/verifyReceipt';
//    const PRODUCTION_URL = 'https://buy.itunes.apple.com/verifyReceipt';
//
//    function __construct($endpoint, $receipt = NULL) {
//        $this->setEndPoint($endpoint);
//
//        if ($receipt) {
//            $this->setReceipt($receipt);
//        }
//    }
//
//    function getReceipt() {
//        return $this->receipt;
//    }
//
//    function setReceipt($receipt) {
//        if (strpos($receipt, '{') !== false) {
//            $this->receipt = base64_encode($receipt);
//        } else {
//            $this->receipt = $receipt;
//        }
//    }
//
//    function getEndpoint() {
//        return $this->endpoint;
//    }
//
//    function setEndPoint($endpoint) {
//        $this->endpoint = $endpoint;
//    }
//
//    function validateReceipt() {
//        $response = $this->makeRequest();
//
//        $decoded_response = $this->decodeResponse($response);
//
//        if (!isset($decoded_response->status) || $decoded_response->status != 0) {
////            throw new Exception('Invalid receipt. Status code: ' . (!empty($decoded_response->status) ? $decoded_response->status : 'N/A'));
//            \Log::notice('Invalid receipt. Status code: ' . (!empty($decoded_response->status) ? $decoded_response->status : 'N/A')) ;
//            return false ;
//        }
//
//        if (!is_object($decoded_response)) {
//            \Log::notice("Invalid response data");
////            throw new Exception('Invalid response data');
//            return false ;
//        }
//
//        return $decoded_response->receipt;
//    }
//
//    private function encodeRequest() {
//        return json_encode(array('receipt-data' => $this->getReceipt()));
//    }
//
//    private function decodeResponse($response) {
//        return json_decode($response);
//    }
//
//    private function makeRequest() {
//        $ch = curl_init($this->endpoint);
//        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
//        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//        curl_setopt($ch, CURLOPT_POST, true);
//        curl_setopt($ch, CURLOPT_POSTFIELDS, $this->encodeRequest());
//
//        $response = curl_exec($ch);
//        $errno    = curl_errno($ch);
//        $errmsg   = curl_error($ch);
//        curl_close($ch);
//
//        if ($errno != 0) {
//            \Log::error("Itunes Curl Error; Message: $errmsg \t Error: $errno");
//        }
//
//        return $response;
//    }
//}