<?php/* * DATA DE CRIAÇÃO: 07/11/2011 * ÚLTIMA ALTERAÇÃO: 07/11/2011 * VERSÃO ATUAL: 1.0 * LICENSA: OPEN SOURCE */ interface IPagseguro{ public function set_email_vendedor($email_vendedor); public function set_token($token); public function set_codigo_produto($codigo_produto); public function set_nome_produto($nome_produto); public function set_valor_produto($valor_produto); public function set_peso_produto($peso_produto); public function set_tipo_entrega($tipo_entrega); public function set_nome_comprador($nome_comprador); public function set_email_comprador($email_comprador); public function set_bairro($bairro); public function set_endereco($endereco); public function set_complemento($complemento); public function set_numero($numero); public function set_cidade($cidade); public function set_estado($estado); public function set_cep($cep); public function set_ddd($ddd); public function set_telefone($telefone); public function get_pagar($id,$qtn); public function get_definir_entrega(); public function get_notificacoes(); } class Pagseguro{ protected $email_vendedor; protected $token; protected $codigo_produto; protected $nome_produto; protected $valor_produto; protected $peso_produto; protected $tipo_entrega; protected $nome_comprador; protected $email_comprador; protected $bairro; protected $endereco; protected $complemento; protected $numero; protected $cidade; protected $estado; protected $cep; protected $ddd; protected $telefone; public function set_email_vendedor($email_vendedor){ return $this->email_vendedor = $email_vendedor; } public function set_token($token){ return $this->token = $token; } public function set_codigo_produto($codigo_produto){ return $this->codigo_produto = $codigo_produto; } public function set_nome_produto($nome_produto){ return $this->nome_produto = $nome_produto; } public function set_valor_produto($valor_produto){ return $this->valor_produto = $valor_produto; } public function set_peso_produto($peso_produto){ return $this->peso_produto = $peso_produto; } public function set_tipo_entrega($tipo_entrega){ return $this->tipo_entrega = $tipo_entrega; } public function set_nome_comprador($nome_comprador){ return $this->nome_comprador = $nome_comprador; } public function set_email_comprador($email_comprador){ return $this->email_comprador = $email_comprador; } public function set_bairro($bairro){ return $this->bairro = $bairro; } public function set_endereco($endereco){ return $this->endereco = $endereco; } public function set_complemento($complemento){ return $this->complemento = $complemento; } public function set_numero($numero){ return $this->numero = $numero; } public function set_cidade($cidade){ return $this->cidade = $cidade; } public function set_estado($estado){ return $this->estado = $estado; } public function set_cep($cep){ return $this->cep = $cep; } public function set_ddd($ddd){ return $this->ddd = $ddd; } public function set_telefone($telefone){ return $this->telefone = $telefone; } public function get_pagar($id,$qtn){ return $this->pagar($id,$qtn); } public function get_definir_entrega(){ $this->definir_entrega(); } public function get_notificacoes(){ return $this->notificacoes(); } protected function definir_entrega(){ switch($this->tipo_entrega){ case 'pac': $this->tipo_entrega = 1; case 'sedex': $this->tipo_entrega = 2; case '': $this->tipo_entrega = 3; } } protected function pagar($id,$qtn){ $post_fields = "email=$this->email_vendedor"; $post_fields.= "&token=$this->token"; $post_fields.= "¤cy=BRL"; $post_fields.= "&itemId$id=$id"; $post_fields.= "&itemDescription$id=$this->nome_produto"; $post_fields.= "&itemAmount$id=$this->valor_produto"; $post_fields.= "&itemQuantity$id=$qtn"; $post_fields.= "&itemWeight$id=$this->peso_produto"; $post_fields.= "&senderName=$this->nome_comprador"; $post_fields.= "&senderAreaCode=$this->ddd"; $post_fields.= "&senderPhone=$this->telefone"; $post_fields.= "&senderEmail=$this->email_comprador"; $post_fields.= "&shippingType=$this->tipo_entrega"; $post_fields.= "&shippingAddressStreet=$this->endereco"; $post_fields.= "&shippingAddressNumber=$this->numero"; $post_fields.= "&shippingAddressComplement=$this->complemento"; $post_fields.= "&shippingAddressDistrict=$this->bairro"; $post_fields.= "&shippingAddressPostalCode=$this->cep"; $post_fields.= "&shippingAddressCity=$this->cidade"; $post_fields.= "&shippingAddressState=$this->estado"; $post_fields.= "&shippingAddressCountry=BRA"; $ch = curl_init("https://ws.pagseguro.uol.com.br/v2/checkout/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1")); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); $r = curl_exec($ch); curl_close($ch); $xml = simplexml_load_string($r); # verifica se o código existe ( se existir é porque tudo está ok ) if(isset($xml->code)){ # retorna o codigo return $xml->code; }else{ return false; } } protected function notificacoes(){ # seta a url de destino $url = "https://ws.pagseguro.uol.com.br/v2/transactions/$this->codigo_produto?email=$this->email_vendedor&token=$this->token"; # armazena os tipos de status para comparar $status = array( 1 => 'Aguardando pagamento', 2 => 'Em análise', 3 => 'Pago', 4 => 'Disponível', 5 => 'Em disputa', 6 => 'Devolvida', 7 => 'Cancelada' ); # faz a consulta a API $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_HEADER, false); $r = curl_exec($ch); curl_close($ch); # retorna o status no formato xml $xml = simplexml_load_string($r); # retorna o status da compra return $status[(int)$xml->status]; } } ?>
0 comentários:
Postar um comentário