0

我想使用带有“verifyTransaction”方法的网络服务,该方法将两个字符串作为输入并返回一个双精度作为输出。我为此使用了以下代码:

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=)

我一直在阅读网络上的所有资源,但找不到任何解决方案。请帮我解决一下这个。

4

1 回答 1

0

我通过使用 SoapUI 和 Savon 解决了这个问题。

我在 SoapUI 中打开了 WSDL,生成了一个示例请求并将其复制/粘贴到 Savon 中,如下所示:

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

效果很好!:)

于 2011-11-02T17:37:42.280 回答