Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal. Não tenho muito conhecimento em javascript, mas preciso fazer a integração de uma API de pagamento.
Nunca realizei integrações com alguma API antes.
Seguindo a documentação vi que precisa primeiro gerar um token de transação.
Então tenho esse código:
function GeraToken() {
var base64 = $.encodeBASE64(AppKey:CHAVE, Signature:ASSINATURA);
$.ajax({
url: "http://desenvolvimento.intermeio.com/api/v2_1/Token/Gerar",
headers: { "Authorization": "Intermeio " + base64, Content-Type: application/json },
type: "POST",
crossDomain: true,
dataType: "json",
success: function () {
alert('FOI');
},
error: function (xhr, status) {
alert('NAO FOI');
}
});
}
Onde a funcao *GeraToken() *é um botão que chama.
Mas eu queria ter a certeza que esta correta a chamada.
Quando clico no botão ele nao me retorna nenhum dos dois alerts. O mais ideal seria me retornar na tela mesmo o token, só pra eu ver mesmo que funcionou, porque eu preciso armazenar esse token na base de dados.
Na API diz que o retorno será em JSON.
Alguém poderia me ajudar?
Grato desde ja!Boa tarde William, obrigado pelo retorno.
No console aparece a mensagem:
Uncaught ReferenceError: GeraToken is not defined
at HTMLAnchorElement.onclick
O estranho é que se eu apagar tudo da função GeraToken() e deixar só um alert() dentro dela, somente para ver se entra na função. Aí o alert() é executado.
Mas se eu colocar o código ajax ele da esse erro no console
tem erro de sintaxe na tua função:
function GeraToken() {
var base64 = $.encodeBASE64({AppKey:'', Signature:''});
$.ajax({
url: "http://desenvolvimento.intermeio.com/api/v2_1/Token/Gerar",
headers: { "Authorization": "Intermeio " + base64, 'Content-Type': 'application/json' },
type: "POST",
crossDomain: true,
dataType: "json",
success: function () {
alert('FOI');
},
error: function (xhr, status) {
alert('NAO FOI');
}
});
}Sim, ontem a noite resolvi isso também.
O problema estava nisso e também no encode, a função não estava encodando em base64, dai usei outra função e resolveu.
Agora ele faz comunicação com a API, mas ele retorna error.
O estranho é que faço teste no REST client usando as mesmas credenciais do código e me retorna código 200
Acha que pode ser algum problema da API?
No REST client estou usando assim:
Content-Type: application/json
Authorization: Intermeio BASE64
crossDomain: true,
dataType: "json"
No Authorization esta tudo sem aspas, no REST client se eu colocar as aspas no Authorization, ele retorna erro, mas no código se eu deixar o Authorization sem aspas ele retorna erro
qual o erro que está dando? e como ficou o código?
Quando passo no REST client com as aspas no Authorization ele retorna esse erro:
400 BAD REQUEST
{
"IpRequisitante": null,
"Codigo": 700,
"Titulo": "Dados inválidos",
"Descricao": null
}
E o código passado no REST cliente:
url: http://desenvolvimento.intermeio.com/api/v2_1/Token/Gerar
Content-Type: application/json
Authorization: "Intermeio BASE64"
crossDomain: true,
dataType: "json"
E sem as aspas no Authorization ele retorna 200 e o JSON esperado.
E no código ficou assim:
$.ajax({
url: "http://desenvolvimento.intermeio.com/api/v2_1/Token/Gerar",
headers: {"Authorization": "Intermeio " + base64, 'Content-Type': 'application/json'},
type: "POST",
crossDomain: true,
dataType: "json",
success: function () {
alert('FOI');
},
error: function (xhr, status) {
alert('NAO FOI');
}
});
Ai ele entra no alert('NAO FOI');
o que aparece no console do browser?
ctrl + shift + j ?