2013-01-15 3 views
1

PayPal을 내 웹 사이트에 통합하는 중입니다. 이 단계에서는 Instant Payment Notification (IPN) 시뮬레이터와 함께 PayPal 샌드 박스를 사용하고 있습니다. 청취자 자신에게는 Micah Carrick's code을 사용하고 있습니다. 샌드 박스를 통해 IPN를 보낼 때, 나는 다음과 오류를받은 :PHP와 PayPal IPN 통합 - cURL 오류 : SSL CA 인증서

cURL error: [77] Problem with the SSL CA cert (path? access rights?)

내가 원래 문제가 내 웹 사이트가 SSL 인증서를 부족 것을 알았는데, 그래서 하나를 구입하고 설치했습니다. 불행히도, 그건 내 문제를 해결하지 못했습니다. 더 많은 조사를 한 후에 나는 PayPal이나 cURL로부터 인증서 파일이 누락되었다는 인상을 받고 있습니다. PayPal에서 개발자 번들 (pp_php_soap_sdk_1) 중 하나를 다운로드하고 api_cert_chain 파일을 내 ipn 코드의 디렉토리에 복사했지만 성공하지 못했습니다. 인증서를 보면 인증서가 만료 된 것처럼 보이므로 문제가 될 수 있습니다. 어떤 아이디어?

+0

만료 된 경우 문제 일 가능성이 큽니다. 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false);'시도해보십시오. ** ** 장기적인 해결책이 아닙니다. – glomad

+0

그래도 오류를 제거 할 수 있었지만 유효한 IPN 또는 유효하지 않은 IPN 중 하나를 알려주는 이메일을받지 못했습니다. 브라우저에 ipn의 URL을 입력하면 내 오류 로그가 올바로 작동하고 있음을 알 수 있도록 내 로그에 잘못된 HTTP 요청 방법 오류가 표시됩니다. 내가 이메일을받지 못하는 이유는 무엇입니까? 둘째, 이것이 장기적인 해결책이 아니라는 점을 감안할 때 curl_setopt 함수 호출을 false로 변경할 필요가 없도록 적절한 SSL CA를 어디에서 얻을 수 있는지 알고 있습니까? – panoramic

답변

1

바보처럼 느껴지지만 문제는 SSL CA 인증서를 저장하고 있던 위치에서 비롯된 것입니다. 은 "ipn_listener.php"파일에서

+0

"올바른"위치와 "잘못된"위치에 대해 자세히 설명해 주시겠습니까? 구체적인 예를 들자면 @stu와 같은 다른 사람들에게 도움이 될 것입니다. – Leigh

0

dirname(__FILE__)."/api_cert_chain.crt"); 

당신이 그가 .crt 경로가 실제로가 .crt이 어디 있는지를 가리키고 있는지 확인하는 데 필요한 api_cert_chain.crt를 가리키는 코드가있다 귀하의 웹 서버에.

1

파일 ipn_listener.php는 "api_cert_chain.crt"라는 파일을 가리 킵니다. 당신은 그것을 놓칠 가능성이 가장 큽니다. 당신은에서 다운로드 할 수 있습니다 : https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PHP_SOAP_SDK.zip

우편 번호를 다운로드하고 압축을 풉니 다. "api_cert_chain.crt"파일은 PP_PHP_SOAP_SDK/php-sdk/lib/PayPal/cert 폴더에 있습니다. 파일을 서버의/cert/디렉토리에 업로드합니다 (폴더를 만들어야 할 수도 있음).

나는이 웹 사이트에서 해결책을 찾았습니다 (마지막 게시물) : Webmaster World.