mruoppolo 14 Denunciar post Postado Janeiro 20, 2017 Olá, tudo bem? Estou desenvolvendo uma integração do pagseguro com checkout transparente e pagamento recorrente. Na documentação oficial: https://dev.pagseguro.uol.com.br/documentacao/pagamentos/pagamento-recorrente-transparente esta falando que preciso enviar os seguinte requisição: { "preApproval": { "name": "Assinatura da Revista Fictícia", "charge": "AUTO", "period": "MONTHLY", "amountPerPayment": 100.00, "expiration": { "value": 1, "unit": "YEARS" } }, "receiver": { "email": "seu@email.com.br" } } Para a URL: https://ws.pagseguro.uol.com.br/pre-approvals/request?email=a@b.com&token=123ABC Mas eu não tenho a menor ideia de como fazer isso, nunca trabalhei com json como funciona este envio?? Estou tentando assim (seguindo um tutorial que encontrei na net): <?php $servidor = "https://ws.sandbox.pagseguro.uol.com.br/pre-approvals/request?email=financeiro@lumihost.com.br&token=DC351FB3A06742D289FE052738AA8F6D"; $req = '{ "preApproval": { "name": "Assinatura da Revista Fictícia", "charge": "AUTO", "period": "MONTHLY", "amountPerPayment": 100.00, "expiration": { "value": 1, "unit": "YEARS" } }, "receiver": { "email": "seu@email.com.br" } }'; $contents = file_get_contents($servidor, null, $req); $resposta = json_decode($contents); //Parser da resposta Json echo $resposta; Mas o resultado é sempre uma tela em branco Muito obrigado :D Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 20, 2017 Quando eu utilizei o PagSeguro, era para o checkout transparente. Eles disponibilizam um arquivo javascript, no qual você deve importar utilizando a tag script. Com a importação, vem uma série de objetos. Um deles é o que você irá enviar o JSON. O chato, é que você precisa criar uma série de controles para os eventos que podem ser realizados. Lembro que deu um trabalhão na época. ---- Edit, a biblioteca em JavaScript é apenas para realizar algumas validações. Pelo PHP, você utilza a seguinte biblioteca: https://dev.pagseguro.uol.com.br/bibliotecas/php Tudo pode ser feito com ela. Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 20, 2017 Mas você tem algum exemplo de uso dessa biblioteca para checkout transparente?? Eu olhei mas não encontrei nada Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 23, 2017 Para a parte de JavaScript, está tudo aqui: http://download.uol.com.br/pagseguro/docs/pagseguro-checkout-transparente.pdfA parte de PHP, não encontro mais nada, mas deve ser realizada pela classe PagSeguroDirectPaymentRequest.Eu limpei o pouco do código que eu localizei, pode lhe ajudar.Primeiro é a inicialização do checkout. \PagSeguroLibrary::init(); \PagSeguroConfig::setEnvironment($environment); $credentials = new \PagSeguroAccountCredentials( $email, $token//cada ambiente tem seu próprio token ); $sessionId = PagSeguroSessionService::getSession($credentials); esse session ID precisa ser enviado para o JavaScript <script type="text/javascript"> PagSeguroDirectPayment.setSessionId('sessionId'); </script> Agora o checkout: $directPaymentRequest = new \PagSeguroDirectPaymentRequest(); $directPaymentRequest->setPaymentMode('DEFAULT'); // GATEWAY $directPaymentRequest->setPaymentMethod('CREDIT_CARD');//tipo de pagamento (aqui, em específico, cartão de crédito) $directPaymentRequest->setCurrency("BRL"); $directPaymentRequest->setReference($referenceCode);//código de referência para o que está sendo vendido (ordem de venda, registro, etc...) $directPaymentRequest->setReceiverEmail($pagSeguroEmail);//e-mail do cadastro do PagSeguro $directPaymentRequest->addItem( $itemCodigo, $descricao, 1,//quantidade $valor ); //comprador $directPaymentRequest->setSender( $nome, $email, $ddd, $telefone, 'CPF',//TIPO: CPF ou CNPJ $cpf//CPF ou CNPJ ); // esse é gerado pelo javascript $directPaymentRequest->setSenderHash($post['sender-hash']); //parcelas, para cartão de crédito $installments = new \PagSeguroInstallment( array( 'quantity' => '1', 'value' => $valor ) ); $address = new \PagSeguroAddress( array( 'postalCode' => $cep, 'street' => $logradouro, 'number' => $numero, 'complement' => $complemento, 'district' => $bairro, 'city' => $cidade, 'state' => $uf, 'country' => $pais ) ); //endereço para o pagamento $billingAddress = new \PagSeguroBilling($address); $directPaymentRequest->setBillingAdress($billingAddress); //quando não há frete. Na época era obrigatório adicionar o frete zerado com endereço $directPaymentRequest->setShipping($address , \PagSeguroShippingType::getCodeByType('NOT_SPECIFIED')); $directPaymentRequest->setShippingCost(0); //informações sobre o cartão de crédito. Dados pessoais são do dono do cartão $creditCardHolder = new \PagSeguroCreditCardHolder( array( 'name' => , 'birthDate' => $dataNascimente, 'areaCode' => $ddd, 'number' => $telefone, 'documents' => array( 'type' => 'CPF', 'value' => $cpfCartao ) ) ); $creditCardData = new \PagSeguroCreditCardCheckout( array( 'token' => $creditCardToken,//gerado pelo javascript 'installment' => $installments, 'billing' => $billingAddress, 'holder' => $creditCardHolder ) ); try { $directPaymentRequest->setCreditCard($creditCardData); $response = $directPaymentRequest->register($this->entity->getApplication()->getAccountCredentials()); } catch (\PagSeguroServiceException $exception) { } Entretanto, isso é apenas 50% do necessário, a parte client-side com o javascript já é trabalhosa o suficiente.Use e muito a SandBox. E, antes de colocar o código em produção, você precisa pedir liberação para o PagSeguro e peça com antecedência, eles vão demorar. Se não me engano, o endereço de e-mail para liberação está no PDF acima linkado.Edit---https://pagseguro.uol.com.br/v2/guia-de-integracao/documentacao-da-biblioteca-pagseguro-em-php.html#checkout-transparente Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 25, 2017 Valeu Gabriel era isso mesmo cara, salvou minha pele kkkk. abraço Compartilhar este post Link para o post Compartilhar em outros sites