| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <?php
 
- class Stripe{
 
- 	const ENDPOINT = 'https://api.stripe.com/v1';
 
- 	
 
- 	public $key = null,$currency='eur';
 
- 	function __construct($key=null){
 
- 		$this->key = $key;
 
- 	}
 
- 	public  function customer($token,$description = '',$mail = ''){
 
- 		$data = array();
 
- 		$data['source'] = $token;
 
- 		$data['description'] = $description;
 
- 		$data['email'] = $mail;
 
- 		
 
- 		$data = http_build_query ($data);
 
- 		$response = self::rest(self::ENDPOINT.'/customers',$this->key.':',$data, 'POST');
 
- 	
 
- 		if(isset($response['error'])) throw new Exception("[".$response['error']['type']."] : ".$response['error']['message']);
 
- 		return $response['id'];
 
- 	}
 
- 	public function pay($token,$amount,$description = '',$customerDescription=''){
 
- 		$customer = $this->customer($token,$customerDescription);
 
- 		$data = array();
 
- 		$data['amount'] = $amount*100;
 
- 		$data['currency'] = isset($this->currency) ? $this->currency : 'eur';
 
- 		$data['customer'] = $customer;
 
- 		$data['description'] = $description;
 
- 		
 
- 		$data = http_build_query ($data);
 
- 		$response = self::rest(self::ENDPOINT.'/charges',$this->key.':',$data, 'POST');
 
- 		
 
- 		if(isset($response['error'])) throw new Exception("[".$response['error']['type']."] : ".$response['error']['message']);
 
- 		return $response;
 
- 	}
 
- 	public static function rest($url,$authentication = null,$data = array(),$method = 'GET',$headers = array()){
 
- 		$ch = curl_init($url);
 
- 		$options = array(
 
- 			CURLOPT_RETURNTRANSFER => true,    
 
- 			CURLOPT_FOLLOWLOCATION => true,    
 
- 			CURLOPT_SSL_VERIFYPEER => false,
 
- 			CURLOPT_HTTPAUTH => CURLAUTH_BASIC
 
-           
 
- 		);
 
- 		if(isset($authentication))  $options[CURLOPT_USERPWD] = $authentication;
 
- 		if(count($headers)!=0) $options[CURLOPT_HTTPHEADER] = $headers;
 
- 		$options[CURLOPT_CUSTOMREQUEST] = $method;
 
- 		if($method=='POST' && count($data)!=0) $options[CURLOPT_POSTFIELDS] = $data;
 
- 			
 
- 		curl_setopt_array($ch, $options);
 
- 		$result = curl_exec($ch);
 
- 		if($result === false) throw new Exception("CURL :".curl_error($ch));
 
- 		curl_close($ch);
 
- 		$json =  json_decode($result,true);
 
- 		return $json;
 
- 	}
 
- }
 
- ?>
 
 
  |