Tích hợp paypal trong php
Xin chào. hôm nay chúng ta sẽ kết hợp Paypal với PHP để cho phép dễ dàng xử lý các tài khoản thanh toán trên trang web của bạn Show
Thành phẩm. Xem trướchướng dẫn nettuts + Paypal. Xem trước Bước 1 - Tạo tài khoản PayPalVới hướng dẫn này, bạn sẽ cần có tài khoản PayPal Premier và một trang web trực tuyến. Bắt đầu bằng cách truy cập paypal. com và nhấp vào "Đăng ký" ở đầu trang Chuyển sang Bắt đầu bên dưới Tiêu đề Premier; . Vui lòng điền đầy đủ thông tin cần thiết. Khi tài khoản của bạn đã được tạo ra, hãy đăng nhập và chuyển sang bước 2 Bước 2 - Kích hoạt IPNTrong bước này, chúng tôi sẽ kích hoạt Thông báo thanh toán tức thì (IPN) - thông báo thanh toán tức thì, vì vậy khi đăng nhập, vui lòng nhấp vào Hồ sơ và sau đó chọn Thông báo thanh toán tức thì Bây giờ trên màn hình tiếp theo, bạn sẽ thấy rằng IPN đã được chuyển thành "tắt"; Khi bắt đầu hướng dẫn này, tôi đã đề nghị rằng bạn sẽ cần một trang web trực tuyến. tại sao? . PayPal không thể truy cập các trang web được lưu trữ cục bộ trừ khi bạn có tất cả các cài đặt đã được cấu hình chính xác. (Điều này ảnh hướng đến việc mở cổng trên bộ định tuyến của bạn). Vì vậy, tôi sẽ nhập url vào tập lệnh xác thực của tôi, ví dụ. http. //www. tên miền của bạn. com/PayPal/ipn. php. Sau đó, PayPal sẽ đăng thông báo lên máy chủ của tôi, tại URL tôi đã chỉ định Bước 3 - Xây dựng một trang HTML đơn giảnĐược rồi, bây giờ chúng tôi cần một trang html đơn giản và cơ bản, đó là nơi khách truy cập của bạn có thể nhận quyền truy cập xuất vào khu vực bạn tải xuống của bạn mục lục. php - Một trang HTML đơn giản với biểu định kiểu
css/kiểu. css - Style đơn giản cho Trang HTML của chúng tôi body{ background: #2D2D2D; /* Set Website Background Color */ font: 11px 'Verdana'; /* Set Website Font Size & Font Type */ } #wrap{ margin: 0 auto; /* Center Our Content */ width: 500px; /* Set The Width For Our Content */ background: #FFF; /* Set Content Background Color */ padding: 10px; /* Set Padding For Content */ border: 1px solid #000; /* Add A Border Around The Content */ } Bước 4 - Xây dựng Nút PayPalChúng tôi cần tạo nút mua hàng, vì vậy vui lòng nhấp vào Dịch vụ người bán và sau đó chọn Trang web thanh toán tiêu chuẩn Bạn có thể chọn ba loại nút, Bán một mặt hàng, Bán nhiều mặt hàng và Đăng ký. Bây giờ trong hướng dẫn này, chúng ta sẽ tạo một mục duy nhất. Khi ai đó mua mặt hàng này, trong trường hợp này, hãy truy cập vào khu vực tải xuống. Khi thanh toán đã được xác thực, một email sẽ được gửi kèm theo các chi tiết Vui lòng nhập một số thông tin cho nút mua hàng của chúng tôi; Khi bạn đã hoàn thành từng phần, hãy tạo mã. Sao chép mã này vào clipboard của bạn và sau đó dán nó vào trong chỉ mục. php - nơi tôi đã thêm nhận xét vào trang html. Vui lòng xem lại bước 3 nếu cần Kết quả nên hoàn hảo. Người dùng có thể nhấp vào nút và hoàn tất giao dịch mua hàng của họ Bước 5 - Viết ipn. phpĐầu tiên, tạo ipn mới. php to we could started. Chúng tôi sẽ sử dụng một đoạn trích mà tôi đã tạo từ một thợ cắt tỉa lớn hơn mà bạn có thể lấy từ trang web của Paypal $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // post back to PayPal system to validate $header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); if (!$fp) { // HTTP ERROR } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { // PAYMENT VALIDATED & VERIFIED! } else if (strcmp ($res, "INVALID") == 0) { // PAYMENT INVALID & INVESTIGATE MANUALY! } } fclose ($fp); } ?> Vui lòng nhập thông tin chính xác cho cơ sở dữ liệu của bạn để chúng tôi có thể chèn dữ liệu trong bước tiếp theo PayPal POSTS (đăng) dữ liệu đến địa chỉ chúng ta định. Trong ví dụ này, chúng tôi chỉ cần địa chỉ email của người mua để chúng tôi có thể gửi cho anh ấy thông tin đăng nhập của anh ấy. Đoạn mã trên sẽ đọc dữ liệu mà PayPal gửi và trả lại thông tin cho PayPal. Tôi đã thêm hai bình luận trong đó mã sẽ đến nếu nó được xác nhận. Ngoài ra, tôi cũng đã thêm một bình luận chỉ định những gì nên được thực hiện nếu nó không được xác nhận Bước 6 - Tạo cơ sở dữ liệuBây giờ chúng ta sẽ tập trung vào các vấn đề xảy ra nếu thanh toán được xác thực. Đầu tiên, chúng ta cần xây dựng một bảng MySQL, nơi chúng ta lưu trữ thông tin người dùng. Chỉ đơn giản với trường id, email và mật khẩu Tiếp theo, chúng ta phải nhập bảng chi tiết của chúng tôi; Đối với những bạn không có thời gian để nhập tất cả các thông tin này, dưới đây là mã MySQL Dump để tạo lại bảng CREATE TABLE `users` ( `id` int(10) NOT NULL auto_increment, `email` varchar(50) NOT NULL, `password` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Bước 7 - Tạo tài khoảnOpen ipn. php. Chúng tôi sẽ viết mã sau bên dưới dòng "//PAYMET VALIDATED" Bước đầu tiên của tôi là lấy địa chỉ email của người mua; . php // PAYMENT VALIDATED & VERIFIED! $email = $_POST['payer_email']; Chúng ta phải tạo một biến cuối cùng - đó là mật khẩu mà chúng ta sẽ tạo ra bằng cách sử dụng php // PAYMENT VALIDATED & VERIFIED! $email = $_POST['payer_email']; $password = mt_rand(1000, 9999); Như bạn có thể thấy, chúng tôi đã sử dụng mt_rand để tạo mật khẩu ngẫu nhiên - trong trường hợp này là giá trị số từ 1000 đến 9999. Tiếp theo, chúng ta cần chèn dữ liệu này vào cơ sở dữ liệu của mình. Để làm như vậy, chúng tôi sẽ sử dụng chèn truy vấn mysql // PAYMENT VALIDATED & VERIFIED! $email = $_POST['payer_email']; $password = mt_rand(1000, 9999); mysql_query("INSERT INTO users (email, password) VALUES('". mysql_escape_string($email) ."', '".md5($password)."' ) ") or die(mysql_error()); Ở đây chúng tôi nói kịch bản của chúng tôi để chèn email và mật khẩu vào cơ sở dữ liệu của chúng tôi. Tôi đã thêm một mysql_escape_string để đảm bảo rằng vấn đề mysql injection không thể xảy ra. Tôi cũng đã thêm hàm md5 vào mật khẩu của chúng tôi để nó sẽ được lưu trữ dưới dạng băm 32 ký tự. Bây giờ tài khoản đã được tạo; Bước 8 - Gửi email thông tin đăng nhậpChúng tôi cần viết mã để gửi thông tin đăng nhập qua email cho người mua. Để thực hiện điều này, chúng tôi sẽ sử dụng hàm mail php // PAYMENT VALIDATED & VERIFIED! $email = $_POST['payer_email']; $password = mt_rand(1000, 9999); mysql_query("INSERT INTO users (email, password) VALUES('". mysql_escape_string($email) ."', '".md5($password)."' ) ") or die(mysql_error()); $to = $email; $subject = 'Download Area | Login Credentials'; $message = ' Thank you for your purchase Your account information ------------------------- Email: '.$email.' Password: '.$password.' ------------------------- You can now login at http://yourdomain.com/PayPal/'; $headers = 'From:[email protected]' . "\r\n"; mail($to, $subject, $message, $headers); Please chia nhỏ chức năng email này. Chúng tôi sử dụng biến $email để nhận địa chỉ email của người dùng và gán nó cho biến $to Bước 9 - Email thanh toán không hợp lệMột số khoản thanh toán không hợp lệ có thể xảy ra trong khoảng thời gian khó khăn, mà còn do một vấn đề với PayPal; Mã này gần giống như trên, chỉ chúng tôi thực hiện một số thay đổi đối với người nhận, chủ đề và thông báo Bước 10 - Người dùng đăng nhậpĐây là bước cuối cùng, ở đây chúng tôi xây dựng một biểu mẫu đăng nhập đơn giản cho người mua của chúng tôi. Tạo một tệp php mới và đặt tên là đăng nhập. php. Chúng tôi sẽ sử dụng cùng một trang HTML đã được sử dụng cho chỉ mục. php, chúng tôi sẽ chỉ điều chỉnh một số nội dung của trang và tất nhiên là bổ sung ít kiểu dáng cho biểu mẫu đăng nhập của chúng tôi đăng nhập. php - Đây là trang mà người mua của chúng tôi có thể đăng nhập
phong cách bổ sung. css body{ background: #2D2D2D; /* Set Website Background Color */ font: 11px 'Verdana'; /* Set Website Font Size & Font Type */ } #wrap{ margin: 0 auto; /* Center Our Content */ width: 500px; /* Set The Width For Our Content */ background: #FFF; /* Set Content Background Color */ padding: 10px; /* Set Padding For Content */ border: 1px solid #000; /* Add A Border Around The Content */ }0 Bây giờ chúng tôi đã tạo ra hình thức của mình, chúng tôi cần kiểm tra xem thông tin xác thực đăng nhập có chính xác hay không. Tôi đã thay đổi đăng nhập. php to we could started body{ background: #2D2D2D; /* Set Website Background Color */ font: 11px 'Verdana'; /* Set Website Font Size & Font Type */ } #wrap{ margin: 0 auto; /* Center Our Content */ width: 500px; /* Set The Width For Our Content */ background: #FFF; /* Set Content Background Color */ padding: 10px; /* Set Padding For Content */ border: 1px solid #000; /* Add A Border Around The Content */ }1 Mã trên sẽ kiểm tra xem email và mật khẩu đã nhập đủ chưa. Nếu đủ, chúng tôi có thể xác minh thông tin đăng nhập thông minh. Nếu không, chúng tôi sẽ trả lại lỗi. Mã tiếp theo chúng ta sẽ viết sẽ được đặt bên dưới "//Verify". Đầu tiên, chúng ta cần biến các biến post thành các biến cục bộ body{ background: #2D2D2D; /* Set Website Background Color */ font: 11px 'Verdana'; /* Set Website Font Size & Font Type */ } #wrap{ margin: 0 auto; /* Center Our Content */ width: 500px; /* Set The Width For Our Content */ background: #FFF; /* Set Content Background Color */ padding: 10px; /* Set Padding For Content */ border: 1px solid #000; /* Add A Border Around The Content */ }2 Tôi đã thêm một hàm thoát để ngăn chặn việc tiêm mysql và đã chuyển mật khẩu thành hàm băm md5. Bởi vì chúng tôi đã làm điều này trong cơ sở dữ liệu, chúng tôi cũng phải băm mật khẩu của người dùng để so sánh hai giá trị chính xác. Bây giờ là lúc để xác thực dữ liệu body{ background: #2D2D2D; /* Set Website Background Color */ font: 11px 'Verdana'; /* Set Website Font Size & Font Type */ } #wrap{ margin: 0 auto; /* Center Our Content */ width: 500px; /* Set The Width For Our Content */ background: #FFF; /* Set Content Background Color */ padding: 10px; /* Set Padding For Content */ border: 1px solid #000; /* Add A Border Around The Content */ }3 Như bạn có thể thấy, chúng tôi đang chạy truy vấn mysql và đang chọn tất cả dữ liệu từ bảng người dùng của chúng tôi - nhưng chỉ có hàng chứa email của người dùng phù hợp với dữ liệu từ cơ sở dữ liệu Xong rồi đấyAnd that is end of this direction. Tôi hy vọng bạn thích bài viết, và thoải mái để bình luận lại bình luận cùng những suy nghĩ của bạn. Bạn có lời khuyên hữu ích nào không? |