Ir para o conteúdo

* - - - - 1 votos

Pagseguro


Criado por Rodolfo Ribeiro Barreto, Jan 09 2012 20:50

2 respostas neste tópico
  • Por favor, faça o login para responder

#1 Rodolfo Ribeiro Barreto

Rodolfo Ribeiro Barreto
  • Rodolfo Ribeiro Barreto
  • Colaborador
  • 5 Revisões

Revisou 09 janeiro 2012 - 20:50

<?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.= "&currency=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...r/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];
}
}
?>


#2 Rodolfo Ribeiro Barreto

Rodolfo Ribeiro Barreto
  • Rodolfo Ribeiro Barreto
  • Colaborador
  • 5 Revisões

Revisou 02 abril 2012 - 21:26

<?php

/*

 * DATA DE CRIAÇÃO: 07/11/2011

 * ÚLTIMA ALTERAÇÃO: 02/04/2012

 * VERSÃO ATUAL: 1.1

 * LICENSA: OPEN SOURCE

 */



interface IPagseguro{

    public function setEmailVendedor($email_vendedor);

    public function setToken($token);

    public function setCodigo_produto($codigo_produto);

    public function setNomeProduto($nome_produto);

    public function setValorProduto($valor_produto);

    public function setPesoProduto($peso_produto);

    public function setTipoEntrega($tipo_entrega);

    public function setNomeComprador($nome_comprador);

    public function setEmailComprador($email_comprador);

    public function setBairro($bairro);

    public function setEndereco($endereco);

    public function setComplemento($complemento);

    public function setNumero($numero);

    public function setCidade($cidade);

    public function setEstado($estado);

    public function setCep($cep);

    public function setDdd($ddd);

    public function setTelefone($telefone);

    

    public function getPagar($id,$qtn);

    public function getDefinir_entrega();

    public function getNotificacoes();

}



class Pagseguro implements IPagseguro{

    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 setEmailVendedor($email_vendedor){

        return $this->emailVendedor = $email_vendedor;

    }

    

    public function setToken($token){

        return $this->token = $token;

    }

    

    public function setCodigoProduto($codigo_produto){

        return $this->codigoProduto = $codigo_produto;

    }

    

    public function setNomeProduto($nome_produto){

        return $this->nomeProduto = $nome_produto;

    }

    

    public function setValorProduto($valor_produto){

        return $this->valorProduto = $valor_produto;

    }

    

    public function setPesoProduto($peso_produto){

        return $this->pesoProduto = $peso_produto;

    }

    

    public function setTipoEntrega($tipo_entrega){

        return $this->tipoEntrega = $tipo_entrega;

    }

    

    public function setNomeComprador($nome_comprador){

        return $this->nomeComprador = $nome_comprador;

    }

    

    public function setEmailComprador($email_comprador){

        return $this->emailComprador = $email_comprador;

    }

    

    public function setBairro($bairro){

        return $this->bairro = $bairro;

    }

    

    public function setEndereco($endereco){

        return $this->endereco = $endereco;

    }

    

    public function setComplemento($complemento){

        return $this->complemento = $complemento;

    }

    

    public function setNumero($numero){

        return $this->numero = $numero;

    }

    

    public function setCidade($cidade){

        return $this->cidade = $cidade;

    }

    

    public function setEstado($estado){

        return $this->estado = $estado;

    }

    

    public function setCep($cep){

        return $this->cep = $cep;

    }

    

    public function setDDD($ddd){

        return $this->ddd = $ddd;

    }

    

    public function setTelefone($telefone){

        return $this->telefone = $telefone;

    }

    

    public function getPagar($id,$qtn){

        return $this->pagar($id,$qtn);

    }

    

    public function getDefinirEntrega(){

        $this->definir_entrega();

    }

    

    public function getNotificacoes(){

        return $this->notificacoes();

    }

    

    protected  function definirEntrega(){

        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.= "&currency=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];

    }

}

?>


#3 Clube do PhP

Clube do PhP
  • Clube do PhP
  • Colaborador
  • 5 Revisões
  • LocalizaçãoPalmas - Pr - Brasil

Revisou 16 maio 2012 - 01:10

Vou instalar e fazer um teste, depois digo de funcionou legal
Queria alterar o mundo...
Mais não me deram o código-fonte!!!




1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)