`
tansitongba
  • 浏览: 503549 次
文章分类
社区版块
存档分类
最新评论

paypal接口的使用

 
阅读更多

一点必须了解的基础知识:
IPN的原理很简单,就是当产生了一个交易之后,交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方
式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证
的cmd=_notify-validate,POST回Paypal的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为
VERIFIED,那么你的程序就可以使用这些数据进行操作。
但代码的调试是一件很痛苦的事情,因为作为第三方开发人员,不可能开两个帐号,每次测试还要之间交易一些钱,所以Paypal专门开发了
Sandbox给开发人员进行开发,首先到
https://developer.paypal.com/
注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟
帐号(至少应该建立一个Business的和一个Personal的),这种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡
(其实Paypal Sandbox会自动生成一些随机的号码)。接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册
时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录Sandbox的虚拟
Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多少)
关于IPN的详细设置
登录至Paypal后台,进入My Account->Profile页面,点击Instant Payment Notification,如下图:

然后就会出现下面的页面了,点击Edit按钮,如下图:

然后就会出现下面的页面了,在页面里面那个选框处打勾,并在下面的Notification URL 处填写:http://您的网站地址/index.php?gOo=cGF5cGFsX3JlcGx5LnBocA& 然后点击Save按钮,如下图:

然后页面就会提示你:“You have successfully activated Instant Payment Notification.”
接下来再次进入My Account->Profile页面,点击Website Payment Preferences ,如下图:

然后就会进入Website Payment Preferences页面,在里面要做四件事情:
1:Auto Return 后面打勾选择On
2:Return URL 后面输入:http://您的网站地址/index.php?gOo=cGF5cGFsX3JlcGx5X3JldHVybi5waHA&
3:Payment Data Transfer 后面打勾选择On
4:上面都做好之后,点击页面最下面的Save按钮
如下图:

保存之后页面立即跳转到My Account->Profile,并且提示您设置成功,里面还会有一串identity token号码,那个就是私钥,如下图:

当然,这个私钥(identity token)不会只出现这一次的,在您设置完之后,您可以仍然进入Website Payment Preferences页面去查看它,它就在Payment Data Transfer那一个区块,如下图:

接下来,我们测试的时候,应该将Paypal接口的地址设置为
https://www.sandbox.paypal.com/cgi-bin/webscr
最后基本的流程为:
用户在我们的网站上选择商品、放入购物车,然后检查准备支付
网站根据购物车中的商品,生成Paypal的支付表单(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一些信息(下次会专门找
机会解释一下)。并在自己的数据库中生成一张订单记录。
Paypal在Session中记录下这些交易信息
用户用Paypal账户登录Paypal(Sandbox用Sandbox的虚拟帐号),复查明细,点击Pay按钮
Paypal进行交易处理,如果我们的Paypal收款帐号在接受帐款上没有什么问题(没有特别的需要Accept的地方),交易完成,那么Paypal会发
送一个IPN,并发送提示邮件。
我们IPN Handler接受到信息,首先向Paypal进行校验,如果信息正确,然后根据信息和自己数据库中进行比对,如果无误,可以将支付信息
保存,并修改订单状态。
然后Paypal会显示一个界面表示交易完成,此时如果用户点击“Return”按钮,Paypal会将用户送回我们网站指定地点。
我们网站迎接用户回来,向用户表示感谢,并进行提醒,给出订单号等等。

  1. <formtarget="paypal"action="https://www.sandbox.paypal.com/cgi-bin/webscr"method="post">
  2. <inputtype="image"src="/uploadfile/2010/0101/20100101125037948.gif"border="0"name="submit"alt="PayPal
  3. isthesafer,easierwaytopay-PayPal">
  4. <!--一次购买
  5. <inputtype="hidden"name="add"value="1">-->
  6. <!--这里是不用它集成的购物车,如果代码是value="_cart"表示用paypal已经做好的购物车.-->
  7. <inputtype="hidden"name="cmd"value="_xclick">
  8. <!--卖家的PAYPAL帐户-->
  9. <inputtype="hidden"name="business"value="Seller_1199323809_biz@126.com">
  10. <!--这个是从我网站传递过来的商品名和订单号-->
  11. <inputtype="hidden"name="item_name"value="BoAoInternationalTrading20071212s1p1u1">
  12. <inputtype="hidden"name="item_number"value="20071212s1p1u1">
  13. <!--这个是价格,如何传递就不用说了吧~-->
  14. <inputtype="hidden"name="amount"value="15">
  15. <!--商品数量-->
  16. <inputtype="hidden"name="quantity"value="1">
  17. <!--货币类型CNY:人民币,USD:美元-->
  18. <inputtype="hidden"name="currency_code"value="USD">
  19. <!--取消交易并要返回的位置-->
  20. <inputtype="hidden"name="cancel_return"value="http://www.hotweb.net.cn/?state=null">
  21. <!--交易完后自动返回的位置-->
  22. <inputtype="hidden"name="return"value="http://www.hotweb.net.cn/?state=OK">
  23. <inputtype="hidden"name="no_shipping"value="1">
  24. <inputtype="hidden"name="charset"value="UTF-8">
  25. <inputtype="hidden"name="notify_url"value="http://www.hotweb.net.cn/?state=notify">
  26. <inputtype="hidden"name="add"value="1">
  27. <inputtype="hidden"name="no_note"value="1">
  28. <inputtype="hidden"name="bn"value="PP-BuyNowBF">
  29. </form>


如果明文形式的话,就和压缩包里面的paypal.htm文件一般
-->

--------------------
文件夹和文件的一些简要说明:[App_Code] 放了几个必要的类
[Bin]存放了支付接口的解密加密的一个DLL文件
[EWPcert] 系统所需要用到的安全证书
CheckOut.aspx 相当于B2C网站的购物车,程序从这里开始
NotifyUrl.ashx 2次POST安全性验证页面,比较重要
PDTResponse.aspx用于返回信息的页面,我们可以通过这个页面来实现,吧交易的一系列信息存入自己的数据库用于验证用户是否已经支付
---------[App_Code]-----------
ButtonEncryption.cs加密【CHECK OUT】按钮的密码字符串,相当于吧明文的一些基本参数直接加密了
Constants.cs全局变量,用于存放一些PAYPAL设置的基础信息
NVPCodec.cs代码转换
Utils.cs用于安全验证时候用的
---------[EWPcert]-----------
sandbox_cert_pem.txtPAYPAL的公共证书
sdk-ewp.p12一个类似似有的证书吧,这个到不是很了解


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21114/showart_1154377.html

分享到:
评论

相关推荐

    Paypal资料 Paypal返回 Paypal接口实现 Paypal接口 Paypal参数

    Paypal资料 Paypal返回 Paypal接口实现 Paypal接口 Paypal参数Paypal资料 Paypal返回 Paypal接口实现 Paypal接口 Paypal参数Paypal资料 Paypal返回 Paypal接口实现 Paypal接口 Paypal参数Paypal资料 Paypal返回 ...

    paypal接口文档(附示例)

    总的来说,熟悉并正确使用PayPal接口文档是实现安全、高效支付功能的关键。开发者需要掌握接口调用流程、认证机制、支付状态管理以及错误处理等核心概念,以确保顺利集成PayPal服务。同时,不断关注PayPal的更新和...

    paypal 官方接口文档

    【PayPal官方接口文档】是开发人员在集成PayPal支付系统时的重要参考资料,这份文档包含了所有与PayPal接口相关的详细信息和技术指南。PayPal作为全球知名的在线支付平台,提供了多种支付解决方案,使得商家能够安全...

    paypal接口等说明 中文

    ### PayPal接口详解:付款数据传输(PDT)与即时付款通知(IPN) #### 一、付款数据传输(PDT) ##### 1.1 什么是PDT **付款数据传输(Payment Data Transfer)**,简称PDT,是PayPal提供的一种安全获取付款详细...

    PHP paypal接口集成代码下载PHP

    这里的"PHP paypal接口集成代码"可能使用的是RESTful API,因为它是目前最流行且易于使用的版本。 集成PayPal接口通常涉及以下几个步骤: 1. **注册PayPal开发者账号**:在开始之前,你需要在PayPal开发者网站上...

    ASP.NET(C#)__PayPal国际支付接口实现源码

    1. **配置PayPal账户**:在使用PayPal接口前,你需要在PayPal开发者平台上注册并创建一个Business账号,获取API凭据,包括API用户名、密码和签名,这些将在后续的代码中用到。 2. **构建API调用**:在C#中,你可以...

    paypal接口文档

    通过以上知识点的学习,开发者可以熟练地使用PayPal接口,构建安全、高效的支付系统。在实际项目中,还需要关注PayPal的最新政策和更新,确保服务的合规性和稳定性。同时,良好的用户体验设计,如清晰的支付流程和...

    springboot 项目 paypal支付接口

    在本项目中,我们主要探讨的是如何在SpringBoot应用程序中集成PayPal支付接口。SpringBoot以其简洁、快速的启动和强大的依赖管理特性,已经成为Java开发者的首选框架之一,尤其适用于构建微服务和快速原型开发。而...

    paypal接口等说明

    同时,遵守所在国家或地区的法律法规,确保支付服务符合当地监管要求,是每个使用PayPal接口的商家必须重视的事项。 #### 六、结语与责任声明 最后,文档提醒使用者,PayPal提供的信息和服务是“原样”提供的,不...

    java paypal 支付接口代码

    在本文中,我们将深入探讨如何在Java环境中集成PayPal支付接口。PayPal是全球领先的在线支付平台,提供了广泛的服务,包括购物、支付和接收付款。Java开发者可以利用PayPal的API来实现各种支付功能,例如商品购买、...

    paypal 代码示例,API接口, java PHP

    PayPal 是全球知名的在线支付平台,它为商家和...总之,掌握PayPal API接口的使用,无论是Java还是PHP,都能极大地提升你的Web应用支付处理能力。通过实践和学习,可以创建出安全、高效的支付系统,满足用户的需求。

    自己做的paypal支付接口_for_discuz

    对于Discuz这样的社区论坛平台,集成PayPal接口可以方便会员购买论坛内的虚拟商品、服务或进行捐赠,从而促进社区的发展。 集成PayPal支付接口的步骤如下: 1. **注册PayPal账户**:首先,你需要拥有一个商业版的...

    原生PHP配置paypal支付接口成功!不用Composer!

    原生PHP配置paypal支付接口成功!不用Composer!下载接口的时候,在Github上面还是在码云上我也忘记了。总之。点击“克隆and下载”,下载下来的压缩包解压后只有一个paypal文件夹。在这里着重交待:只有一个paypal...

    paypal checkout 各接口说明 翻译

    根据提供的文件信息,我们可以整理出关于 PayPal 快速结账接口的重要知识点,这些知识点主要涉及 PayPal 快速结账服务中的各个参数及其功能说明。以下是对各参数的详细解释: ### 1. 用户认证参数 - **USER**: ...

    pay pal官方支付接口文档

    "PayPal官方支付接口文档"是开发者接入PayPal支付系统的关键参考资料,它详细阐述了如何利用PayPal的服务来处理在线交易。本篇文章将深入探讨该文档中的核心知识点。 1. **NVP(Name-Value Pair)协议**: PayPal...

    ZenCart paypal+stripe[内嵌+跳转] 支付接口

    **PayPal 支付接口:** PayPal 是一个全球知名的支付解决方案,它允许用户通过他们的 PayPal 账户或信用卡进行支付。在 ZenCart 中集成 PayPal,主要有两种模式:内嵌(Express Checkout)和跳转(Standard Checkout...

    Paypal接口配置参数说明文档

    **PayPal接口配置参数说明** 在进行在线支付集成时,PayPal是一个常用且可靠的平台,其接口配置对于确保交易安全和顺畅至关重要。本文档将详细解释如何配置PayPal接口,以便在您的应用或网站中实现基本的支付功能。...

Global site tag (gtag.js) - Google Analytics