php与paypal整合方法

 更新时间:2010年11月28日 15:32:24   作者:  
这几天,boss要求在system中整合paypal,方便交易.个个都没空,就我比较清闲.所以,这工作就落我身上了.一点头绪都没有.只能先google一下了.查找了大半个上午,中午懂了那么一点.还好paypal提供了比较完整的参考文档.
我晕,最近这个用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\">&nbsp;</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实现链表的定义与反转功能示例

    这篇文章主要介绍了PHP实现链表的定义与反转功能,结合实例形式分析了PHP链表的基本定义、添加、移除、遍历以及两种反转操作相关实现技巧,需要的朋友可以参考下
    2018-06-06
  • PHP数据缓存技术

    PHP数据缓存技术

    PHP数据缓存技术...
    2007-02-02
  • php adodb连接mssql解决乱码问题

    php adodb连接mssql解决乱码问题

    php程序是utf-8的,sqlserver是2005中文,内码是gb18030. 普通的mssql_connect无法设置内码转换,读出来的数据在utf-8页面显示乱码。
    2009-06-06
  • PHP文件上传操作实例详解

    PHP文件上传操作实例详解

    这篇文章主要介绍了PHP文件上传操作,结合实例形式详细分析了php文件传输操作的实现技巧与相关注意事项,需要的朋友可以参考下
    2016-09-09
  • 使用PHP访问RabbitMQ消息队列的方法示例

    使用PHP访问RabbitMQ消息队列的方法示例

    这篇文章主要介绍了使用PHP访问RabbitMQ消息队列的方法,结合实例形式分析了RabbitMQ消息队列的相关扩展安装、队列建立、队列绑定、消息发送、消息接收等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • PHP laravel实现导出PDF功能

    PHP laravel实现导出PDF功能

    有时候我们会需要使用PHP导出pdf。这篇文章主要是记录一下laravel实现导出PDF的两种方式。文中的示例代码讲解详细,需要的可以参考一下
    2022-10-10
  • ThinkPHP安装和设置

    ThinkPHP安装和设置

    本文是ThinkPHP的系列教程的第一篇,本系列一共七篇,我们将从简到难,由浅入深,给大家详细介绍这款优秀的国产开源php框架,有需要的小伙伴可以关注下。
    2015-07-07
  • PHP+MySQL 手工注入语句大全 推荐

    PHP+MySQL 手工注入语句大全 推荐

    我PHP手工太菜了, 无奈只能补下PHP MYSQL手工注射,把收集总结的资料分享下。
    2009-10-10
  • php基于单例模式封装mysql类完整实例

    php基于单例模式封装mysql类完整实例

    这篇文章主要介绍了php基于单例模式封装mysql类,结合完整实例形式分析了php使用单例模式封装的mysql类定义与使用方法,需要的朋友可以参考下
    2016-10-10
  • PHP文件锁函数flock()详细介绍

    PHP文件锁函数flock()详细介绍

    这篇文章主要介绍了PHP文件锁函数flock()详细介绍,本文着重对flock函数的作用和参数讲解,以及使用需要注意的问题,需要的朋友可以参考下
    2014-11-11

最新评论