BankId と統合しようとしています (これはスウェーデンで一般的な認証および署名サービスです)。私は Savon Ruby SOAP クライアントを使用しており、ガイドラインに従って BankId のテスト API にリクエストを送信しようとしています。「認証」操作を呼び出すと、次のエラーが発生します。
The given SOAPAction Authenticate does not match an operation
SOAP リクエストは次のようになります。
SOAP request: https://appapi.test.bankid.com/rp/v4
SOAPAction: "Authenticate", Content-Type: text/xml;charset=UTF-8, Content-Length: 384
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rp="http://bankid.com/RpService/v4.0.0/types/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<rp:AuthenticateRequest>
<personalNumber>12345678</personalNumber>
</rp:AuthenticateRequest>
</env:Body>
</env:Envelope>
次の詳細を使用してセッションを作成しています。
- wsdl: ' https://appapi.test.bankid.com/rp/v4?wsdl '
- 名前空間: ' http://bankid.com/RpService/v4.0.0/types/ '
- エンドポイント: ' https://appapi.test.bankid.com/rp/v4 '
コードは次のとおりです。
> client = Savon.client(wsdl: 'https://appapi.test.bankid.com/rp/v4?wsdl', namespace: 'http://bankid.com/RpService/v4.0.0/types/', endpoint: 'https://appapi.test.bankid.com/rp/v4', ssl_cert_file: "XXXX/cert.pem", ssl_cert_key_file: "XXX/key.pem", ssl_cert_key_password: "qwerty123", pretty_print_xml: true, log_level: :debug, log: true)
> client.call(:authenticate, message: {personalNumber: '12345678'})
私は SOAP API の使用にあまり慣れていないことを言及しておく必要があります。