SOSTheBlack / moip

Package para integrar sua aplicação em Laravel com o MoIP
19 stars 7 forks source link

Integração Transparente #21

Closed giovannefc closed 9 years ago

giovannefc commented 9 years ago

Eu preciso fazer uma integração transparente, para a pessoa fazer tudo pelo meu site sem precisar passar pelo site do Moip. Mas como você disse, não tem muita informação sobre no momento para o que preciso.

Você pode me ajudar? Aí já testamos a versão dev. Eu já tenho a conta no Moip sandbox para testes. Basicamente, seria assim: A pessoa coloca os dados de pagamento no formulário, processamos o pagamento com a Api do Moip e se retornar true, redirecionamos para uma página de sucesso. Quais funcões/metódos da Api usaremos nesse caso?

Eu até tentei usar a Api direto deles, mas ele faz instâncias da classe SimpleXmlElement que faz parte daquele phpQuery.. aí já complicou tudo..

SOSTheBlack commented 9 years ago
"sostheblack/moip": "1.1.*@dev"

de um composer update

php artisan asset:publish sostheblack/moip
Route::match(['get', 'post'], '/', function()
{
    $data = [
        'prices'    => [
            'value' => 100,
        ],
        'payer' => [
        'name'      => 'Nome Sobrenome',
        'email'     => 'email@cliente.com.br',
        'payerId'   => 'id_usuario',
        'billingAddress' => [
            'address'       => 'Rua do Zézinho Coração',
            'number'        => '45',
            'complement'    => 'z',
            'city'          => 'São Paulo',
            'neighborhood'  => 'Palhaço Jão',
            'state'         => 'SP',
            'country'       => 'BRA',
            'zipCode'       => '01230-000',
            'phone'         => '(11)8888-8888'
            ]
        ]
    ];

    MoipApi::postOrder($data);
    var_dump(MoipApi::response());

    $pgto = [
        "Forma"         => "CartaoCredito",
        "Instituicao"   => "Visa",
        "Parcelas"      => "1",
        "CartaoCredito" => [
            "Numero"         => "4073020000000002",
            "Expiracao"      => "12/15",
            "CodigoSeguranca"=> "123",
            "Portador"       => [
                "Nome"          => "Nome Sobrenome",
                "DataNascimento"=> "30/12/1987",
                "Telefone"      => "(11)3165-4020",
                "Identidade"    => "222.222.222-22"
            ]
        ]
    ];

    return MoipController::transparent($pgto);
    var_dump(MoipController::response());
});

A route acima criar o pedido e para o mesmo com o js de pgto do moip, agora estou fazendo o MoipController::response() retornar o que retornar no js

giovannefc commented 9 years ago

Ok Jean. Blz, consegui fazer tudo funcionar até agora. Mas agora está aí a grande questão que não estou conseguindo fazer, que é pegar o retorno json (em caso de sucesso ou falha) e redirecionar para outra página com esses dados.

Você tem alguma sugestão de como você faria? Para passar o retorno js via POST para tratar os dados em php?

Abs.

SOSTheBlack commented 9 years ago

Falta apenas fazer essa parte no checkout transparente

O formulário que é preenchido, será enviado via post para o MoipController e no MoipController o $this->response irá receber os dados do retorno do json, podendo assim ser manipulado pelo desenvolvedor. Porém isso foi apenas para teste, não haverá formulário, os dados de retorno do js será enviado via ajax post para o MoipController populando o $this->response

Quando o checkout transparente estiver pronto será lançado a release 1.2.0, faça um fork do projeto, e me ajudo com package fazendo essa parte ou qualquer melhoria que achar necessário e de um pull request depois

abrs

Jean Cesar Garcia Desenvolvedor Web

jeancesargarcia@gmail.com Call: 55 - 16 - 9-9280-8021

Em 22 de janeiro de 2015 12:11, giovannefc notifications@github.com escreveu:

Ok Jean. Blz, consegui fazer tudo funcionar até agora. Mas agora está aí a grande questão que não estou conseguindo fazer, que é pegar o retorno json (em caso de sucesso ou falha) e redirecionar para outra página com esses dados.

Você tem alguma sugestão de como você faria? Para passar o retorno js via POST para tratar os dados em php?

Abs.

— Reply to this email directly or view it on GitHub https://github.com/SOSTheBlack/moip/issues/21#issuecomment-71025253.

giovannefc commented 9 years ago

Ok, Jean, obrigado.

A principio, passei os valores para um formulário hidden e envia através do js mesmo:

JS: document.getElementById("falha_codigo").value = JSON.stringify(data.Codigo); document.getElementById("form").submit();

Formulário:

{{ Form::token() }}

    </form></code>

Daí o controller trata as arrays passada para o formulário...

Até que funcionou bem.. o que acha? ou tem um método melhor?

Att.

SOSTheBlack commented 9 years ago

Esta ótimo, pode prosseguir assim, a minha ideia era não criar o formularia, mas pegar o data do callbackSucesso por exemplo e envia-lo parava function response do MoipController e la fazer tratar o json. Mas assim também esta ótimo!

-----Mensagem Original----- De: "giovannefc" notifications@github.com Enviada em: ‎22/‎01/‎2015 14:15 Para: "SOSTheBlack/moip" moip@noreply.github.com Cc: "Jean C. Garcia" jeancesargarcia@gmail.com Assunto: Re: [moip] Integração Transparente (#21)

Ok, Jean, obrigado. A principio, passei os valores para um formulário hidden e envia através do js mesmo: JS: document.getElementById("falha_codigo").value = JSON.stringify(data.Codigo); document.getElementById("form").submit(); Formulário:

{{ Form::token() }}

Daí o controller trata as arrays passada para o formulário... Até que funcionou bem.. o que acha? ou tem um método melhor? Att. — Reply to this email directly or view it on GitHub.=

SOSTheBlack commented 9 years ago

me add no skype que acho que poderemos desenvolver mais rápido!

jeancesargarcia@gmail.com

giovannefc commented 9 years ago

Beleza! Esse fds eu te adiciono e a gente resolve isso ae! Abs