本文共 1807 字,大约阅读时间需要 6 分钟。
在PHP项目中整合PayPal支付功能的第一步是构建支付表单。下面是常见的表单参数及其说明:
为了确保支付操作的安全性,需验证PayPal传来的即时付款通知(IPN)。以下是常见的IPN验证实现方式:
class PayPal { var $ipn_data = array(); var $fields = array(); var $paypal_url = 'https://www.paypal.com/cgi-bin/webscr'; function validate_ipn() { // Parse PayPal URL $url_par = parse_url($this->paypal_url); // Generate post string $post_str = ''; foreach ($_POST as $field => $value) { $this->ipn_data[$field] = $value; $post_str .= $field . '=' . urlencode(stripslashes($value)) . '&'; } $post_str .= "cmd=_notify-validate"; // Open connection $fp = fsockopen($url_par['host'], "80", $errnum, $errstr, 30); if (!$fp) { return false; } else { // Send data to PayPal fputs($fp, "POST " . $url_par['path'] . " HTTP/1.1\r\n"); fputs($fp, "Host: " . $url_par['host'] . "\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: " . strlen($post_str) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $post_str . "\r\n\r\n"); // Read response $response = ''; while (!feof($fp)) { $response .= fgets($fp, 1024); } fclose($fp); return (strpos($response, "VERIFIED") !== false) ? true : false; } }} 转载地址:http://iavfk.baihongyu.com/