Sttranho 0 Denunciar post Postado Setembro 25, 2012 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
alcaidedigital 57 Denunciar post Postado Setembro 25, 2012 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
Sttranho 0 Denunciar post Postado Setembro 25, 2012 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
alcaidedigital 57 Denunciar post Postado Setembro 25, 2012 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
Sttranho 0 Denunciar post Postado Setembro 26, 2012 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
alcaidedigital 57 Denunciar post Postado Setembro 26, 2012 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
Sttranho 0 Denunciar post Postado Setembro 29, 2012 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