PayPal 提供附加变量,用于自定义您的 Form Post。所有可用变量如下(变量名称必须用小写):
可用变量
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” 值:<input type=”hidden” name=”cmd” value=”_xclick”> 到:
<input type=”hidden” name=”cmd” value=”_ext-enter”>
<input type=”hidden” name=”redirect_cmd” value=”_xclick”>
通过上述 “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 行
<input type=”hidden” name=”cmd” value=”_xclick”> 与<input type=”hidden” name=”cmd” value=”_cart”>
添加称为 “upload” 的新变量
在 <表格> 和 </表格> 标签之间新增以下行:<input type=”hidden” name=”upload” value=”1″>
定义物品明细
对于以下各特定物品参数,定义与通过您的合作商购物车购买的各物品对应的一组新值。将 “_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” 变量,我们将假定所有货币变量值为美元。
PayPay API
PayPal提供了多个API接口供开发者使用。在使用API之前,你必须先申请一个高级个人账户或者企业账户,同时你必须获取API 凭证供每次调用API 时使用。
一旦你获取了API凭证,您就可以调用相关的API接口了。目前,我们提供两种API接口方式,NVP和SOAP。一般来说我们推荐您使用 NVP 接口。
• Name-Value Pair(NVP)接口 – 请求和响应都是使用简单的HTTP。该接口简单易实现,适合于初级开发者和需要快速完成集成的人员;
• SOAP接口 – 请求和响应都是通过SOAP来完成。该接口适合于面向对象工程的开发;
PayPal API:NVP(名称/值对)接口
通过NVP API接口, 您只需给PayPal发送一个HTTP请求,并通过“名称=值”的形式指定请求参数,即可充分利用PayPal的API功能。
NVP API 是 PayPal 的业务功能、风险管理和业务逻辑的简单接口。NVP API 最基本的使用方法是通过到 PayPal 服务器的 HTTPS 连接发送一个 NVP 字符串,然后处理响应(也是一个 NVP 字符串)。执行 NVP API 调用的基本步骤如下:
• 为特定的 API 方法构造一个请求参数字符串。
• 通过 HTTPS 连接向 PayPal 服务器发送这个参数字符串。
• 处理服务器响应中的 NVP。
每个NVP API请求字符串包含有API用户名、API密码、所要调用API的名称及用来标识交易的令牌,如: [email protected]&PWD=mypassword &METHOD=GetExpressCheckoutDetails&TOKEN=EC-23T233ZP3DFB…
成功的应答包含以下要素:ACK=Success ,以及一个用来标识交易的唯一令牌。 ACK=Success&TIMESTAMP=date/timeOfResponse &CORRELATIONID=debuggingToken&VERSION=2.300000&BUILD=buildNumber &TOKEN=EC-3DJ78083ES565113B&[email protected] &PAYERID=95HR9CM6D56Q2&PAYERSTATUS=verified &FIRSTNAME=John&LASTNAME=Smith…
您可以使用NVP API完成以下操作:
• 搜索已完成的交易记录,以及查询交易详情;
• 自动化后端功能,例如,捕获授权,以及处理退款等;
API Profile
进入商家账号得到相应的APIProfile,如果是以中文语言查看,在-用户信息-API 访问-中得到,其中里面申请API时,有两个选项,第一个是用签名的方式,第二种是以证书的方式来认证商家身份,当你选择下载数字证时,可以到 www.paypaltech.com/tools/pem2p12.php转换为.p12文件,也可以采用OpenSSL的命令完成,一句话搞定,要输 入密码喔~。这里的链接有详细说明www.paypal.com/IntegrationCenter/ic_certificate.html
相应参考资料请参考连接www.paypal.com/IntegrationCenter/ic_expresscheckout.html 了解关于Express Checkout的原理;
在此基础上,你可以访问www.paypal.com/IntegrationCenter/ic_nvp.html 获取相关测试代码;
关于PayPal的测试环境你可以访问www.paypal.com/IntegrationCenter/ic_sandbox.html,
API Reference https://www.paypal.com/IntegrationCenter/ic_api-reference.html
PayPal PHP CLASS
我上传了自己搜集的paypal源代码,我一直在用,应该不会有什么大问题!
index.php是表单页面
include文件夹下面两个文件config.inc.php,global_config.inc.php 是核心设置区,都有说明,很简单了!
第二个文件夹是 PHP Payment Library for Paypal, Authorize.net and 2Checkout (2CO)