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 google或baidu分页代码
Nov 26 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
最常用的8款PHP调试工具
Jul 06 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP目录操作实例总结
Sep 27 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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
第八节 访问方式 [8]
2006/10/09 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
php过滤敏感词的示例
2014/03/31 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python编程中的文件操作攻略
2015/10/16 Python
python实现用户管理系统
2018/01/10 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python实现随机漫步功能
2018/07/09 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
win10安装python3.6的常见问题
2020/07/01 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
质量工程师岗位职责
2013/11/16 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
企业军训感想
2014/02/07 职场文书
保护环境建议书300字
2014/05/13 职场文书
先进党员事迹材料
2014/12/24 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
浅谈克隆 JavaScript
2021/11/02 Javascript