Digital Acorn

プログラムやサーバーの設定など、技術的な記事を載せております。

PHP Salesforce プログラミング

PHP Toolkit のSoapClientが接続できない

投稿日:2016-01-25 更新日:

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。
(そういう時は前もって連絡ください(怒)

その際、エラーが出るというのです。
ログを見ると、
SoapClientの__doRequestでCould not connect to hostが出ています。

何となくSSL関連じゃないの? と思いながらGoogle先生にお尋ねしていたんですが、「これ!」という結果が見つからず難渋しました。
解決するのに時間が掛かったので、忘備録として残しておきます。

PHPは5.6になってSSLの検証がデフォルトで働くそうなのですが、SSLの検証で失敗するので接続できないようです。
それで、そのSSLの検証を使用しないようにすることで通信できます。

本来はCAバンドルを上書きする必要があるようですが、この辺りはよくわかりません(笑)
(参考)http://php.net/manual/ja/migration56.openssl.php

実際opensslで接続してみると、エラーが報告されます。
openssl s_client -connect login.salesforce.com:443
> Verify return code: 20 (unable to get local issuer certificate)

■修正前

$sfClient = new SforcePartnerClient();
$sfClient->createConnection($wsdl);

■修正後

$opts = array(
  'ssl' => array('verify_peer'=>false, 'verify_peer_name'=>false)
);

$sfClient = new SforcePartnerClient();
$sfClient->createConnection($wsdl, null,
  array(
    'stream_context' => stream_context_create($opts)
  )
);

転写しただけなので、よく分かってないのですが、これでいいみたいです。

-PHP, Salesforce, プログラミング


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

エディタに最適なフォント

わたしはsublime text 3を使っています。 フォントをいろいろ探し回っていたんですが、結局「MS ゴシック」に戻ってしまいます。なぜなら、どれもフォントの描画がきれいでなく、横棒と縦棒の太さ …

【HTML5】 FormDataオブジェクトがログに出力されない(出力方法追記)

どうも仕様みたいですね。 どうやっても、無理でした。 隠ぺいされたオブジェクトっていうのも気持ち悪いですね。 それをajaxで送る、っていうのも気持ち悪い。 var fd = new FormData …

さくらのレンタルサーバーのメールをslackに通知する

今までメールを自分で作ったスクリプトで携帯に転送していたんですが、キャリアメールをやめたのでslackにメッセージを投げることにしました。 前提として、プランがスタンダードである必要があります。 何せ …

【BoW】PHPから送信するメールをテキストに保存する

テスト環境で使っていると、PHPのメール送信をテストしたい時があります。 かといって、実際に送信されてしまうと面倒です。 xamppにはmailtodiskというのがあり、メールをディスクに保存してく …

【PHP】ビルトインウェブサーバーで楽々テスト環境

teratailで質問に答えるようになったら、以外にサーバー立てずにテストして、ローカル制限に引っかかっている人が多いので、簡単に立てられるローカルサーバーの構築方法を書いておこうと思います。 まず、 …

広告