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脚本中include文件出错解决方法
Nov 20 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php微信高级接口群发 多客服
Jun 23 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php中namespace及use用法分析
Dec 06 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP fopen函数用法实例讲解
Feb 15 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文件读写操作之文件读取方法详解
2011/01/13 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Python中unittest用法实例
2014/09/25 Python
Python中的装饰器用法详解
2015/01/14 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python计算方程式根的方法
2015/05/07 Python
Python实现基本线性数据结构
2016/08/22 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python实现网页录音效果
2020/10/26 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
班组长安全职责
2014/01/05 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
增值税发票丢失证明
2015/06/19 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏