Help us understand the problem. What is going on with this article?

EC-CUBE3 & クロネコwebコレクトで「当該加盟店のAPI利用不可」エラーになるときの対処

More than 1 year has passed since last update.

xserverでEC-CUBE3 & クロネコwebコレクトを使おうとしたときにちょっとハマりそうになった書いておきます。

現象

専用IPアドレスを用意していても、クロネコwebコレクトの決済で「当該加盟店のAPI利用不可」というエラーになる
http://yamato-financial.okbiz.okwave.jp/faq/show/2804?site_domain=default

原因

EC-CUBEをインストールしたWebサーバーが複数のNICを持っていたため、ヤマトの決済サーバにアクセスする際に専用IPアドレスを使っていなかった。

対策

プラグイン内のcurl関数のオプションを設定している部分に、CURLOPT_INTERFACE を追加して、専用IPアドレスを設定する

YamatoPayment\Service\Client\BaseClientService.php の383行目から。

YamatoPayment\Service\Client\BaseClientService.php
        // 通信実行
        try {
            $curlOptions = array('CURLOPT_SSLVERSION' => 0, 'CURLOPT_INTERFACE' => 'xxx.xxx.xxx.xx'); // 専用IPアドレスを指定
        // 中略
            $client->setConfig(array('curl.options' => $curlOptions));

環境

  • xserverの共用サーバー + CoreSSL証明書 + 専用IPアドレスオプション
  • php 7.1.4
  • EC-CUBE 3.0.15
  • クロネコヤマト カード・後払い一体型決済モジュール 1.1.0

参考

PHPマニュアル curl_setopt()関数

ykatombn
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away