使っています サボン 統合するための宝石 paysbuy Ruby onRailsで作成された私のプロジェクトで。これが私がsavonクライアントを作成する方法です
client = Savon.client do
endpoint "https://www.paysbuy.com/receiveresponse/Result.aspx"
namespace "https://www.paysbuy.com/receiveresponse/ResultReg.aspx"
wsdl "https://demo.paysbuy.com/api_paynow/api_paynow.asmx"
end
logger.info"%%%%%%%%%%%%%%%%%#{client.operations}%%%%%%%%%%%%%%5555555"
しかし、「client.operations「として来ています」[]「。自分の側で間違ったことを修正するための助けが必要です。助けてくれてありがとう。
回答:
回答№1は1Savon 2.xを使用していると思いますか? 呼び出しの構文が正しくありません。ブロックではなくパラメータリストが必要です。
また、WSDLとWSDLレス呼び出し規約を組み合わせます。あなたはどちらかを指定します
wsdl:
または
endpoint: ...
namespace: ...
client.operations
正しいwsdlURLを指定しなかったため、機能しません。
これがMSベースのインターフェースであるとすると、パラメーターを使用してWSDLを取得できると想定しても問題ありません。 ?WSDL
URLで。これを試して:
client = Savon.client(
wsdl: "https://demo.paysbuy.com/api_paynow/api_paynow.asmx?wsdl",
log: true,
log_level: debug,
pretty_print_xml: true
)
print client.operations
残念ながら、その呼び出しはSavonを使用して失敗します。 WSDLドキュメントを解釈できないのではないかと思います。
できることは、SoapUIを使用してサービスを検査し、WSDLなしでクライアントを構築することです。
client = Savon.client(
endpoint: "https://demo.paysbuy.com/api_paynow/api_paynow.asmx",
namespace: "http://tempuri.org",
log: true,
log_level: debug,
pretty_print_xml: true
)
WSDLを読んで、名前空間である可能性のあるものを見つけましたが、それは注意が必要です。正しいリクエストを見つけるために、いじくり回す必要がある場合があります。 を使用して作業リクエストを見つけた場合 SoapUI、それを機能させるには、Rubyコードに変換する必要があります。それは少なくとも私のアプローチでした。 その時点に達したときは、遠慮なく質問してください。