[Salesforce]アウトバウンドメッセージ送信時のエラー
先日、アウトバウンドメッセージをPHPで受けとる方法を紹介したけれど、試しているとアウトバウンドメッセージの送信がSalesforce側から何度も試行されていることがわかった。
salesforce側のログを見ていると、以下のようなエラーが出ている。
設定 > 監視 > アウトバウンドメッセージ
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
どうやら、PHP側の応答が、SOAPの形式に則ってないとsalesforce側でXMLの解析ができずにエラーが出てしまうっぽい。
なので、エラーが解消されるまで数回試行が続く、っぽい。
応答はXMLの形式でなければならないので、headerでXMLとしてやる必要がある。
header("Content-Type: application/xml; charset=UTF-8");
また、返却するXMLは以下のような形でないといけないよう。
1 2 3 4 5 6 7 |
|
というわけで、以下のようにPHPを書いてやればエラーは出ない。
1 2 3 4 5 6 7 |
|
参考
{!blog.concret.io}: Testing SOAP Outbound Messages without failures