php与paypal整合方法


Posted in PHP onNovember 28, 2010

我晕,最近这个用paypal付款的功能搞了我2天,还没搞完。郁闷死了。
先做个笔记,把已经搞定的部分写下来,省的以后忘了。
1 注册SandBox账号,并且建立两个虚拟账号,可以选择自动建立的那一项。一个buyer,一个seller。以供 开发的时候测试使用。

2 实现快速购买的代码。链接暂时指向SandBox便于开发时的测试。以后再改成正式的。

if(!defined("_f_afficherButtonPayPal")) 
{ define("_f_afficherButtonPayPal",1); 
function afficherButtonPayPal($nbr_point,$montant) 
{ echo"<td width=\"50\"> </td>"; 
echo "<td> 
<form action=\"https://www.sandbox.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_blank\"> 
<input type=\"hidden\" name=\"cmd\" value=\"_xclick\"> 
<input type=\"hidden\" name=\"business\" value=\"email_of_seller@emai.com\"> //这个是刚才建立的seller的账号 
<input type=\"hidden\" name=\"item_name\" value=\"$nbr_point points\"> 
<input type=\"hidden\" name=\"currency_code\" value=\"EUR\"> //付款的币种,我写的是欧元 
<input type=\"hidden\" name=\"amount\" value=\"$montant\"> // 快速付款的总金额 
<input type=\"image\" src=\"../src/img/x-click-but01.gif\" name=\"submit\" alt=\"Veuillez vous payer par PayPal\"> //显示的paypal图片 
</form> 
</td>"; 
} 
}

3 将已经付款的信息传回去,应该是要用IPN,还没搞定,再接再励

补充资料:
从参考文档得知:
Paypal专门开发了Sandbox给开发人员进行开发测试
首先到https://developer.paypal.com/ 注册一个开发帐号,
再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),
这种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成

一些随机的号码)。接着激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件地

址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录Sandbox

的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多

少)。然后,还需要激活IPN的选项,在Business的那个账户的Profile设置页面中,点击,然后点击Edit按钮,打开

IPN,这里如果你使用的是固定的IPN Handle,可以直接将地址填入。
接下来,我们测试的时候,应该将Paypal接口的地址设置为https://www.sandbox.paypal.com/cgi-bin/webscr
最后基本的流程为:
用户在我们的网站上选择商品、放入购物车,然后检查准备支付
网站根据购物车中的商品,生成Paypal的支付表单(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一

些信息(下次会专门找机会解释一下)。并在自己的数据库中生成一张订单记录。
Paypal在Session中记录下这些交易信息

用户用Paypal账户登录Paypal(Sandbox用Sandbox的虚拟帐号),复查明细,点击Pay按钮
Paypal进行交易处理,如果我们的Paypal收款帐号在接受帐款上没有什么问题(没有特别的需要Accept的地方),交易

完成,那么Paypal会发送一个IPN,并发送提示邮件。
我们IPN Handler接受到信息,首先向Paypal进行校验,如果信息正确,然后根据信息和自己数据库中进行比对,如果

无误,可以将支付信息保存,并修改订单状态。
然后Paypal会显示一个界面表示交易完成,此时如果用户点击“Return”按钮,Paypal会将用户送回我们网站指定地点。
我们网站迎接用户回来,向用户表示感谢,并进行提醒,给出订单号等等。
应为我最后需求的只是要一个总价的结算,并不需要和网店接合.所以简单了很多.只要把总价生成,放进paypal里就基本算

完成了.如果网店的话还需要在paypal里设置一大堆的参数.比较麻烦.

<form name="paypay_form" action="https://www.paypal.com/cgi-bin/webscr" method="post"><!--提交的地址--> 
<input type="image" src="Styles/Compact/Images/payicon.jpg"></p><!--按钮的图片--> 
<input type="hidden" value="vihaoo_1195608276_biz@gmail.com" name="business"></p><!--收款账户--> 
<input type="hidden" value="Products" name="item_name"></p><!--付款详细内容--> 
<input type="hidden" value="dweeww" name="item_number"></p><!--付款详细内容--> 
<input type="hidden" value="http://www.xxx.xxx" name="return"></p><!--返回地址--> 
<input type="hidden" value="150.0" name="amount"></p><!--金额--> 
<input type="hidden" name="currency_code" value="USD"><!--货币--> 
</form>
PHP 相关文章推荐
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
php数组指针操作详解
Feb 14 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
phpstudy后门rce批量利用脚本的实现
Dec 12 PHP
php操作redis命令及代码实例大全
Nov 19 PHP
网站用php实现paypal整合方法
Nov 28 #PHP
paypal即时到账php实现代码
Nov 28 #PHP
解析PayPal支付接口的PHP开发方式
Nov 28 #PHP
php购物网站支付paypal使用方法
Nov 28 #PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 #PHP
php下封装较好的数字分页方法
Nov 23 #PHP
php下使用iconv需要注意的问题
Nov 20 #PHP
You might like
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
事业单位辞职信范文
2014/01/19 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
高三生物教学反思
2014/01/25 职场文书
事务机电主管工作职责
2014/02/25 职场文书
小学教师寄语大全
2014/04/03 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
离婚上诉状范文
2015/05/23 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
导游词之山海关
2019/12/10 职场文书