We are ACORN!

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

PHP Salesforce プログラミング

PHP Toolkit のSoapClientが接続できない

投稿日:2019-01-19 更新日:

クライアントが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

メールアドレスが公開されることはありません。

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

関連記事

Visual Studio CodeでWSL上のPHPをデバッグ

前書き Sublime Text 3を愛用しているんですが、だんだん他のエディタが追いついて、追い抜いて来たような感じがします。 Sublime Textは更新が止まってしまっているので、まあしょうが …

PHPからsyslogを書く

忘備録です。 PHPでシステム回りを作っているんですが、syslogに出力出来たらなー、と思っていました。 調べたら簡単♪ function logger($mes) { exec("/bi …

【qmail】携帯キャリアのメールに添付を削除して転送する

qmailでメールを携帯に転送して、メール通知に使っておられる方は結構多いんじゃないでしょうか。 ただ、大きなファイルが添付されていると、エラーメールが送信元に戻ってしまいます。 つまり、クライアント …

Google Apps Script でWebAPIを作ろう

Google Apps Scriptを使うと簡単にWeb APIを作ることが出来ます。 準備 まず、Google Drive上からApps Scriptを作れるようにしましょう。 ドライブの左上の「新 …

MarkDownDiagram

マークダウンで画面遷移図などのダイアグラムを作れるツールをブラウザベースで作ってくださった方がおられます。 大変重宝していて、業務で使いまくりです。 https://github.com/wakufa …