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 cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
PHP学习之数组的定义和填充
Apr 17 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
php实现webservice实例
Nov 06 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
PHP中文编码小技巧
Dec 25 PHP
抛弃 PHP 代价太高
Apr 26 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
Apr 08 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
怎么使 Mysql 数据同步
2006/10/09 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
原生js实现轮播图
2017/02/27 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python调用C++程序的方法详解
2017/01/24 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python with标签使用方法解析
2020/01/17 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
打架检讨书300字
2014/02/02 职场文书
房产委托公证书
2014/04/08 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
共青团员自我评价范文
2014/09/14 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
《植树问题》教学反思
2016/03/03 职场文书
自荐信大全
2019/03/21 职场文书