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 相关文章推荐
Php做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php 注释规范
Mar 29 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
Yii学习总结之安装配置
Feb 22 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
PHP实现文件上传下载实例
Oct 18 PHP
Laravel实现ApiToken认证请求
Oct 14 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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
php 远程关机操作的代码
2008/12/05 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
javascript常见操作汇总
2014/09/03 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
python中去空格函数的用法
2014/08/21 Python
python中ConfigParse模块的用法
2014/09/29 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python数据可视化之画图
2019/01/15 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python面向对象编程基础实例分析
2020/01/17 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
优秀小学生家长评语
2014/01/30 职场文书
小学教师师德承诺书
2014/05/23 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
催款函范本大全
2015/06/24 职场文书
人代会简报
2015/07/21 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python