Problema com PHP e AJAX
Olá prezados, venho com um desafio grande, porém quem conhece e tem mais experiência, resolve o problema num piscar de olho.
Eu tenho uma aplicação, estou criando um sistema de emissão de boleto, com a API do gerencianet, porém o servidor que estou utilizando possui a versão 5.3 do PHP, este servidor não pode ser atualizado para a versão 5.4. Logo a API do gerencianet não funciona no servidor com versão 5.3.
Então resolvi instalar a API em outro servidor que funciona a versão 5.4 do PHP. Mais apenas a API eu posso rodar neste servidor.
Então vamos lá.
Eu criei a programação com base no exemplo do gerencianet, estou utilizando AJAX para fazer a emissão, porém, como eu coloquei a API em outro servidor, deu um erro no sistema, ou seja, não consigo fazer uma consulta no arquivo do outro servidor com AJAX, mais isso eu resolvi colocando:
header('Access-Control-Allow-Origin: *');
Prontinho, funcionou, agora consigo emitir o boleto.
Mais agora eu preciso salvar os dados do boleto, ao qual o gerencianet me retorna em json, inclusive ele mostra esses dados na tela em uma tabela html, se alguem baixar os exemplos do gerencianet verá.
Mais agora é que está a dificuldade, eu fiz uma outra requisição via ajax, para cadastrar os dados do retorno em json no banco de dados, só que pelo que me parece está me retornando o erro:
Mixed Content: The page at 'https://fit-turbo.com/checkout/index.php2' was loaded over HTTPS, but requested an insecure script 'http://sys.fit-turbo.com/funcoes/funcoes_boleto.php?callback=jQuery22405240…o=18780&forma_de_pagamento=banking_billet&cliente_id=17902&_=1480615032176'. This request has been blocked; the content must be served over HTTPS.
Está passando os paramentos em GET porque eu coloquei o "jsonp", para ver se resolvia o problema, visto que como post não funciona também, então nem como get e nem como post está funcionando.
<script>
$(document).ready(function () {
//Aplicando as mascaras nos inputs cpf, valor e vencimento.
$("#btn_emitir_boleto").click(function () {
if ($('#form')[0].checkValidity()) {
$("#myModal").modal('show');
$("#boleto").addClass("hide");
var descricao = $("#descricao").val();
var valor = $("#valor").val();
var quantidade = $("#quantidade").val();
var nome_cliente = $("#nome_cliente").val();
var cpf = $("#cpf").val();
var telefone = $("#telefone").val();
var vencimento = $("#vencimento").val();
var pedido_id = '<?php echo $res['pedido_id']; ?>';
var cliente_id = '<?php echo $id_cliente; ?>';
console.log(parseInt(nome_cliente))
console.log(parseInt(valor))
if (parseInt(nome_cliente) == "NaN" || parseInt(valor) == "NaN") {
$("#myModal").modal('hide');
alert("Dados inválidos.");
return false;
}
$.ajax({
url: "<?php echo WEBSERVICE ?>/modulos/boleto/boleto/emitir_boleto.php",
data: {descricao: descricao, valor: valor, quantidade: quantidade, nome_cliente: nome_cliente, cpf: cpf, telefone: telefone, vencimento: vencimento},
type: 'post',
dataType: 'json',
success: function (resposta) {
$("#myModal").modal('hide');
console.log(resposta)
if (resposta.code == 200) {
$("#myModalResult").modal('show');
$("#boleto").removeClass("hide");
//"code":200,"data":{"barcode":"03399.32766 55400.000000 60348.101027 6 69020000009000","link":"https:\/\/visualizacaosandbox.gerencianet.com.br\/emissao\/59808_79_FORAA2\/A4XB-59808-60348-HIMA4","expire_at":"2016-08-30","charge_id":76777,"status":"waiting","total":9000,"payment":"banking_billet"-->
var html = "<th>" + resposta.data.charge_id + "</th>"
html += "<th>" + resposta.data.barcode + "</th>"
html += "<th><a target='blank' href='' + resposta.data.link + "'> clique aqui para acessar o boleto </a></a></th>"
html += "<th>" + resposta.data.expire_at + "</th>"
html += "<th>" + resposta.data.status + "</th>"
html += "<th>" + resposta.data.total + "</th>"
html += "<th>" + resposta.data.payment + "</th>";
$("#result_table").html(html);
$.ajax({
url: "<?php echo BASE ?>/funcoes/funcoes_boleto.php",
data: {acao: "salvar", pedido_id: pedido_id, fatura: resposta.data.charge_id, codigo_de_barras: resposta.data.barcode, link_boleto: resposta.data.link, dia_vencimento: resposta.data.expire_at, status: resposta.data.status, valor_total_boleto: resposta.data.total, forma_de_pagamento: resposta.data.payment, cliente_id: cliente_id},
type: 'post',
dataType: 'jsonp',
success: function (retorno) {
if (retorno == 'cadastrou') {
$("#myModalResult").modal('show');
console.log(retorno);
} else if (retorno == 'nao') {
console.log(retorno);
alert('Erro ao Salvar dados do boleto!');
}
},
error: function (retorno) {
console.log(retorno.responseText);
//alert("Ocorreu um erro - Mensagem: " + retorno.responseText)
}
});
} else {
$("#myModal").modal('hide');
alert("Code: " + resposta.code)
}
},
error: function (resposta) {
$("#myModal").modal('hide');
console.log(resposta.responseText);
//alert("Ocorreu um erro - Mensagem: " + resposta.responseText)
}
});
} //endif
else {
alert("Você deverá preencher todos dados do formulário.")
}
})
});
</script>
Bom aí está o código javascript, que por sua vez, possa ser o problema, os arquivos php, é mais simples, e sei que o erro, não está ocorrendo, pois eles apenas recebe os valores de post ou get que é passado pelo ajax.
Então gostaria de saber se tem como eu fazer a primeira requisição no outro servidor, retornar os dados em json, e pegar esses dados json e cadastrar no banco de dados.
como o meu exemplo está mostrando.
Aguardo retorno de vocês.
Atenciosamente,
Alisson Maciel
Discussão (5)
Carregando comentários...