Como você passar um método POST em uma URL manualmente?
-
10-07-2019 - |
Pergunta
Eu preciso dar um site de pagamento externa uma URL de retorno para o meu site depois que um cliente paga. Será a minha ação criar em um controlador de subscrição RESTful.
Ive tentou dar o site de pagamento este
blah.com/users/7/subscription /? _ Method = POST
mas no retorno meu aplicativo continua tentando chamar meu show ação presumivelmente porque ele pensa que o seu pedido de um get e não um post. errado para algumas coisas com a forma como eu passar o método na url, mas eu não consigo descobrir o que.
Os usuários são plurais e eles só pode ter uma assinatura que é definido em meus rotas como singular ou seja map.resource
alguém pode ajudar?
Solução
Você não pode POST a partir de uma solicitação GET.
Se o aplicativo de chamada é simplesmente a execução de uma URL este é um pedido GET. Se o site de pagamento não suporta postagem de volta para você, então você não pode fazê-lo.
Gostaria de pedir o site de pagamento se eles oferecem a capacidade de POST para você. Muitos fazem.
Outras dicas
Se o serviço externo não está chamando o seu url com um POST, então é um problema com esse serviço, não a sua aplicação. Além disso, mantenha em mente que CSRF irá proteger o seu POST, PUT, DELETE sem uma razão, então você precisa para desativá-lo para este método, e espero que você tenha alguma outra forma de autenticar esse pedido.