PayPal 快速、安全而又方便,是跨国交易的首选在线付款方式。现在PayPal可以和国内大部分信用卡关联,可以实现国人的跨国交易收支。
申请PayPal注册网址:www.paypal/
paypal接口与其它接口有些不同,稍微复杂一点。 其实银行接口也算是一个站点的插件。
所谓paypal ipnInstant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。IPN的原理很简单,就是当产生了一个交易之后, 交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validatePOSTPaypal 的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这 些数据进行操作。
开设Sandbox帐号
但代码的调试是一件很痛苦的事情,因为作为第三方开发人员,不可能开两个帐号,每次测试
还要之间交 易一些钱,所以Paypal专门开发了Sandbox给开发人员进行开发,首先到developer.paypal/ 注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),这 种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成一些随机的号码)。接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录 Sandbox的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多少 920-203 920-533 )。然后,还需要激活IPN的选项,在Business的那个账户的Profile设置页面中,点击,然后点 Edit按钮,打开IPN,这里如果你使用的是固定的IPN Handle,可以直接将地址填入。
接下来,我们测试的时候,应该将Paypal接口的地址设置为 www.sandbox.paypal/cgi-bin/webscr
基本的流程
当客户向您付款时,PayPal将向位于指定 URL (type=hidden name=notify_url value= )的服务器发送一个通知。此通知中将包括您的客户的所有付款信息(例如,客户名称、金额),以及一段加密代码。当服务器收到通知时,它随后会将该信息 (包括加密代码)发送回安全的PayPal URLPayPal将通过检查加密字符串对交易进行身份验证。这种将 IPN 数据传回PayPal的操作防止了欺骗,因此您可以确保 IPN 来自PayPal。在进行验证时,PayPal会将其合法性的确认信息发送回您的服务器。
提示:要启用即时付款通知,您将需要输入一个 URL,通过它您可以接收到来自您的用户信息的通知。
启用了即时付款通知后,每次当您接收付款时您的服务器都会收到一个通知,此通知将以隐藏的 FORM POST”的方式发送到指定的 URL,并将包括所有付款信息。此页面的底部列出了通知的 FORM 变量。
每次收到来自PayPal IPN 时,您必须在实施订单之前完成如下所述的通知确认过程。确认列出的信息将可确保交易合法。
通知确认IPN
为了确保付款已进入您的PayPal账户,您必须验证 用作receiver_email”的地址是否已在您的PayPal账户中注册并得到确认。
服务器收到即时付款通知后,您将需要通过构建一个发送到PayPal HTTP POST 对其进行确认。您的 POST 应发送到 www.paypal/cgi-bin/webscr
您必须完全按照收到表单变量时的原样发送所有收到的表单变量。您还需要将一个值为 _notify-validate”的名为cmd”变量(例如,cmd=_notify-validate)附加到 POST 字符串。
PayPal将回复该 POST,并在回复的正文中包含一个单词VERIFIED”或INVALID”。当您收到 VERIFIED 回复时,您需要在实施订单之前执行若干检查:
确认payment_status”为Completed”,因为系统也会 为其他结果(如Pending”或Failed”)发送 IPN
检查txn_id”是否未重复,以防止欺诈者重复使用旧的已 完成的交易。
验证receiver_email”是已在您的PayPal账户中注册的地址,以防止将付款发送到欺诈者的账
检查其他交易详情(如物品号和价格),以确认价格未改变完成了以上检查后,您可以使用 IPN 数据更新您的数据库,并处理购物。
如果收到php实例代码大全“无效 通知,则应将其视为可疑通知,并应对其进行调查。
主要参数:
PayPal提交粘贴代码时,应包括以下 4 个隐藏变量及一张图片,这就是说,您粘贴到PayPal的最短必需代码应如下:
1
2
3
4
5
6
7
8
<form action="www.paypal/row/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick"> // "_xclick" 立即购买
<input type="hidden" name="business" value="you@youremail"> //PayPal账户上的地址
<input type="hidden" name="item_name" value="Item Name"> //物品名称(或购物车名称)
<input type="hidden" name="currency_code" value="USD"> //定义币种以标示货币变量 值可以为 "USD""EUR""GBP""CAD""JPY"
<input type="hidden" name="amount" value="0.00"> //物品的价格(购物车中所有物品的总价格,因为是_Xclick模式)
<input type="image" src="www.paypal/zh_XC/i/btn/x-click-but01.gif" name="submit" alt="请使用PayPal付款!">
</form>
可用变量
business 您的PayPal账户上的地址
quantity 物品数量。大于 1 时,会与金额相乘
item_name 物品名称(或购物车名称)。必须是字母数字字符,最多为 127 个字符
item_number 用于跟踪付款的可选传递变量。必须是字母数字字符,最多为 127 个字符
amount 物品的价格(购物车中所有物品的总价格)
shipping 该物品的运送成本
shipping2 每增加一件物品所需的运送成本
handling 手续费
tax 基于交易的税额。如果使用该变量,传递值将覆盖所有用户信息税收设置(不管买家所在位置)。
no_shipping 送货地址。如果设为 "1",则不会要求您的客户提供送货地址。该变量为可选项;如果省略或设为 "0",将提示您的客户输入送货地址
cn 可选标签,会在提示栏上显示(最多 40 个字符)
no_note 为付款加入提示。如果设为 "1",则不会提示您的客户输入提示。该变量为可选项;如果省略或设为 "0",将提示您的客户输入提示。
on0 第一选项栏名称。最多 64 个字符
os0 第一组选项值。最多 200 个字符。"on0" 必须定义,以便识别 "os0"
on1 第二选项栏名称。最多 64 个字符
os1 第二组选项值。最多 200 个字符。"on1" 必须定义,以便识别 "os1"
custom 决不会向您的客户显示的可选转递变量。可用于跟踪存货
invoice 决不会向您的客户显示的可选转递变量。可用于跟踪账单号
notify_url 仅与 IPN 一起使用。发送 IPN Form Post 的互联网 URL
return 您的客户完成付款后将返回的互联网 URL
cancel_return 您的客户取消付款后将返回的互联网 URL
image_url 您要用作图标的图片的互联网 URL,图片大小为 150 X 50 像素
cs 设置您的付款页面的背景。如果设为 "1",背景将为黑。该变量为可选项;如果省略或设为 "0",背景将为白
展变量
PayPal 允许您粘贴扩展变量,条件是将改变以下 "cmd" 值:
到:
通过上述 cmd 值修改,您还可使用以下变量:
扩展变量
email 客户的地址
first_name 客户的名。必须是字母数字字符,最多为 32 个字符
last_name 客户的姓。必须是字母数字字符,最多为 64 个字符
address1 客户地址所在国家或地区。必须是字母数字字符,最多为 100 个字符
address2 客户地址第二行。必须是字母数字字符,最多为 100 个字符
city 客户地址所在城市。必须是字母数字字符,最多为 100 个字符
state 客户地址所在州。必须是正式的 2 个字母缩写
zip 客户地址的
night_phone_a 客户夜间号码的区号
night_phone_b 客户夜间号码前三位
day_phone_a 客户白天号码的区号
day_phone_b 客户白天号码前三位
提示:若要更改用户信息中的默认运费和手续费设置,请转至您的用户信息,编辑您的运费计算,然 后点击允许采用基于交易的运费复选框。
将单个物品传递给PayPal
如果您的第三方购物车可设置成向PayPal传递单个物品,有关物品的信息将加入买家和卖 家的记录日志和系统通知中。要加入该物品的信息,您需要将 HTML 格式元素粘贴至PayPal购物车流程的新版本。该过程与 #1 "将总购物车数量传递给PayPal"描述的非常相似,不同之处在于:
"cmd" 变量设置到 "_cart"
更换必要的 HTML 行与
添加称为 upload 的新变量
<表格> 标签之间新增以下行:
定义物品明细
对于以下各特定物品参数,定义与通过您的合作商购物车购买的各物品对应的一组新值。将 _x 附加到变量名称,其中 x 是物品号码,从 1 开始,每加入一物品增加一。
item_name_x (物品 #x 需要)购物车中物品 #x 的名称。必须是字母数字字符,最多为 127 个字符

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。