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 相关文章推荐
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
微信支付开发交易通知实例
Jul 12 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
php实现的后台表格分页功能示例
Oct 23 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP chunk_split()函数讲解
Feb 12 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 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
短波问题解答
2021/02/28 无线电
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python常用内置函数总结
2015/02/08 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python生成lmdb格式的文件实例
2018/11/08 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
自考毕业自我鉴定范文
2013/10/27 职场文书
商铺门前三包责任书
2014/07/25 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2015个人半年总结范文
2015/03/09 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python