Irio / mymoip

MoIP transactions in a gem to call your own.
MIT License
31 stars 21 forks source link

Production #2

Closed vbrazo closed 12 years ago

vbrazo commented 12 years ago

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?

vbrazo commented 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.

vbrazo commented 12 years ago

La no heroku, ele le o caminho de desenvolvimento e não o de produção :(

Irio commented 12 years ago

Você setou token e key de autenticação como indicados no README?

vbrazo commented 12 years ago

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.

vbrazo commented 12 years ago

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 Apache Tomcat/5.5.30 - Error report

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.

Irio commented 12 years ago

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.

vbrazo commented 12 years ago

Nesta parte do request que ele está se perdendo. Como que eu faço para inicializar isto no meu production.rb?

Irio commented 12 years ago

Tu pode criar um config/initializers/moip.rb:

MyMoip.token = "EZMXMQNOSQANDBAYCQA7LUH8NMBEUUUU"
MyMoip.key   = "EF9T3ETWHCFRUYGKDDUHFWAYTCIVHFGEY9XR14HV"

MyMoip.environment = "production" if Rails.env.production?
vbrazo commented 12 years ago

Agora apareceu outro erro :(

2012-09-20T22:10:57+00:00 app[web.1]: 2012-09-20T22:10:57+00:00 app[web.1]: 404 Not Found 2012-09-20T22:10:57+00:00 app[web.1]: MyMoip::Request of #140 to https://desenvolvedor.moip.com.br/ws/alpha/EnviarInstrucao/Unica had response <!DOCTYPE HTML PUBLI C "-//IETF//DTD HTML 2.0//EN"> 2012-09-20T22:10:57+00:00 app[web.1]: 2012-09-20T22:10:57+00:00 app[web.1]:

Not Found

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]:
2012-09-20T22:10:57+00:00 app[web.1]:

vbrazo commented 12 years ago

Essa https://desenvolvedor.moip.com.br/ não é https://www.moip.com.br/?

Irio commented 12 years ago

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.

vbrazo commented 12 years ago

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

Irio commented 12 years ago

Pode atualizar agora para a versão 0.2.0 que já está corrigido.