Array
(
)

JSON e PHP existe alguma integração entre as linguagens?

Cleyton Caetano
   - 09 mar 2015

gente eu to criando uma loja em PHP e agora me vi com um probleminha, para gerar os boletos do usando o https://www.boletobancario.com/boletofacil/ e a API deles é JSON e não faço a mínima de como integrar ao meu sistema :(

Ronaldo Lanhellas
   - 09 mar 2015

Primeiro você deve estudar JSON para então entender como entregar.

Primeiro passo: http://www.devmedia.com.br/introducao-json/23166
Segundo passo: integrando com php - http://php.net/manual/pt_BR/book.json.php

Ronaldo Lanhellas
   - 09 mar 2015

Primeiro você deve estudar JSON para então entender como entregar.

Primeiro passo: http://www.devmedia.com.br/introducao-json/23166
Segundo passo: integrando com php - http://php.net/manual/pt_BR/book.json.php

Ronaldo Lanhellas
   - 09 mar 2015

Primeiro você deve estudar JSON para então entender como entregar.

Primeiro passo: http://www.devmedia.com.br/introducao-json/23166
Segundo passo: integrando com php - http://php.net/manual/pt_BR/book.json.php

Thiago Santana
   - 09 mar 2015

Prefiro desenvolver o próprio boleto e homologar junto ao banco!
No seu caso melhor entender como enviar e receber JSON

Cleyton Caetano
   - 09 mar 2015


Citação:
Prefiro desenvolver o próprio boleto e homologar junto ao banco!
No seu caso melhor entender como enviar e receber JSON


já pensei em fazer isso mas não sei como fazer, tem como gerar um boleto meu mesmo e quando o cliente efetuar o pagamento o dinheiro cair direto na minha conta?

Ronaldo Lanhellas
   - 09 mar 2015


Citação:

Citação:
Prefiro desenvolver o próprio boleto e homologar junto ao banco!
No seu caso melhor entender como enviar e receber JSON


já pensei em fazer isso mas não sei como fazer, tem como gerar um boleto meu mesmo e quando o cliente efetuar o pagamento o dinheiro cair direto na minha conta?


Você teria que solicitar ao banco a liberação de boletos para sua conta, não há simplesmente como você gerar um boleto e esperar que caia na sua conta. Outra alternativa é utilizar o PAGSEGURO, ele possibilita que você gere boletos e o dinheiro caia na conta do pagseguro e posteriormente você solicite o saque.

Cleyton Caetano
   - 09 mar 2015


Citação:

Citação:

Citação:
Prefiro desenvolver o próprio boleto e homologar junto ao banco!
No seu caso melhor entender como enviar e receber JSON


já pensei em fazer isso mas não sei como fazer, tem como gerar um boleto meu mesmo e quando o cliente efetuar o pagamento o dinheiro cair direto na minha conta?


Você teria que solicitar ao banco a liberação de boletos para sua conta, não há simplesmente como você gerar um boleto e esperar que caia na sua conta. Outra alternativa é utilizar o PAGSEGURO, ele possibilita que você gere boletos e o dinheiro caia na conta do pagseguro e posteriormente você solicite o saque.


Já pensei no PAGSEGURO mas é uma opção que não quero usar, prefiro a idéia de que o boleto vai ser gerado e vai pra minha conta....

Ronaldo Lanhellas
   - 09 mar 2015

Então nesse caso, apenas conversando com o seu gerente do banco para ver a possibilidade de gerar boletos para sua conta.

Thiago Santana
   - 09 mar 2015

Existe a documentação dos bancos para desenvolver os boletos. Já desenvolvi boletos de vários bancos!
Você precisa fazer uma atualização a sua conta para poder receber títulos. Isso é feito junto ao banco!
Após o banco liberar, você desenvolve o boleto e envia para homologação...

William (devwilliam)
   - 09 mar 2015

Cleyton fiz um cadastro rápido nesse site que você indicou só para ver se eles disponibilizam a documentação e como já era de se esperar eles fornecem todos os passos nesse link, é super tranquilo escrever integrações com jSON ainda mais usando PHP.

Pelo menos 2 vezes por mês tenho que montar alguma integração maluca com JSON, basta você saber utilizar a ferramenta cURL do PHP e pronto seus problemas estão resolvidos, com ela você pode enviar tanto requisições GET como POST, se for necessário enviar parâmetros basta montar uma array e passar para cURL enviar, depois é só capturar o retorno.

Não me leve a mau, mas vou deixar um conselho, se quer ser programador mesmo aprenda a "devorar" qualquer documentação de API!

Cleyton Caetano
   - 10 mar 2015


Citação:
Cleyton fiz um cadastro rápido nesse site que você indicou só para ver se eles disponibilizam a documentação e como já era de se esperar eles fornecem todos os passos nesse link, é super tranquilo escrever integrações com jSON ainda mais usando PHP.

Pelo menos 2 vezes por mês tenho que montar alguma integração maluca com JSON, basta você saber utilizar a ferramenta cURL do PHP e pronto seus problemas estão resolvidos, com ela você pode enviar tanto requisições GET como POST, se for necessário enviar parâmetros basta montar uma array e passar para cURL enviar, depois é só capturar o retorno.

Não me leve a mau, mas vou deixar um conselho, se quer ser programador mesmo aprenda a "devorar" qualquer documentação de API!

Eu já tinha visto a API deles só não Manjo muito de jSON mas to me aprofundando a cada dia nos conteúdos relacionados à programação...

Cleyton Caetano
   - 11 mar 2015

William muito obrigada pela luz que me destes, passei horas lendo aqui e já posso dizer que estou me achando nesse mapa! como na página oficial do site explica estou fazendo alguns teste, mas me resta uma dúvida, estou fazendo uma requisição com metodo GET, quando acesso a URL gerada recebo o JSON, por exemplo.

URL de teste.
#Código

https://www.boletobancario.com/boletofacil/integration/api/v1/issue-charge?token=MEUTOKEN&description=Compra%20no%20site%20Marra%20Shopping&amount=800&payerName=Cleyton%20Caetano&payerCpfCnpj=94648945123&test=true&charge=link


recebo o JSON que é

#Código
{"data":{"charges":[]},"success":true}


isso segundo o que a documentação API informa diz que está tudo funcionando.

agora segue minha dúvida, da pra ver que existe uma ARRAY chamada charges que está vazia, segundo eles é assim mesmo que ocorre quendo estamos fazendo testes, quando eu estiver faturando normalmente o JSON virá mais ou menos assim.
#Código
{
    "success":true,
    "data":{
        "charges":[
            {
                "code":101,
                "dueDate":"19/02/2013",
                "link":"https://boletofacil/boleto?token=23:m:3454"
            },
            {
                "code":102,
                "dueDate":"19/03/2013",
                "link":"https://boletofacil/boleto?token=23:m:3454"
            }
        ]
    }
}


minha dúvida é de como faço para mostrar isso para meu cliente de forma legível.

melhor dizendo, pelo que entendi até agora vou ter que criar uma pagina e nela vou acessar essa URL com CURL e pegar esses dados e exibir eles para meu cliente?

tipo assim:

#Código
	$curl = curl_init("URL");
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$json = curl_exec($curl);
	curl_close($curl);


	$encoded = json_decode($json);

	$teste = $encoded->{'charges'});
        echo $teste['link'];


nesse exemplo acima deveria mostrar o link do boleto, seria assim? ou estou errando em algo? uma luz please.

Cleyton Caetano
   - 11 mar 2015

Bom pessoal, após efetuar uma compra acessando o LINK eu recebi o código JSON da forma que vou precisar processalo.

segue.
#Código

{"data":{"charges":[{"code":10041323,"dueDate":"14/03/2015","link":"https://www.boletobancario.com/boletofacil/charge/boleto.json?token=10041323:0f8ea603b9cdfca0c06f07be4ce47c72315ad4e9985adffc731050cbc88b2804"}]},"success":true}


mas não estou conseguindo ler esse código com PHP.

a forma que estou tentando ler é esta.

#Código
	$curl = curl_init("URL");
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$json = curl_exec($curl);
	curl_close($curl);
	
	$encoded = json_decode($json);

	print_r($encoded->{'code'}); //codigo da transacao
	print_r($encoded->{'dueDate'}); //data da transacao
	print_r($encoded->{'link'}); //link do boleto


mas eu recebo os seguintes erros.
#Código
Notice: Undefined property: stdClass::$code in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 10

Notice: Undefined property: stdClass::$dueDate in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 11

Notice: Undefined property: stdClass::$link in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 12


se eu uso ´código assim pra poder dar um var_dump() ainda não consigo, segue o código e resultado.

#Código
	$curl = curl_init("http://localhost/loja/faturamento/envia.php");
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$json = curl_exec($curl);
	curl_close($curl);
	
	$encoded = json_decode($json);

	$res = $encoded->data;

	var_dump($res);

// resultado do var_dump();

object(stdClass)#2 (1) { ["charges"]=> array(1) { [0]=> object(stdClass)#3 (3) { ["code"]=> int(10041323) ["dueDate"]=> string(10) "14/03/2015" ["link"]=> string(141) "https://www.boletobancario.com/boletofacil/charge/boleto.json?token=10041323:0f8ea603b9cdfca0c06f07be4ce47c72315ad4e9985adffc731050cbc88b2804" } } } 



esse ai foi o lugar mais longe que consegui ir.

Cleyton Caetano
   - 11 mar 2015

Posso não estar certo, mas acho que estou indo no caminho :)

#Código

	$curl = curl_init("http://localhost/loja/faturamento/envia.php");
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$json = curl_exec($curl);
	curl_close($curl);
	
	$encoded = json_decode($json);

	$res = $encoded->data;
	$res = $res->charges;

	var_dump($res);
	echo "<br><br><br>";
	print_r($res->{'code'}); //codigo da transacao
	print_r($res->{'dueDate'}); //data da transacao
	print_r($res->{'link'}); //link do boleto


resultado
#Código
array(1) { [0]=> object(stdClass)#3 (3) { ["code"]=> int(10041323) ["dueDate"]=> string(10) "14/03/2015" ["link"]=> string(141) "https://www.boletobancario.com/boletofacil/charge/boleto.json?token=10041323:0f8ea603b9cdfca0c06f07be4ce47c72315ad4e9985adffc731050cbc88b2804" } }



Notice: Trying to get property of non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 17

Notice: Trying to get property of non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 18

Notice: Trying to get property of non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\loja\faturamento\recebe.php on line 19

Cleyton Caetano
   - 11 mar 2015

Bom pessoal, depois de muito quebrar a cabeça finalmente consegue resolver a parada, vejam aqui como ficou meu código.

#Código

	$curl = curl_init("http://localhost/loja/faturamento/envia.php");
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$json = curl_exec($curl);
	curl_close($curl);
	$encoded = json_decode($json);
	$res = $encoded->data;
	$res = $res->charges;
	foreach ($res as $key => $value) {
		echo $value->{'code'}."<br>";
		echo $value->{'dueDate'}."<br>";
		echo $value->{'link'}."<br>";

	}


resultado final
#Código
10041323
14/03/2015
https://www.boletobancario.com/boletofacil/charge/boleto.json?token=10041323:0f8ea603b9cdfca0c06f07be4ce47c72315ad4e9985adffc731050cbc88b2804

William (devwilliam)
   - 11 mar 2015

Parabéns Cleyton, ser programador é isso mesmo, errar bastante mas persistir até o sucesso!

O formato JSON é muito bom, mas geralmente a primeira leitura causa dúvidas.

Quanto ao retorno, eu sempre gravo no banco e depois exibo para o usuário.

Cleyton Caetano
   - 11 mar 2015

William, verdade...
Muito bom programar.... Inclusive estou gostando da famosa linguagem JSON.