PHP整合PayPal支付


Posted in PHP onJune 11, 2015

简单整理一下PHP项目整合PayPal支付功能。

一、表单的构建:

<form method="post" name="form" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="rm" value="2"/>
<input type="hidden" name="cmd" value="_xclick"/>
<input type="hidden" name="business" value="商家账号"/>
<input type="hidden" name="return" value="返回网址"/>
<input type="hidden" name="cancel_return" value="取消返回网址"/>
<input type="hidden" name="notify_url" value="用于接收PayPal发送的即时付款通知的URL,必须是有效的URL"/>
<input type="hidden" name="item_name" value="物品名称"/>
<input type="hidden" name="item_number" value="可用于跟踪购买或捐赠的传递变量,在付款完成时传回给您"/>
<input type="hidden" name="amount" value="物品的价格(购物车中所有物品的总价格"/>
<input type="hidden" name="currency_code" value="币种"/>
</form>

二、IPN验证部分

<?php
class paypal {
var $ipn_data = array();     // array contains the POST values for IPN
var $fields = array();      // 提交给Paypal的表单参数,例:item_name=iPhone 6,quantity=1,amount=499,currency_code=USD等所有表单信息,
 // 在调用验证IPN之前事先需要初始化好
var $paypal_url = 'https://www.paypal.com/cgi-bin/webscr';//sandbox:https://www.sandbox.paypal.com/cgi-bin/webscr

function validate_ipn() {//验证IPN
// parse the paypal URL
$url_par=parse_url($this->paypal_url);
// generate the post string from the _POST vars aswell as load the
// _POST vars into an arry so we can play with them from the calling
// script.
$post_str = '';
foreach ($_POST as $field=>$value) {
$this->ipn_data["$field"] = $value;
$post_str .= $field.'='.urlencode(stripslashes($value)).'&';
}
$post_str.="cmd=_notify-validate"; // append ipn command
// open the connection to paypal
$fp = fsockopen($url_par[host],"80",$errnum,$errstr,30);
if(!$fp) {
// could not open the connection.
return false;
} else {
// Post the data back 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");
// loop through the response from the server and append to variable
while(!feof($fp)) {
$this->validate_ipn_response .= fgets($fp, 1024);
}
fclose($fp); // close connection
 }
if (eregi("VERIFIED",$this->validate_ipn_response)) {
return true;
} else {
return false;
}
}
}
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
PHP实现的简单缓存类
Jul 29 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
PHP goto语句用法实例
Aug 06 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 PHP
解决php扩展安装不生效问题
Oct 25 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 PHP
php 在线导入mysql大数据程序
Jun 11 #PHP
php简单图像创建入门实例
Jun 10 #PHP
php使用GD库创建图片缩略图的方法
Jun 10 #PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 #PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 #PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 #PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 #PHP
You might like
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
laravel5.6实现数值转换
2019/10/23 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
python常量折叠基础知识点讲解
2021/02/28 Python
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
运动会稿件100字
2014/02/21 职场文书
5s推行计划书
2014/05/06 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
介绍信的格式
2015/01/30 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
MySQL添加索引特点及优化问题
2022/07/23 MySQL
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers