Sửa lỗi Paypal IPN SSL connect error

Thảo luận trong 'PHP' bắt đầu bởi xman, 25/8/16.

  1. xman

    xman Administrator Thành viên BQT

    Tham gia ngày:
    6/7/15
    Bài viết:
    43
    Đã được thích:
    2
    Điểm thành tích:
    8
    Lỗi này xảy ra khi server của bạn kết nối với Paypal để kiểm tra tính hợp lệ của giao dịch. Không hiểu sao đợt này Paypal thay đổi nên mình bị vấn đề với SSL khi dùng CURL.

    Bạn nào gặp tình trạng tương tự thì có thể làm theo và tham khảo trong bài viết này:

    - Đầu tiên là nguyên nhân OpenSSL của bạn là phiên bản cũ và bạn cần phải nâng cấp lên phiên bản mới nhất.

    - Mình dùng php nên mình tham khảo bài viết tại đây: https://github.com/paypal/tls-update#php và đây https://github.com/paypal/ipn-code-samples/issues/53, các bạn kiểm tra phiên bản hiện tại của hệ điều hành rồi tiến hành nâng cấp nhé:

    - Kiểm tra phiên bản của hệ điều hành trên Centos, các bạn vào shell ssh gõ lệnh:
    Mã:
    openssl version
    - Kiểm tra phiên bản đang dùng của php (các bạn có thể dùng hàm) trong mã nguồn:
    Mã:
    curl_version()
    hoặc ngay trong shell ssh gõ lệnh:
    Mã:
    php -r 'echo json_encode(curl_version(), JSON_PRETTY_PRINT);'
    Lưu ý: là phiên bản của hệ điều hành sẽ khác phiên bản của PHP sử dụng nhé, sau khi kiểm tra phiên bản thì có thể download file đính kèm là cacert.pem và TlsCheck.php để kiểm tra.

    - Kiểm tra thử kết nối với Paypal
    Có 2 cách một là các bạn upload file lên server và chạy trên trình duyệt, hai là bạn dùng shell ssh để chạy lệnh sau:
    Mã:
    php -f TlsCheck.php
    Nếu server của bạn không gặp vấn đề gì thì sẽ nhận được thông báo:
    Mã:
    PayPal_Connection_OK
    ngược lại thì có nghĩ là bạn cần phải nâng cấp lên ngay bây giờ:
    Mã:
    curl_error error information
    Nâng cấp OpenSSL (CentOS)

    Việc nâng cấp thì các bạn có thể tham khảo phiên bản mới nhất ở đây mình dùng Centos: https://curl.haxx.se/download.html#LinuxRedhat

    Do ở bài viết này php curl của mình đang dùng 7.19 và phiên bản mới nhất đang là 7.50, và OpenSSL của hệ điều hành là 1.0.1e (Paypal yêu cầu phải từ 1.0.1c)

    Vậy là mình chỉ cần nâng cấp php libcurl thôi.

    Các bạn vào shell ssh gõ và làm theo hướng dẫn:
    Mã:
    rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-1-13.rhel6.noarch.rpm
    yum install libcurl
    
    Đối với bạn nào dùng Mamp Pro trên MacOS thì có thể làm theo bài viết này nhé: https://github.com/lunr/mamp-curl-tls
     

    Các file đính kèm:

Chia sẻ trang này