Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sttranho

Integração do PagSeguro com sistema PHP

Recommended Posts

Bom dia,

 

Eu iniciei um tópico aqui no forum, sem muito sucesso... e hoje vendo o site do PagSeguro, vi que o iMasters possuem um espaço dedicado ao PagSeguro, por isso venho recorrer aos peritos no assunto ;)

 

Esse é o tópico que abri lá, e abaixo sigo com minha dúvida.

http://forum.imasters.com.br/topic/475722-variaveis-que-nao-escrevem/page__gopid__1890634#entry1890634

 

 

Resumidamente, minha dúvida é fazer funcionar a integração com dados dinâmicos, por exemplo.

 

Quando eu utilizo o código com dados fixos, como no exemplo de vocês:

   // Add an item for this payment request
               $paymentRequest->addItem('0001', 'Notebook prata', 2,430.00);

O Sistema funciona, porém, quando tendo colocar variáveis, o sistema deixa de funcionar, parecendo que minhas variáveis estão vazias.

 

   // Add another item for this payment request
               $paymentRequest->addItem($pag_id, $pag_material, 1, $pag_preco);

Pelo que notei, minhas variáveis perdem valores ao entrar na classe, no entanto, não sei como fazer ela funcionar dentro e fora da classe.

 

Ouvi falar numa tal de variável global, mas não sei como funciona e nem se neste caso irá funcionar, como é a sintaxe, como devo proceder?

 

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, já tentou fazer essa requisição sem usar a biblioteca oficial?

 

Considero bem mais simples de usar...

 

fiz um tutorial que explica explica diretinho todos os passos usando XML:

http://sounoob.com.br/2011/09/14/criando-uma-requisicao-de-pagamento-do-pagseguro-via-xml-usando-php-sem-utilizar-a-biblioteca-oficial/

 

Particularmente eu não uso XML para o envio, a outra forma é bem mais simples... Dá uma olhada nesse post:

http://sounoob.com.br/2011/11/09/criando-uma-requisicao-de-pagamento-do-pagseguro-via-parametros-http-usando-php-sem-utilizar-a-biblioteca-oficial/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, já tentou fazer essa requisição sem usar a biblioteca oficial?

 

Considero bem mais simples de usar...

 

fiz um tutorial que explica explica diretinho todos os passos usando XML:

http://sounoob.com.br/2011/09/14/criando-uma-requisicao-de-pagamento-do-pagseguro-via-xml-usando-php-sem-utilizar-a-biblioteca-oficial/

 

Particularmente eu não uso XML para o envio, a outra forma é bem mais simples... Dá uma olhada nesse post:

http://sounoob.com.br/2011/11/09/criando-uma-requisicao-de-pagamento-do-pagseguro-via-parametros-http-usando-php-sem-utilizar-a-biblioteca-oficial/

 

Buenas Senartes, vi o link de seu blog e achei bastante interessante sua didatica... vou tentar mais um pouco utilizar a biblioteca oficial pois está tudo funcionando com dados fixos, então vou brigar mais um pouco para aprender a lidar com as variáveis. Então vou tentar obter esse aprendizado. E se eu ver que estou perdendo tempo e não evoluindo em nada, dai vou partir pro seu modo.

 

Você não utiliza a biblioteca oficial, qual é a biblioteca que você usa? é tão segura quanto a oficial? Visto que estamos lidando com vendas web, meios de pagamento, onde alguem paga quer receber o produto e alguém vende e quer receber o dinheiro, não podemos dar chance para o azar.

 

Obrigado pela dica!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu não uso nenhuma biblioteca, tudo o que estou fazendo é tudo feio "na unha", não precisa de nenhuma lib adicional a não ser das nativas do próprio PHP.

 

A questão d segurança não precisa nem discutir uma vez que todo tramite quem faz é o backend o que cai para o cliente é apenas o código de pagamento, sendo assim não tem como alguém interceptar esses dados se não tiver acesso ao servidor. Se o cara tiver acesso ao servidor nem mesmo a biblioteca oficial se salva.

 

Bom, eu não encontrei nenhum ponto critico em quesito de segurança, mas se encontrar deixa lá um comentário que será legal eu dar uma fuçada e criar algo mais seguro...

 

Abraços

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Senarte,

 

Fiz o código conforme você explica no blog, e ocorreu algum erro.

 

o primeiro erro era com relação ao header que se refere a jogar o usuário a uma página de erro, comentei o código, então, começou apenas a exibir o erro "amigável" conforme cógigo abaixo:

 

$xml= simplexml_load_string($xml);
if(count($xml -> error) > 0){
//Insira seu código de tratamento de erro, talvez seja útil enviar os códigos de erros.
echo 'ocorreu erro durante o processo.';
//enviar página.
//header('Location: erro.php?tipo=dadosInvalidos');
exit;
}

Como eu faço para exibir o número do código de erro?

 

Então na dúvida de qual tipo de erro estaria dando, mandei um echo na variável $data e escreveu assim, o que me faz acreditar que é ai que está o erro.

 

email=pagseguro%40gruponew.com&token=1Q2W3E4R5T6Y7U8I9O0PP0O9I8U7Y6T5¤cy=BRL&itemId1=601&itemDescription1=Acrilico&itemAmount1=302%2C15&itemQuantity1=1&itemWeight1=1000&reference%5B0%5D=5555&reference%5B1%5D=31&senderName=Gruponew+Comunica%E7%E3o+MKT+Ltda+Me&senderPhone=98765432&senderEmail=pagseguro%40gruponew.com&shippingType=1&shippingAddressStreet=Rua+Cristo+Rei&shippingAddressNumber=123&shippingAddressComplement=5o+andar&shippingAddressDistrict=Tia+Ana&shippingAddressPostalCode=83352-210&shippingAddressCity=Ipar%FA&shippingAddressState=MG&shippingAddressCountry=BRA&redirectURL=http%3A%2F%2Fwww.gruponew.com%2FpaginaDeAgracedimentoocorreu erro durante o processo.

 

Com base nisso ai, o que será que pode estar ocorrendo?

 

Já verifiquei os campos da array $data e não existe tais "código" ou espaço, ou qualquer outro caracter diferente como o que aparece ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, vamos por partes...

 

Onde poderão retornar erros, o primeiro caso é o 'Unauthorized', se ele cair dentro do

if($xml == 'Unauthorized'){

Significa que seu e-mail ou token esta errado.

 

Segundo caso de erro é no XML do PagSeguro

if(count($xml -> error) > 0){

 

Caso caia ai, você pode ver os erros no array $xml -> error.

 

Para ver o que está no array use um

print_r($xml -> error) 

 

Os caracteres estranhos que você citou, são códigos hexas dá uma olhada nessa tabela e você vai entender o que cada um significa:

http://www.nicolas-hoffmann.net/utilitaires/codes-hexas-ascii-unicode-utf8-caracteres-usuels.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso eu teria que gravar no banco todos os caracteres possíveis com código hexas?

 

Neste caso, o interessante é eu fazer todas as variáveis passarem por uma função que converte para hexa os dados que julgamos necessários, correto?

 

algo como:

 

grava banco = function hexa ($variaveis)

 

 

e a function ser como...??? bom, acho que agora é assunto para outro tópico... hehehe

 

Não sei se é a melhor opção, mas voltei a usar a biblioteca oficial do pagseguro como no começo desse post estava perguntando...

 

e resolvi o problema, usando sessão,

 

Ou seja, como as variáveis tinham conteúdo antes da classe, mas ficavam vazias dentro da classe, eu fiz assim...

 

@session_start();
       $_SESSION["pag_id"] = $rtcompra['rt_orc_item_id'];
	$_SESSION["pag_material"] = $rtcompra['rt_orc_item_material'];
	$_SESSION["pag_preco"] = Troca_Virgula_Ponto($rtcompra['rt_orc_item_preco']);
class createPaymentRequest {
public static function main () {
         // ... bla bla bla... conteúdos antes das variáveis necessárias...

               $paymentRequest->addItem($_SESSION["pag_id"], $_SESSION["pag_material"], 1, $_SESSION["pag_preco"]);

       // ... bla bla bla... conteúdos depois das variáveis necessárias...
}

 

A principio está funcionando, pelo menos com 3 variaveis deram certo, e tenho 17 variáveis ao total, farei tudo assim... a principio...

 

Alguem tem uma sugestão melhor, ou é assim mesmo que resolvo???

 

??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.