php与paypal整合方法
我晕,最近这个用paypal付款的功能搞了我2天,还没搞完。郁闷死了。
先做个笔记,把已经搞定的部分写下来,省的以后忘了。
1 注册SandBox账号,并且建立两个虚拟账号,可以选择自动建立的那一项。一个buyer,一个seller。以供 开发的时候测试使用。 2 实现快速购买的代码。链接暂时指向SandBox便于开发时的测试。以后再改成正式的。
<div class="codetitle"><a style="CURSOR: pointer" data="46049" class="copybut" id="copybut46049" onclick="doCopy('code46049')"> 代码如下:
<div class="codebody" id="code46049">
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
图片 </td>";
}
}
3 将已经付款的信息传回去,应该是要用IPN,还没搞定,再接再励
补充资料:
从参考文档得知:
Paypal专门开发了Sand
Box给开发人员进行开发测试
首先到https://developer.paypal.com/
注册一个开发帐号,
再进入Sand
Box建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),
这种账号
注册方法和Paypal的流程一样,信息可以是假的,
包括银行帐号、信用卡(其实Paypal Sand
Box会
自动生成 一些
随机的号码)。接着激活Paypal Sand
Box的虚拟帐号,注意,这里不管你在Paypal San
Box注册时填什么
邮件地 址,有任何发送到虚拟帐号所填邮箱的
邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。
登录Sand
Box 的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多 少)。然后,还需要激活IPN的选项,在Business的那个账户的Profile设置
页面中,点击,然后点击Edit按钮,打开 IPN,这里如果你使用的是固定的IPN Handle,可以直接将地址填入。
接下来,我们测试的时候,应该将Paypal接口的地址设置为https://www.sand
Box.paypal.com/cgi-bin/webscr
最后基本的流程为:
用户在我们的网站上选择商品、放入购物车,然后检查准备支付
网站根据购物车中的商品,
生成Paypal的支付表单(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一 些信息(下次会专门找机会解释一下)。并在自己的
数据库中
生成一张订单记录。
Paypal在Session中记录下这些交易信息
用户用Paypal账户
登录Paypal(Sand
Box用Sand
Box的虚拟帐号),复查明细,点击Pay按钮
Paypal进行交易处理,如果我们的Paypal收款帐号在接受帐款上没有什么问题(没有特别的需要Accept的地方),交易 完成,那么Paypal会发送一个IPN,并发送
提示邮件。
我们IPN Handler接受到信息,首先向Paypal进行校验,如果信息正确,然后根据信息和自己
数据库中进行比对,如果 无误,可以将支付信息保存,并
修改订单状态。
然后Paypal会
显示一个界面表示交易完成,此时如果
用户点击“Return”按钮,Paypal会将
用户送回我们网站指定地点。
我们网站迎接
用户回来,向
用户表示感谢,并进行提醒,给出订单号等等。
应为我最后需求的只是要一个总价的结算,并不需要和网店接合.所以简单了很多.只要把总价
生成,放进paypal里就基本算 完成了.如果网店的话还需要在paypal里设置一大堆的参数.比较麻烦.
<div class="codetitle">
<a style="CURSOR: pointer" data="37763" class="copybut" id="copybut37763" onclick="doCopy('code37763')"> 代码如下: