2011-08-07 4 views
0

Braintree 보석을 내 레일 3 앱에 통합하는 동안 오류가 발생합니다. 정말로 이상한 것은 내가 다른 응용 프로그램에서 실행하려고 할 때 성공적으로 다음 내 시스템에 하나의 응용 프로그램에 설치할 수 있었다이다 다음과 같은 오류 얻을 : 여기 Braintree 결제 게이트웨이`confirm_payment_url '

undefined local variable or method `confirm_payment_url' for #<#<Class:0x103a2bf08>:0x103a2a298> 

내가있어 기본 코드를 사용 : 여기

<h1>Payment: $<%= h @amount %></h1> 

<% if @result -%> 
    <div style="color: red;"><%= h @result.errors.size %> error(s)</div> 
<% end -%> 

<%= form_for :transaction, 
    :params => @result && @result.params[:transaction], 
    :errors => @result && @result.errors.for(:transaction), 
    :builder => ApplicationHelper::BraintreeFormBuilder, 
    :url => Braintree::TransparentRedirect.url, 
    :html => {:autocomplete => "off"} do |f| -%> 
    <%= field_set_tag "Customer" do -%> 
    <%= f.fields_for :customer do |c| -%> 
    <div><%= c.label :first_name, "First Name" %></div> 
    <div><%= c.text_field :first_name %></div> 
    <div><%= c.label :last_name, "Last Name" %></div> 
    <div><%= c.text_field :last_name %></div> 
    <div><%= c.label :email, "Email" %></div> 
    <div><%= c.text_field :email %></div> 
<% end -%> 
<% end -%> 
<%= field_set_tag "Credit Card" do -%> 
<%= f.fields_for :credit_card do |c| -%> 
    <div><%= c.label :number, "Number" %></div> 
    <div><%= c.text_field :number %></div> 
    <div><%= c.label :expiration_date, "Expiration Date (MM/YY)" %></div> 
    <div><%= c.text_field :expiration_date %></div> 
    <div><%= c.label :cvv, "CVV" %></div> 
    <div><%= c.text_field :cvv %></div> 
<% end -%> 
<% end -%> 
<%= hidden_field_tag :tr_data, Braintree::TransparentRedirect.transaction_data(
    :redirect_url => confirm_payment_url,   
    :transaction => {:type => "sale", :amount => @amount} 
    ) %> 
    <%= f.submit "Submit" %> 
<% end -%> 

을하고하는 것은

def confirm 

@result = Braintree::TransparentRedirect.confirm(request.query_string) 
if @result.success? 
    render :action => "confirm" 
else 
    @amount = calculate_amount 
    render :action => "new" 
end 
end 

하나의 앱이 방법을 인식 할 수 있지만, 다른 하나는하지 않습니다 레일이 결과를 가질 수 변화의 유형을 지불 컨트롤러에게 무엇입니까? 이 머리에 내 머리를 긁적입니다. 당신의 도움을 주셔서 감사합니다.

+0

두 응용 프로그램간에 다른 점은 무엇입니까? 그것들은 레일즈의 동일한 버전입니까? –

답변

2

정의하지 마십시오 confirm_payment_url 응용 프로그램 경로에 오류가있을 가능성이 높지만 자세한 정보 없이는 하루가 지나치지 않습니다.

Braintree에서 제공하는 투명 리디렉션 설명서에 따르면 결제가 처리 된 후 고객에게 다시 보내려는 URL 인 것처럼 보입니다. confirm_payment_url은 Braintree가 제공되지 않습니다. 참조하는 문서는 here입니다.

+0

예 - 내 경로가 누락되었습니다 : 일치 '지불/확인을'=> '지불 번호의 확인':로 =>에 : 나는 아직도 일치 '지불/새로운'했기 때문에 이상한 confirm_payment => 'payments # new', : as => : new_payment 감사합니다. – Andrew

+0

언제든지 도와 드릴 수있어서 기뻤습니다. –

관련 문제