用PHP开发Paypal支付接口

合集下载

PayPal测试环境(Sandbox)使用指南

PayPal测试环境(Sandbox)使用指南

文档下载
Express Checkout Integration Guide https:///cms_content/US/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf Name-Value Pair API Developer Guide and Reference https:///cms_content/US/en_US/files/developer/PP_NVPAPI_DeveloperGuide.pdf
选择一个目标销售国家 选择 账户类型为 "Buyer"
可以在这设置一个简单的密码, 如" 12345678" 点击"Show Advanced Options" 显示更多设置
Confidential and Proprietary
11
输入相关信息并点击"Create Account"创建账户
可以在这输入一定金额为该虚 拟账户充值 点击"Create Account"创建该 虚拟的买家账户
Confidential and Proprietary
9
创建PayPal测试账户
点击"Create manually" 手动创 建一个中国的卖家账户
点击 "Preconfigured" 创建一 个预设置的买家账户
Confidential and Proprietary
10
点击 "Preconfigured "后, 创建一个预设置的买家账户
*The requires .NET Framework 1.1 from Microsoft.

PayPal接口文档

PayPal接口文档

PayPal接⼝⽂档/C#using System;using System.IO;using System.Text;using ;using System.Web;public partial class csIPNexample :System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){//Post back to either sandbox or livestring strSandbox = "https:///cgi-bin/webscr";string strLive = "https:///cgi-bin/webscr";HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);// Set values for the request backreq.Method = "POST";req.ContentType = "application/x-www-form-urlencoded";byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);string strRequest = Encoding.ASCII.GetString(param);strRequest += "&cmd=_notify-validate";req.ContentLength = strRequest.Length;//for proxy//WebProxy proxy = new WebProxy(new Uri("http://url:port#"));//req.Proxy = proxy;//Send the request to PayPal and get the responseStreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII); streamOut.Write(strRequest);streamOut.Close();StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());string strResponse = streamIn.ReadToEnd();streamIn.Close();if (strResponse == "VERIFIED"){// check the payment_status is Completed// check that txn_id has not been previously processed// check that receiver_email is your Primary PayPal email// check that payment_amount/payment_currency are correct// process payment}else if (strResponse == "INVALID"){// log for manual investigation}else{//log response/ipn data for manual investigation}}}1。

php版支付宝接口源代码

php版支付宝接口源代码

php版支付宝接口源代码首先在使用支付宝支付的时候,必须先注册一个支付宝的账户,然后再下载支付宝提供的接口文件,通过支付宝提供的接口文件,实现电子商务与支付宝的交互。

在支付宝提供的接口文件中,提供了完整的实例程序,只要依照实例程序中的操作方法,将电子商务网站中指定的数据提交到支付宝提供的数组参数中,然后支付宝通过自己的定义的方法将数据提交到指定的网站中。

实现代码如下,具体见代码注释:<?phprequire_once("alipay_service.php");require_once("alipay_config.php");$array=explode("@",$info["spc"]);$arraynum=explode("@",$info["slc"]);$arrayinfo=array(); //创建数组$arrayinfo_count=array(); //创建数组for($i=0;$i<count($array);$i++){if($array[$i]!=""){$m=$i+1;$sqlcart=mysql_query("select * from tb_commodity wheretb_commodity_id='".$array[$i]."'",$conn);$infocart=mysql_fetch_array($sqlcart); //读取数据库中数据array_push($arrayinfo,$infocart[tb_commodity_name]); //将购物商品的名称写入到数组中array_push($arrayinfo_count,"商品$m :$infocart[tb_commodity_name] 数量:$arraynum[$i]"); //将购物商品的数量写入到数组中}}$commodity_name=implode(',',$arrayinfo); //获取商品名称$commodity_count=implode(',',$arrayinfo_count); //获取商品描述信息$parameter = array("service" => "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)"partner" =>$partner, //合作商户号"return_url" =>$return_url, //同步返回"notify_url" =>$notify_url, //异步返回"_input_charset" => $_input_charset, //字符集,默认为GBK"subject" => $commodity_name, //商品名称,必填"body" => $commodity_count, //商品描述,必填"out_trade_no" => $ddnumber, //商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=>$yprice, //物流配送费用"logistics_payment"=>'BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付)"logistics_type"=>'EXPRESS', // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)"price" => $amount, //商品单价,必填"payment_type"=>"1", // 默认为1,不需要修改"quantity" => "1", //商品数量,必填"show_url" => $show_url, //商品相关网站"seller_email" => $seller_email //卖家邮箱,必填);$alipay = new alipay_service($parameter,$security_code,$sign_type);$link=$alipay->create_url();$smarty->assign("link",$link);?><?phprequire_once("alipay_service.php");require_once("alipay_config.php");$array=explode("@",$info["spc"]);$arraynum=explode("@",$info["slc"]);$arrayinfo=array(); //创建数组$arrayinfo_count=array(); //创建数组for($i=0;$i<count($array);$i++){if($array[$i]!=""){$m=$i+1;$sqlcart=mysql_query("select * from tb_commodity wheretb_commodity_id='".$array[$i]."'",$conn);$infocart=mysql_fetch_array($sqlcart); //读取数据库中数据array_push($arrayinfo,$infocart[tb_commodity_name]); //将购物商品的名称写入到数组中array_push($arrayinfo_count,"商品$m :$infocart[tb_commodity_name] 数量:$arraynum[$i]"); //将购物商品的数量写入到数组中}}$commodity_name=implode(',',$arrayinfo); //获取商品名称$commodity_count=implode(',',$arrayinfo_count); //获取商品描述信息$parameter = array("service" => "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)"partner" =>$partner, //合作商户号"return_url" =>$return_url, //同步返回"notify_url" =>$notify_url, //异步返回"_input_charset" => $_input_charset, //字符集,默认为GBK "subject" => $commodity_name, //商品名称,必填"body" => $commodity_count, //商品描述,必填"out_trade_no" => $ddnumber, //商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=>$yprice, //物流配送费用"logistics_payment"=>'BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付)"logistics_type"=>'EXPRESS', // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)"price" => $amount, //商品单价,必填"payment_type"=>"1", // 默认为1,不需要修改"quantity" => "1", //商品数量,必填"show_url" => $show_url, //商品相关网站"seller_email" => $seller_email //卖家邮箱,必填);$alipay = new alipay_service($parameter,$security_code,$sign_type); $link=$alipay->create_url();$smarty->assign("link",$link);?><?phprequire_once("alipay_service.php");require_once("alipay_config.php");$array=explode("@",$info["spc"]);$arraynum=explode("@",$info["slc"]);$arrayinfo=array(); //创建数组$arrayinfo_count=array(); //创建数组for($i=0;$i<count($array);$i++){if($array[$i]!=""){$m=$i+1;$sqlcart=mysql_query("select * from tb_commodity wheretb_commodity_id='".$array[$i]."'",$conn);$infocart=mysql_fetch_array($sqlcart); //读取数据库中数据array_push($arrayinfo,$infocart[tb_commodity_name]); //将购物商品的名称写入到数组中array_push($arrayinfo_count,"商品$m :$infocart[tb_commodity_name] 数量:$arraynum[$i]"); //将购物商品的数量写入到数组中}}$commodity_name=implode(',',$arrayinfo); //获取商品名称$commodity_count=implode(',',$arrayinfo_count); //获取商品描述信息$parameter = array("service" => "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)"partner" =>$partner, //合作商户号"return_url" =>$return_url, //同步返回"notify_url" =>$notify_url, //异步返回"_input_charset" => $_input_charset, //字符集,默认为GBK "subject" => $commodity_name, //商品名称,必填"body" => $commodity_count, //商品描述,必填"out_trade_no" => $ddnumber, //商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=>$yprice, //物流配送费用"logistics_payment"=>'BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付)"logistics_type"=>'EXPRESS', // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)"price" => $amount, //商品单价,必填"payment_type"=>"1", // 默认为1,不需要修改"quantity" => "1", //商品数量,必填"show_url" => $show_url, //商品相关网站"seller_email" => $seller_email //卖家邮箱,必填);$alipay = new alipay_service($parameter,$security_code,$sign_type); $link=$alipay->create_url();$smarty->assign("link",$link);?>这里介绍的知识通过php来实现电子商务网站与支付宝进行交互的方法。

PHP程序集成PayPal操作步骤

PHP程序集成PayPal操作步骤

PHP程序集成PayPal操作步骤@PayPal账户经理Candy 很多的独立网站都有自带的PayPal集成接口(magento、zencart等),用户只需要通过技术手段把账户信息配置上去就可以进行在线收款了。

但是对于一些自主设计的网站,paypal集成的时候都需要用到接口代码集成到网站。

为大家分享一下PHP 语言如何集成paypal。

154570054—CandyPayPal IPN所谓paypal ipn(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。

IPN的原理很简单,就是当产生了一个交易之后,交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的bbb POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal 的接口位置,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这些数据进行操作。

注册Sandbox帐号但代码的调试是一件有点麻烦的事情,因为作为第三方开发人员,不可能开两个帐号,每次测试还要之间交易一些资金,所以Paypal专门开发了Sandbox给开发人员进行测试,首先到bbbs://developer.paypalaaa/注册一个开发者帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的,business账户建议手动创建),这种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成一些随机的号码)。

接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件位置,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。

网上商城php源码

网上商城php源码

网上商城php源码广州市网畅信息技术有限公司版权所有腾讯扣扣:五六九一二九零二二网上商城php源码介绍:网上商城php源码网上商城php源码C2C网站管理系统A是一套由网畅基于PHP+Mysql技术的MVC架构开发的Web电子商务网站,网上商城php源码它是以消费者对消费者(C2C)经营模式的网站,直接为消费者提供电子商务活动的网站平台,网上商城php源码它主要功能有:采用了缓存更新处理机制;前台支持鼠标拖曳自由排版功能;首页和店铺商品有自助推荐功能;支持团购、拍卖、秒杀及一口价发布商品模式;支付手段支持在线充值、支付宝支付、财付通即时到账、财付通中介担保、银行汇款、网银支付、paypal支付、货到付款等多种支付手段;新闻发布;管理;友情链接;交易邮箱提醒;交易信用评价;站内短信通知;信息脏话过滤;后台分权限管理等功能;网上商城php源码系统前端完全遵循W3C网页标准,采用XHTML+CSS开发,极大的提高了在IE6/IE7/IE8/Firefox/Charome/Opera等主流浏览器下运行良好;旨在为广大网民消费者提供一个网络公平竞价交易的电子商务平台。

网上商城php源码C2C网站管理系统A模式图卖家发布商品→买家挑选商品和卖家→买家支付货款给卖家→卖家发送商品网上商城php源码功能介绍鼠标拖曳排版--------可以任意调整网站排版布局,灵活设置插件显示方式,网站管理维护更方便快捷。

在线支付管理--------支持支付宝、财付通、在线充值、银行汇款、网银支付、paypal 支付等方式;多级分类--------------商品可实现多级分类,从而满足网站多元化商品信息的需求;商品搜索--------------多种搜索方式;如:商品、团购、拍卖、秒杀、资讯搜索等多种搜索方式;信息评价--------------拥有信用评价功能、可对交易双方作出信用评价,并自动统计用户的信用指数;店铺二级域名--------可实现店铺二级域名转向功能(需独立服务器支持);店铺类型--------------根据店铺类型、等级可设置不同的权限;如:商品发布数量、店铺功能区分;主营品牌设置--------选择品牌和店铺类型(如:经销、专卖、专营、旗舰)商品信息发布--------发布商品介绍、图片、价格等商品信息商品发布模式--------一口价商品、团购商品、拍卖商品、秒杀商品多种发布模式;商品批量导入--------可批量导入淘宝商品图片和数据水印管理功能--------支持支持图片和文字水印方式HTML编辑------------信息的添加和更新改用HTML编辑器,实现所见即所得站内短信管理--------接收和回复站内短信站管理功能系统--------------具有分组轮播、页内等多种形式;商品管理--------------商品分类,商品管理、推荐,品牌管理数据库管理-----------可以后台进行数据库备份还原管理后台多级管理--------后台管理员多级权限管理模式;在线统计--------------拥有在线人数统计功能;网上商城php源码技术的特点和优越性1、预设栏目内容,界面豪华--预设频道栏目、分类和测试数据,大量推荐和位,界面豪华2、可视化模板引擎--采用可视化模版引擎,模版修改直观灵活,模版插件可通过后台可视界面选择设置。

第三方支付接口有哪些

第三方支付接口有哪些

第三方支付接口有哪些?第三方支付接口有哪些?目前中国国内的第三方支付产品主要有PayPal (易趣公司产品)、支付宝(阿里巴巴旗下)、财付通(腾讯公司,腾讯拍拍)、傲付宝等。

其中最用户数量最大的是PayPal和支付宝,前者主要在欧美国家流行,后者是马云阿里巴巴旗下产品,据称,截止2009年7月,支付宝用户超过2亿。

第三方支付接口申请提供资料:1、提供企业5证资料(营业执照、法人身份证、组织机构代码证、税务登记证复印件、开户许可证各一份扫描件),个人签约提供身份证扫描件。

2、提供域名并网站ICP备案,备案信息必须跟提供来的资料信息一致3、法人或个人划款银行账户一个关于个人申请第三方支付接口:第三方支付接口个人申请的话建议到正规平台上面你去申请,因为有些支付接口平台不提供个人支付接口的申请。

第三方支付接口如何对接流程:第一步:签订合约通过第三方拿到接口(可以邮件形式发送、也可以在第三方系统下载),拿到接口后,要确认下接口类型,是否是自己需要的接口,比如B2C接口、B2B接口等类型。

第二步:支付接口分很多语言版本,比如ASP、JSP、PHP、.NET语言版本,所以要选择与自己网站语言匹配的接口进行安装。

商城网站的技术一般比较清楚商城的开发语言。

第三步:拿到的支付接口一般包括接口文档和接口代码示例,选择合适的接口代码示例,进行联调,比如自己网站是PHP开发的,就选择PHP代码示例联调。

第四步:接口联调的时候,需要第三方支付提供联调测试账号,方可以联调。

联调除了需要联调账号除外,还需要该账号的支付密钥,联调过程中,有什么问题,可以直接找第三方支付技术支持给予协调处理。

第五步:接口联调通过后,可先换成生产环境账号,进行交易测试,测试没问题后,可以放到商城网站进行交易。

注册资本1国有控股第三方支付机构:指国有资本占控制权的第三方支付机构。

2国有参股第三方支付机构:指在企业股权结构中有国有资本,但国有资本不占控制权。

paypal跳转表单代码

paypal跳转表单代码

paypal跳转表单代码,解决了paypal多个商品的传值<form name="checkout_confirmation"action="https:///cgi-bin/webscr" method="post" target="_parent"><input type="hidden" name="charset" value="<?php echo $charset?>" /> <input type="hidden" name="lc" value="<?php echo $lc?>" /><input type="hidden" name="page_style" value="<?php echo$page_style?>" /><input type="hidden" name="custom" value="<?php echo $custom?>" /> <input type="hidden" name="business" value="<?php echo $business?>" /> <input type="hidden" name="return" value="<?php echo $return?>" /> <input type="hidden" name="cancel_return" value="<?php echo $cancel_return?>" /><input type="hidden" name="shopping_url" value="<?php echo $shopping_url?>" /><input type="hidden" name="notify_url" value="<?php echo$notify_url?>" /><input type="hidden" name="redirect_cmd" value="<?php echo $redirect_cmd?>" /><input type="hidden" name="rm" value="<?php echo $rm?>" /><input type="hidden" name="bn" value="<?php echo $bn?>" /><input type="hidden" name="mrb" value="<?php echo $mrb?>" /><input type="hidden" name="pal" value="<?php echo $pal?>" /><input type="hidden" name="first_name" value="<?php echo$first_name?>" /><input type="hidden" name="last_name" value="<?php echo $last_name?>" /><input type="hidden" name="address1" value="<?php echo $address1?>" /> <input type="hidden" name="city" value="<?php echo $city?>" /><input type="hidden" name="state" value="<?php echo $state?>" /><input type="hidden" name="zip" value="<?php echo $zip?>" /><input type="hidden" name="country_code" value="<?php echo $country_code?>" /><input type="hidden" name="email" value="<?php echo $email?>" /><input type="hidden" name="address2" value="<?php echo $address2?>" /> <input type="hidden" name="H_PhoneNumber" value="<?php echo$H_PhoneNumber?>" /><input type="hidden" name="night_phone_a" value="<?php echo$night_phone_a?>" /><input type="hidden" name="night_phone_b" value="<?php echo$night_phone_b?>" /><input type="hidden" name="night_phone_c" value="<?php echo$night_phone_c?>" /><input type="hidden" name="day_phone_a" value="<?php echo$day_phone_a?>" /><input type="hidden" name="day_phone_b" value="<?php echo$day_phone_b?>" /><input type="hidden" name="day_phone_c" value="<?php echo$day_phone_c?>" /><input type="hidden" name="no_shipping" value="<?php echo$no_shipping?>" /><input type="hidden" name="address_override" value="<?php echo $address_override?>" /><input type="hidden" name="upload" value="<?php echo $upload?>" /> <input type="hidden" name="currency_code" value="<?php echo $currency_code?>" /><input type="hidden" name="cmd" value="<?php echo $cmd?>" /><input type="hidden" name="item_number_1" value="<?php echo$item_number_1?>" /><input type="hidden" name="item_name_1" value="<?php echo$item_name_1?>" /><input type="hidden" name="amount_1" value="<?php echo $amount_1?>" /> <input type="hidden" name="quantity_1" value="<?php echo $quantity_1?>" /><?for($i=2;;$i++){$item_number_tmp = 'item_number_'.$i;if($$item_number_tmp!=NULL){$item_name_tmp = 'item_name_'.$i;$amount_tmp = 'amount_'.$i;$quantity_tmp = 'quantity_'.$i;?><input type="hidden" name="<?php echo $item_number_tmp?>" value="<?php echo $$item_number_tmp?>" /><input type="hidden" name="<?php echo $item_name_tmp?>" value="<?php echo $$item_name_tmp?>" /><input type="hidden" name="<?php echo $amount_tmp?>" value="<?php echo $$amount_tmp?>" /><input type="hidden" name="<?php echo $quantity_tmp?>" value="<?php echo $$quantity_tmp?>" /><?}else{break;}}?><input type="hidden" name="num_cart_items" value="<?php echo$num_cart_items?>" /><input type="hidden" name="shipping_1" value="<?php echo$shipping_1?>" /><input type="hidden" name="paypal_order_id" value="<?php echo $paypal_order_id?>" /><input type="hidden" name="tax" value="<?php echo $tax?>" /><input type="hidden" name="tax_cart" value="<?php echo $tax_cart?>" /> </form>。

paypalrestsdk用法

paypalrestsdk用法

paypalrestsdk用法Paypalrestsdk是一个用于使用Paypal REST API的Python库。

它提供了一组易于使用的功能,帮助您通过Paypal进行支付、退款、创建和管理支付订单等操作。

以下是关于paypalrestsdk的用法的详细说明。

1.安装首先,您需要安装paypalrestsdk。

您可以使用pip命令来安装它:```pip install paypalrestsdk```2.导入库在Python脚本中,您需要导入paypalrestsdk库:```pythonimport paypalrestsdk```3.设置API凭据在使用paypalrestsdk之前,您需要设置您的PayPal API凭据。

您可以在PayPal开发者网站上创建一个应用程序,并获得Client ID和Client Secret。

将这些凭据设置为环境变量:```python"mode": "sandbox", # 或者"live",根据您的需求设置"client_id": "YOUR_CLIENT_ID","client_secret": "YOUR_CLIENT_SECRET"})```4.创建支付订单创建一个支付订单非常简单。

您只需要为订单提供必要的信息,并调用`Payment.create(`方法:```pythonpayment = paypalrestsdk.Payment"intent": "sale","payer":"payment_method": "paypal"},"redirect_urls":},"transactions":"item_list":"items":"name": "Item Name","sku": "Item SKU","price": "10.00","currency": "USD","quantity": 1}]},"amount":"total": "10.00","currency": "USD"},"description": "This is the payment description." }]})if payment.create(:print("Payment created successfully!")else:print("Payment creation failed.")```5.执行支付在创建订单后,您可以使用以下方法执行支付:```pythonapproval_url = Nonefor link in payment.links:if link.method == "REDIRECT":approval_url = link.hrefbreakif approval_url:print("Redirect the user to: %s" % approval_url)else:print("No redirect URL found.")#等待客户从PayPal重定向回来确认支付```6.执行退款要执行退款,您需要提供交易ID和退款金额。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PayPal 快速、安全而又方便,是跨国交易的首选在线付款方式。

现在PayPal 可以和国内大部分信用卡关联,可以实现国人的跨国交易收支。

申请PayPal注册网址:https:///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:/// 注册一个开发帐号,好了之后再进入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:///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:///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:///row/cgi-bin/webscr"method="post"><input type="hidden" name="cmd" value="_xclick"> // "_xclick" 立即购买<input type="hidden" name="business" value="you@"> //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="/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 的互联网 URLreturn 您的客户完成付款后将返回的互联网 URLcancel_return 您的客户取消付款后将返回的互联网 URLimage_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 客户白天联系电话号码前三位提示:若要更改”用户信息”中的默认运费和手续费设置,请转至您的用户信息,编辑您的运费计算,然后点击”允许采用基于交易的运费”复选框。

相关文档
最新文档