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中的多态性[译]
Aug 02 PHP
php 文章调用类代码
Aug 11 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
Jul 02 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
php屏蔽错误及提示的方法
May 10 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
zend framework多模块多布局配置
2011/02/26 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
简单实现php上传文件功能
2017/09/21 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
Python实现感知机(PLA)算法
2017/12/20 Python
python定时关机小脚本
2018/06/20 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
基于python实现把图片转换成素描
2019/11/13 Python
virtualenv介绍及简明教程
2020/06/23 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
欢迎词范文
2015/01/27 职场文书
河童之夏观后感
2015/06/11 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python