申込み内容を一旦保存して、カード決済のサイトへ
備忘録です。他の人がこのパターンに合致するかは分かりません。
あと、Paypal じゃないよ。
「確認画面 ⇒ カード情報入力な別サイト ⇒ ThankYou画面」の流れがわかった。
別サイト遷移直前に
1) モデル保存。その際、session に id 保存
2) 別サイトフォームを表示。ただし、Javascript で自動POST
3) ThankYou画面に戻ってきたら保存した session を load
def create ... if @order.save redirect_to :action => :my_delegate, :id => @order.id else ... end def my_delegate @order = Order.find(params[:id]) session[:order_id] = @order.id end def done @order = Order.find(session[:id]) end
view
<form name="hoge" method="post" action="http://othersite.example.jp/..."> ... <%= submit_tag '画面が自動的に切り替わらない場合はクリック' %> </form> <% javascript_tag do %> document.hoge.submit(); <% end %>
入力内容を保存するタイミングでずっと悩んでいました。
本来は create アクションで保存後に別サイトに POST する事ができれば良いのですが、
一発ではできないようなので、このような案となりました。