Closed vbrazo closed 12 years ago
Peguei o log do heroku. Da uma olhada:
2012-09-20T15:51:10+00:00 app[web.1]: MyMoip::Request of #127 to https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica had response <html><head><title>Apache Tomcat/5.5.30 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h2>HTTP Status 401 - Bad credentials</h2><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Bad credentials</u></p><p><b>description</b> <u>This request requires HTTP authentication (Bad creden
2012-09-20T15:51:11+00:00 app[web.1]: ** [Airbrake] Environment Info: [Ruby: 1.9.2] [Rails: 3.2.5] [Env: production]
2012-09-20T15:51:11+00:00 app[web.1]: ** [Airbrake] Response from Airbrake:
2012-09-20T15:51:11+00:00 app[web.1]: ** [Airbrake] Failure: Net::HTTPClientError
2012-09-20T15:51:11+00:00 app[web.1]: No ApiKey
Li sobre isso aqui: http://labs.moip.com.br/forum/showthread.php?126-Erro-HTTP-Status-401-Bad-credentials. Já verifiquei a minha token e chave e elas estão ok.
La no heroku, ele le o caminho de desenvolvimento e não o de produção :(
Você setou token e key de autenticação como indicados no README?
Sim. Setei a token e a chave do sandbox no environments/development.rb. A token e a chave do meu login de produção coloquei em environments/production.rb.
Tem como eu setar este endereço para requisição de produção (api_url) no meu environment junto com a token e a chave? Porque o erro aparentemente esta sendo neste endereço. Ele esta lendo
2012-09-20T15:51:10+00:00 app[web.1]: MyMoip::Request of #127 to https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica had response
e ele deveria ler https://www.moip.com.br (ttps://www.moip.com.br/ws/alpha/EnviarInstrucao para receber a instrução) segundo o tutorial do moip.
Na verdade o Moip usa o mesmo token/key para produção e sandbox, tudo depende para onde é enviado o request - se para /sandbox
ou não. Te aconselharia criar um initializer para setá-las.
Token/key pode ser encontradas em https://desenvolvedor.moip.com.br/sandbox/ / Ferramentas / API MoIP / Chaves de Acesso.
Nesta parte do request que ele está se perdendo. Como que eu faço para inicializar isto no meu production.rb?
Tu pode criar um config/initializers/moip.rb
:
MyMoip.token = "EZMXMQNOSQANDBAYCQA7LUH8NMBEUUUU"
MyMoip.key = "EF9T3ETWHCFRUYGKDDUHFWAYTCIVHFGEY9XR14HV"
MyMoip.environment = "production" if Rails.env.production?
Agora apareceu outro erro :(
2012-09-20T22:10:57+00:00 app[web.1]:
2012-09-20T22:10:57+00:00 app[web.1]:The requested URL /ws/alpha/EnviarInstrucao/Unica was not found on this server.
2012-09-20T22:10:57+00:00 app[web.1]:Sim, de acordo com http://labs.moip.com.br/referencia/autenticacao_api/ , eles mudaram na atualização do dia 14. Estou fazendo testes para descobri se é necessário modificar mais algo.
Eu tinha criado o moip.rb e aproveitei para fazer esta monkey patch e funcionou hehe :)
MyMoip.environment = "production" if Rails.env.production?
module MyMoip class << self attr_accessor :token, :key, :environment, :logger, :default_referer_url
def api_url
if environment == "sandbox"
"https://desenvolvedor.moip.com.br/sandbox"
else
"https://www.moip.com.br"
end
end
end end
Pode atualizar agora para a versão 0.2.0
que já está corrigido.
Em desenvolvimento rodou legal mas em produção não consegui enviar nem a instrução.
O erro retornado foi:
Status report: Bad crendentials Message: This request requires HTTP authentication
Dei uma pesquisada na internet e parece que ele está usando o caminho de desenvolvimento (sandbox) em produção.
Você já teve este problema?