- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Chú ý. thanh toán Paypal trong prestashop đã không còn hỗ trợ giao thức sslv3 nữa, nó làm ảnh hưởng đến 80% tổng số Paypal module hiện tại đã được cài đặt trên Prestashop. Bài viết này mình sẽ hướng dẫn các bạn sửa lỗi trước khi paypal loại bỏ giao thức này.
Vấn đề
Vào 14 tháng 10 năm 2014, một lỗi đã phát hiện trong giao thức bảo mật SSL 3.0 (Secure Sockets Layer). Điều này có thể gây ra lỗ hổng bảo mật dữ liệu và có thể rất có khả năng phơi bầy cho người khác cho phép họ chặn dữ liệu truyền giữa máy tính và servers.
Paypal quyết định ngừng sử dụng giao thức SSLv3 bắt đầu từ 3/12/2014. Nếu bạn sử dụng Paypal trong Prestashop bạn có thể nhận được một email với thông báo “Immediate action required” được gửi bởi chính paypal đó là những gì tôi vừa đề cập ở trên.
Thực chất tất cả mọi người hiện tại đều đang kích hoạt module Paypal thanh toán trong Prestashop store , họ cần sửa lỗi trước khi họ kết thúc hỗ trợ giao thức tồn tại này để có thể tiếp tục chấp nhận thanh toán với Paypal. Bạn cũng đừng lo lắng bởi vì Nhóm Prestashop đã đưa ra phiên cập nhật cho lỗi module này, nhưng bạn có thể không muốn nâng cấp toàn bộ module sẽ rất nguy hiểm, thường xuyên gặp vấn đề lỗi. Sau đây là mẹo giúp bạn sử lý để giảm thiểu những lỗi nên tránh gặp phải.
Tôi chưa áp dụng trong Prestashop của mình nhưng nhà phát triển modules có tuyên bố “phiên bản 2.8.6 không bị ảnh hưởng”. Vì vậy Nếu hiện tại bạn vẫn giữ nguyên phiên bản cũ, bạn có thể hoàn toàn yên tâm sử dụng module đó.
Hướng dẫn cách sửa lỗi
Trước khi thực hiện, bạn nên backup lại database cho dữ liệu của module paypal và các files của module paypal.
Nếu bạn muốn tiến hành nâng cấp đầy đủ (đó là cách dễ nhất tuy nhiên sẽ gặp nguy hiểm với lựa chọn này), bạn có thể tải phiên bản module Paypal Europe mới nhất tại đây.
Các file sau hầu hết tương thích với một vài phiên bản module, mình đã sửa lại code của chúng và nén lại file dưới đây bạn có thể tải về. File sửa là /modules/paypal/api/paypal_connect.php nếu bạn đang dùng module payal 3.0.9 trở lên và file /modules/paypal/api/paypalconnect.php nếu module của bạn cũ hơn.
Do đó, nếu bạn không phải là một lập trình viên và không rành về code PHP bạn có thể sửa lỗi module này bằng cách sử dụng files đã sửa lỗi mà mình có chuẩn bị sẵn ở đây:
Download fixed files paypal module
Làm theo chỉ dẫn sau:
1. Giải nén file zip ở trên và copy vào đúng đường dẫn thư mục theo cấu trúc folder của paypal module trong Prestashop của bạn.
2. Chỉ đơn giản là thay thế file gốc, vào thư mục /modules/paypal/api/.
Chi tiết cách làm
Sửa lại file API cũng khá đơn guản nếu bạn có một chút kiến thức về PHP. Để bắt đầu bạn mở file ‘/modules/paypal/api/paypal_connect.php’ (hoặc paypalconnect.php ở phiên bản cũ) và tìm dòng sau:
@curl_setopt($ch, CURLOPT_SSLVERSION, 3);
Để chú giải tại dòng đó hoặc có thể xóa đi. Tìm tiếp dòng:
$fp = @fsockopen('sslv3://'.$host, 443, $errno, $errstr, 4);
Chỉ đơn giản, thay đổi lại dòng trên như thế này:
$fp = @fsockopen('tls://'.$host, 443, $errno, $errstr, 4);
Vậy là xong, lưu và upload lại file lên server.
Test
Bạn không còn đau đầu trong quá trình khách hàng sử dụng module paypal để thanh toán nữa, nhưng hãy chắc chắc là module có làm việc! Nếu bạn bị hiển thị thông tin như thế này.
Bạn cần làm gì tiếp theo? hãy xem những gì diễn ra khi sử lý API bằng cách sử dụng đoạn code sau:
echo "<pre>";print_r($this->_logs);echo "</pre>";
Chèn vào trước dòng:
@curl_close($ch);
Nó sẽ cho bạn biết các vấn đề đã gặp phải trong quá trình chạy code.
Vui lòng chia sẻ bài viết này để cộng đồng sử dụng Prestashop có thể giúp bạn và nếu bạn có ý tưởng rồi thì xin chia sẻ với mình bằng cách để lại comment nhé.
Chúc bạn thành công.
Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype