2011-10-29 14 views
0

2つの文字列を入力として取得し、出力としてdoubleを返すメソッド "verifyTransaction"でWebサービスを使用します。私はそのために以下のコードを使用 :Savon on Rails 3.1- WSDLを使用してメソッドを呼び出せません

client = Savon::Client.new do |wsdl| 
    wsdl.document = "https://www.myserver.com/ReferencePayment?WSDL" 
end 

response = client.request :wsdl, "verifyTransaction" do 
    soap.body ={"RefNum" => "121312", "MerchantID" => "02233763"} 
end 

を、私はこのエラーを得た:

Savon::SOAP::Fault ((env:Client) caught exception while handling request: unexpected encoding style: expected=http://schemas.xmlsoap.org/soap/encoding/, actual=) 

私はウェブ上のすべてのリソースを読んでいるが、私は任意の解決策を見つけることができませんでした。 これを手伝ってください。

+0

あなたがダウンロードしようとしているWSDLに期待されたフォーマットがないようですか? – nathanvda

+0

wsdlの期待される形式は何ですか? WSDLがうまくいくはずです。それは金融機関のものであり、多くのユーザーがすでにそれを使用しています。 –

+0

WSDLなしでは、あなたを助けることはほとんど不可能です。公開URLはありますか? –

答えて

0

私はSoapUIとSavonを使ってこの問題を解決しました。

私は、サンプルの要求とコピーを生成/このようサボンに貼り付け、SOAPUIでWSDLを開いた:

client = Savon::Client.new do |wsdl| 
    wsdl.document = "https://acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL" 
end 

response = client.request "verifyTransaction" do 
    soap.xml = 'XML will be here' 
end 

それがうまく働きました! :)

関連する問題