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去除HTML标签实例
Nov 06 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 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
消息持续发送的完整例子
2006/10/09 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
JavaScript去除空格的几种方法
2006/10/03 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
Python获取脚本所在目录的正确方法
2014/04/15 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
Python 求向量的余弦值操作
2021/03/04 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
幼儿园教师奖惩制度
2014/02/01 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
亮化工程实施方案
2014/03/17 职场文书
小学生通知书评语
2014/12/31 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
创业计划书之寿司
2019/07/19 职场文书
导游词之上海豫园
2019/10/24 职场文书
python实现自动化群控的步骤
2021/04/11 Python