|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。 请求PayPal注册网址:https://www.paypal.com/
paypal接口与其它接口有些分歧,略微庞杂一点。 其实银行接口也算是一个站点的插件。
所谓paypal ipn(Instant Payment Notification),就是Paypal开辟的一种能自动告诉第三方卖家体系买卖形态的一种机制。IPN的道理很复杂,就是当发生了一个买卖以后, 买卖形态产生变更时,如用户已付款、或退款、撤消时,Paypal使用经常使用的HTTP POST体例,将买卖的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面承受到恳求时分,将这些数据原封不动加上一个唆使验证的cmd=_notify-validate,POST回Paypal 的接口地址,假如数据准确,那末Paypal前往字符串VERIFIED,不然为INVALID,假如了局为VERIFIED,那末你的法式就能够利用这 些数据停止操作。
开设Sandbox帐号
但代码的调试是一件很疾苦的工作,由于作为第三方开辟人员,不成能开两个帐号,每次测试还要之间买卖一些钱,所以Paypal专门开辟了Sandbox给 开辟人员停止开辟,起首到https://developer.paypal.com/注册一个开辟帐号,好了以后再进入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接口的地址设置为https://www.sandbox.paypal.com/cgi-bin/webscr
根基的流程
当客户向您付款时,PayPal将向位于指定 URL (type=”hidden” name=”notify_url” value=” “)的办事器发送一个告诉。此告诉中将包含您的客户的一切付款信息(例如,客户称号、金额),和一段加密代码。当办事器收到告诉时,它随后会将该信息 (包含加密代码)发送回平安的PayPal URL。PayPal将经由过程反省加密字符串对买卖停止身份验证。这类将 IPN 数据传回PayPal的操作避免了“棍骗”,因而您可以确保 IPN 来自PayPal。在停止验证时,PayPal会将其正当性切实其实认信息发送回您的办事器。
提醒:要启用即时付款告诉,您将需求输出一个 URL,经由过程它您可以吸收到来自您的用户信息的告诉。
启用了即时付款告诉后,每次当您吸收付款时您的办事器城市收到一个告诉,此告诉将以埋没的“FORM POST”的体例发送到指定的 URL,并将包含一切付款信息。此页面的底部列出了告诉的 FORM 变量。
每次收到来自PayPal的 IPN 时,您必需在实行定单之前完成以下所述的告诉确认进程。确认列出的信息将可确保买卖正当。
告诉确认IPN
为了确保付款已进入您的PayPal账户,您必需验证用作“receiver_email”的电子邮件地址是不是已在您的PayPal账户中注册并失掉确认。
办事器收到即时付款告诉后,您将需求经由过程构建一个发送到PayPal的 HTTP POST 对其停止确认。您的 POST 应发送到https://www.paypal.com/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 数据更新您的数据库,并处置购物。
假如收到“有效”告诉,则应将其视为可疑告诉,并应对其停止查询拜访。
次要参数:
向PayPal提交粘贴代码时,应包含以下 4 个埋没变量及一张图片,这就是说,您粘贴到PayPal的最短必须代码应以下:
<form action="https://www.paypal.com/row/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick"> // "_xclick" 当即购置
<input type="hidden" name="business" value="you@youremail.com">
//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="http://www.paypal.com/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 个字符
item_number_x 与购物车中物品 #x 联系关系的可选传递变量。必需是字母数字字符,最多为 127 个字符
amount_x (物品 #x 需求)物品 #x 的价钱
shipping_x 输送物品 #x 的第一件(数目 1)的本钱
shipping2_x 每增添一件输送物品 #x(数目 2 或更多)所需的输送本钱
handling_x 物品 #x 的处置本钱
on0_x 物品 #x 的第一选项栏称号。最多 64 个字符
os0_x 物品 #x 的第一组选项值。最多 200 个字符。”on0_x” 必需界说,以便辨认 “os0_x”。
on1_x 物品 #x 的第二选项栏称号。最多 64 个字符
os1_x 物品 #x 的第二组选项值。最多 200 个字符。”on1_x” 必需界说,以便辨认 “os1_x”。
为购物车中每件物品反复此设定
为您的买家购物车中的各物品到场以上表格中的一组必须的变量和任何选项变量。购物车中的第一物品必需用以 “_1″ 停止的参数界说,如 “item_name_1″、”amount_1″ 等。一样,第二物品使用变量 “item_name_2″、”amount_2″ 等定名。提醒:”_x” 值必需以一为单元顺次递增,以便辨认。假如从 item #1 跳到 item #3 而不界说 item #2,则第三个物品会被疏忽。
要指定币种:一切泉币变量(金额、运费、运费 2、手续费、税款)将以粘贴在付款上的 “currency_code” 变量指定的币种显示。由于其不是随物品分歧的,无需向变量称号附加 “_x”。假如没有粘贴 “currency_code” 变量,咱们将假定一切泉币变量值为美元。
以上就是本文所引见的应用PHP开辟PayPal付出接口的次要操作步调。
要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。 |
|