`
jqj031
  • 浏览: 72885 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

paypal支付开发接口(转)

阅读更多
原文地址:http://www.oueasy.com/2010/0101/2108713.html
一点必须了解的基础知识:
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会将用户送回我们网站指定地点。
我们网站迎接用户回来,向用户表示感谢,并进行提醒,给出订单号等等。
如果明文形式的话,就和压缩包里面的paypal.htm文件一般
<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="image" src="/uploadfile/2010/0101/20100101125037948.gif" border="0" name="submit" alt="PayPal
is the safer, easier way to pay - PayPal">
<!--一次购买
<input type="hidden" name="add" value="1">-->
<!--这里是不用它集成的购物车,如果代码是 value="_cart"表示用paypal已经做好的购物车. -->
<input type="hidden" name="cmd" value="_xclick"> 
<!--卖家的PAYPAL帐户-->
<input type="hidden" name="business" value="Seller_1199323809_biz@126.com">
<!--这个是从我网站传递过来的商品名和订单号 -->
<input type="hidden" name="item_name" value="BoAo International Trading 20071212s1p1u1">
<input type="hidden" name="item_number" value="20071212s1p1u1">
<!--这个是价格,如何传递就不用说了吧~ -->
<input type="hidden" name="amount" value="15">
<!--商品数量 -->
<input type="hidden" name="quantity" value="1">
<!--货币类型 CNY:人民币,USD:美元-->
<input type="hidden" name="currency_code" value="USD">
<!--取消交易并要返回的位置-->
<input type="hidden" name="cancel_return" value=" http://www.hotweb.net.cn/?state=null">
<!--交易完后自动返回的位置-->
<input type="hidden" name="return" value="http://www.hotweb.net.cn/?state=OK">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="charset" value="UTF-8">
<input type="hidden" name="notify_url" value="http://www.hotweb.net.cn/?state=notify">
<input type="hidden" name="add" value="1">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="bn" value="PP-BuyNowBF">
</form>

文件夹和文件的一些简要说明:[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.txt  PAYPAL的公共证书
sdk-ewp.p12  一个类似似有的证书吧,这个到不是很了解[


分享到:
评论

相关推荐

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

    综上所述,ASP.NET+C#实现的PayPal支付接口涉及了网络请求、参数构建、响应解析、支付状态跟踪等多个环节,对于提升网站的国际化支付能力至关重要。在实际开发中,还需要根据具体业务场景进行定制和优化,确保支付...

    paypal支付中文文档,包括php,java等

    **PayPal支付中文文档概述** 本文档集合涵盖了PayPal支付平台的各种中文资源,适用于开发者和电商网站管理员。这些文档详细介绍了如何集成PayPal支付服务,包括PHP和Java等编程语言的实现方法。以下是对每个文件...

    java paypal 支付接口代码

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

    springboot 项目 paypal支付接口

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

    自己做的paypal支付接口_for_discuz

    标题“自己做的paypal支付接口_for_discuz”表明了我们的目标是为Discuz论坛实现PayPal支付功能。标签“paypal”、“paypal支付接口”和“discuz支付接口”进一步强调了这一主题。 首先,让我们了解一下PayPal。...

    PayPal api & 支付宝API接口开发相关文档实例

    在本文中,我们将深入探讨如何使用PayPal API和支付宝API进行支付接口的开发,主要针对C#编程语言的开发者。这两个支付系统在全球范围内被广泛应用于电子商务和其他在线交易中,为商家提供安全、便捷的支付解决方案...

    Thinkphp5 Paypal支付

    在本项目中,我们主要探讨如何使用PHP框架Thinkphp5集成PayPal支付接口,以便为用户提供安全、便捷的在线支付体验。以下将详细介绍这个过程的关键知识点。 1. **Thinkphp5框架**:Thinkphp5是基于PHP语言的一个轻量...

    paypal接口文档(附示例)

    PayPal的接口文档对于开发者来说至关重要,它详细介绍了如何集成PayPal的服务到自己的应用或网站中,以便用户可以进行支付操作。本文档将深入解析PayPal接口的相关知识,并结合示例进行说明。 1. **PayPal API概述*...

    paypal 官方接口文档

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

    paypal国际支付springboot版本

    本项目“paypal-springboot”旨在演示如何在Spring Boot应用中整合PayPal支付接口,实现安全、高效的跨境支付服务。下面我们将深入探讨相关的技术细节和知识点。 1. **Spring Boot简介** Spring Boot是Spring框架...

    paypal php支付demo

    在实施PayPal支付时,必须遵守PayPal的开发者政策和指南,确保用户数据的安全。使用HTTPS进行通信,存储敏感信息时应用加密,这些都是基本的安全措施。 **9. 结合前端** 这个PHP支付Demo通常需要与前端界面配合...

    paypal支付接入php开发文档

    【PayPal支付接入PHP开发详解】 PayPal是一个全球知名的在线支付平台,尤其在跨国交易中扮演着重要角色。它提供了一种快速、安全且便捷的支付方式,支持与国内外大部分信用卡关联,使得用户能够轻松进行跨境交易。...

    paypal 支付的源代码

    这个源代码可能包含了ASP(Active Server Pages)语言实现的PayPal支付接口,这是一种微软开发的服务器端脚本技术,常用于构建动态网页。下面我们将深入探讨与PayPal支付相关的知识点,以及ASP在实现这些功能时的...

    java实现paypal支付实例,内涵jar

    对于开发人员来说,集成PayPal支付接口到自己的应用或网站是至关重要的。 首先,`paypalrest-api-sdk-1.13.0.jar` 是PayPal官方提供的Java RESTful API SDK,它包含了一系列的类和方法,用于与PayPal的服务器进行...

    springboot2.2整合PayPal支付demo

    在本文中,我们将深入探讨如何在Spring Boot 2.2版本中整合PayPal支付系统,以便为您的应用程序提供在线支付功能。首先,我们需要了解Spring Boot和PayPal的基础知识。 Spring Boot是一个基于Java的微服务框架,它...

    IJPay 让支付触手可及,封装了微信支付、支付宝支付、京东支付、银联支付、PayPal支付等常用的支付方式以及各种常用的接口

    聚合支付,IJPay 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付、PayPal支付等常用的支付方式以及各种常用的接口。不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的...

Global site tag (gtag.js) - Google Analytics