2013-10-08 2 views
1

Im с использованием библиотеки CI Merchant в Codeigniter, ниже сообщение об ошибке им получить после того, как var_dump на $ ответCodeigniter CI сертификат Merchant SSL верифицировать не удалось

protected '_status' => string 'failed' (length=6) 
protected '_message' => string 'SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed' (length=146) 

Ниже мой код

 $this->merchant->load('paypal_express'); 
     $settings = array(
      'username' => 'testaccount', 
      'password' => 'accountpassword', 
      'signature' => 'storename', 
      'test_mode' => true 
     ); 
     $this->merchant->initialize($settings); 


     //redirect to success/failure of transaction 
     $params = array(
      'amount' => $amount, 
      'currency' => $currency, 
      'return_url' => site_url('membership/complete/'.$memberid), 
      'cancel_url' => site_url('membership/fail') 
     ); /**/ 

     $response = $this->merchant->purchase_return($params); 

Что может быть неправым? Заранее спасибо

ответ

0

Что может быть неправильным? Срок действия сертификата истек. Сертификат самоподписан. Сертификат был отозван. Можете только гадать, не зная, к чему подключен URL-адрес.

Возможное исправление для изменения библиотеки вы используете, чтобы игнорировать ошибку:

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
+0

Или хорошим решением было бы использовать Ominipay, поскольку ci-merchant больше не поддерживается. –

2

Я бы не рекомендовал @ решения stormdrain, поскольку это снижает безопасность сервера. Реальная проблема заключается в том, что PHP не может найти правильный корневой сертификат ЦС на вашем веб-сервере. Как правило, это случай, когда вы разговариваете со своим веб-хостом и получаете их для сортировки.

Или вы можете обновить до Omnipay, который является заменой CI-Merchant, и внутренне он использует Guzzle, который поставляется в комплекте с сертификатом корневого ЦС. Поэтому эта проблема исчезнет.

+0

Bbbbut Мы не знаем, пытаемся ли они подключиться к своему серверу, для которого у них нет сертификата. Хотя лучше всего было бы получить один и использовать omnipay, как было предложено (я не знал о том, что ci merchant устарел), выключение этих завихрений - это обходной путь :) – stormdrain

+0

Я отключил завитки и получил еще одну ошибку «Безопасность заголовок недействителен ". –

+0

@Adrian не могли бы вы разместить простую реализацию paypal_express omnipay в codeigniter: - | –

0

Я думаю, вы уже решили свою проблему, но другие, возможно, столкнулись с той же проблемой.

Убедитесь, что вы поставили подпись cacert.pem, которая поставляется с библиотекой ci-mercant в каталог config/. В настоящее время на github находится here

Имел такой же ответ & тот же самый фрагмент кода. Это решило мою проблему.

Смежные вопросы