1

この質問のフォローアップです: ruby​​ on rails ssl post から不正なリクエストを取得しています

私はその問題を修正し、トランザクションの次のステップを問題なくします。私が直面している問題は、応答が html ドキュメントの非表示のフォームとして iFrame に送信されることです。フォームは、私が提供した URL に投稿します。

投稿用のコントローラーアクションとルートリソースを作成しようとしましlocalhost:3000/policies/completeたが、何も表示されません。- それはただ言うjavascript error unable to load resource: localhost:3000/policies/complete

それで、私は/policies/complete(ポリシーコントローラーの対応するメソッドを使用してcomplete)試してみましたが、何らかの理由で、そのアクションに投稿する代わりに、theirwebserver.com/policies/complete明らかに存在しないものに投稿しました。

したがって、正しく機能させるには URL 全体を渡す必要があるように見えるため、フォームは次のようになります。<form method='Post' action='whatever whole url I give them'>

フォームは次のようになります。

<form name="frmReturn" method="Post" action="localhost:3000/policies/hosted_checkout_complete">
    <input name="PaymentID" type="hidden" value="the value you need really badly!">
    <input name="ReturnCode" type="hidden" value="0">
    <input name="ReturnMessage" type="hidden" value="Your transaction has been approved."> 
</form>

Tl:DC それを処理するようにアプリを設定するにはどうすればよいですか?

get私は彼らが私に情報を送り返すために使用するように要求することができます. そのほうがセットアップと受け入れが簡単である場合は、お知らせください。

4

1 に答える 1

0

action= の前にプロトコル (http:// または https://) を追加する必要があります。

<form name="frmReturn" method="Post" action="http://localhost:3000/policies/hosted_checkout_complete">

ただし、これを行うことはお勧めしません... Railsルーティングの要点を完全に見逃しています。あなたはこのようなことをしているはずです:

<form name="frmReturn" method="Post" action="<%= resource_url %>">

理想的には、Rails フォーム ビルダーを使用します。

<%= form_for :resource, :action => 'hosted_checkout_complete' do %>
于 2012-10-12T20:55:20.283 に答える