Evaluating bids

Instalar sistema de pagamento (Pagar-me) em um site Php.

Published on the August 02, 2018 in IT & Programming

About this project

Open

Um antigo site de e-commerce tem que trocar o seu sistema de pagamento. O site em PHP/Bootstrap3 já tem todas as funcionalidades e é necessário integrar a finalização de pagamentos com o checkout transparente do Pagar-me (conta já aberta e com toda a documentação). É Necessário desenvolver tanto a geração e envio de transação quanto o retorno de transação pelo Pagar.me.


Documentação do Pagar-me: https://docs.pagar.me/docs/overview-principal

NO lado do nosso site temos um código que envia as variáveis para o sistema de pagamento (antigo) e também trata o retorno  que deve ser alterado para o Pagar-Me:

if ($num_transc == 0) {

        // ----------->> transação cartão inicio
        
        $date_transacao = "inicio: ";
     
        $ur_return = utf8_encode('http://www.medjet.com.br/app/pagamento-ok.php');

        require '../Gw/LocawebGateway.php';
        //LocawebGatewayConfig::setEnvironment('production'); // production //sandbox
        $token = utf8_encode('5xxxxxxxxxxxxxxxxxxxxx353d2'); //produção
        //$token = utf8_encode('b53225xxxxxxxxxxxxxxxxxxxx7-1fe61c526cdd'); //testes
        LocawebGatewayConfig::setToken($token); // produção
        if (($dados = Erro::retornarDados())) {
            $requisicao = LocawebGateway::criar($dados);
        } else {
            $requisicao = LocawebGateway::criar(array(
                'url_retorno' => $ur_return,
                'capturar' => 'true',
                'pedido' => array(
                    'numero' => $pedido,
                    'total' => $tt_pd, // "100.00", //
                    'moeda' => "real",
                    'descricao' => "Produto para Saude"
                ),
                'pagamento' => array(
                    'meio_pagamento' => 'cielo', // cielo , redecard_web, redecard_ws, itau_shopline
                    'bandeira' => $bandeira,
                    'cartao_numero' => $num_card,
                    'cartao_cvv' => $cod_card,
                    'parcelas' => $parcelas,
                    'tipo_operacao' => $tipo_operacao, // “credito_a_vista” , “parcelado_loja” , “parcelado_administradora”
                    'cartao_validade' => $validade_card // 082016
                ),
                'comprador' => array(
                    'nome' => $nome_card
                    //        'documento' => $cpf_card,
                    //        'endereco' => "rua", // $res_end['endereco']
                    //        'numero' => 11, // $res_end['numero']
                    //        'cep' =>  88888888, // $cep_php
                    //        'bairro' => "bairro", //  $res_end['bairro']
                    //        'cidade' => "cidade", //  $res_end['nome_c']
                    //        'estado' => "sigla" //  $res_end['sigla']
                )
            )); //->sendRequest();
            //converte para utf
            function utf8_encode_deep(&$input) {
                if (is_string($input)) {
                    $input = utf8_encode($input);
                } else if (is_array($input)) {
                    foreach ($input as &$value) {
                        utf8_encode_deep($value);
                    }

                    unset($value);
                } else if (is_object($input)) {
                    $vars = array_keys(get_object_vars($input));

                    foreach ($vars as $var) {
                        utf8_encode_deep($input->$var);
                    }
                }
            }
            utf8_encode_deep($requisicao);
        }

        $transacao = $requisicao->sendRequest();
        (new Erro(15))->verificar($requisicao, $transacao);
        //echo json_last_error();
        //$transacao->Sendrequest();
        $id_transacao = $transacao->transacao->id;
        $codigo_erro = $transacao->transacao->erro->codigo;

        if (is_numeric($meio_pagamento)) {
            $cod_pag = $meio_pagamento;
        } else {
            $cod_pag = 0;
            $desconto = 0;
        }

        if ($id_transacao > 0) {
//adiciona a nova transação
            $status_tran = $transacao->transacao->status;
            $sql_add = "insert into transacoes ( id_transacao, status, meio_pagamento, pedido, total, url_acesso, seq, comprovante, autent, autoriz, url_comprovante, data_transacao, parcelas, card_inicio, card_final, nome_titular, cpf_titular) values (" . $Id_transacao . ", '" .
$Status_tran . "','" . $Transacao->transacao->meio_pagamento .
"', " . $Transacao->transacao->numero_pedido . ", " . $Transacao->transacao->total .
", '" . $Transacao->transacao->url_acesso . "', '" . $Transacao->transacao->detalhes->tid .
"'," . $Transacao->transacao->detalhes->nsu . ", '" . $Transacao->transacao->detalhes->pan .
"', '" . $Transacao->transacao->detalhes->arp . "','" . $Transacao->transacao->detalhes->lr .
"',  NOW(), '" . $Parcelas . "', '".Substr($num_card    ,0, 4)."
', '" . Substr($num_card,-4) . "', '".Trim($nome_card)."', '".$Cpf_card."')";
            $Exe_add = mysql_query($sql_add, $bd) or die(mysql_error());
            $sql_repeat = "select email from transacoes inner join pedido on (pedido = codigo_pedido) where codigo_pedido = ".$Transacao->transacao->numero_pedido . " AND transacoes.status = 'negada'";
            $exe_repeat = mysql_query($sql_repeat, $bd);
            $reg_repeat = mysql_fetch_assoc($exe_repeat);


Caso o desenvolvedor já tenha conhecimento em implantar outro serviço de gateway de pagamento, podemos estudar o troca do Pagar-me.

Por favor antes de enviar proposta leia a documentação do pagar-me para verificar se conseguirá cumprir o trabalho,

Category IT & Programming
Subcategory E-commerce
What is the scope of the project? Small change or bug
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Payment Processor (Paypal, Stripe, etc.)
Roles needed Developer

Delivery term: August 07, 2018

Skills needed