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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
laravel5表单唯一验证的实例代码
Sep 30 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
php 验证码实例代码
2010/06/01 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
浅谈js闭包理解
2019/03/28 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
Python zip()函数用法实例分析
2018/03/17 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
python根据文本生成词云图代码实例
2019/11/15 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
数字天堂软件测试面试题
2012/12/23 面试题
印刷工程专业应届生求职信
2013/09/29 职场文书
测绘工程系学生的自我评价
2013/11/30 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
服务行业演讲稿
2014/09/02 职场文书
刑事和解协议书范本
2014/11/19 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP