(第一次接触支付,理解可能也不是很深,欢迎批评指正)

paypal是目前全球最大的在线支付工具,就像国内的支付宝一样,是一个基于买卖双方的第三方平台。

PayPal API是基于HTTP的restful API,使用OAuth 2.0进行授权。API请求和响应主体采用json格式。

*环境准备

* 注册paypal账号

(1)在浏览器输入“https://www.paypal.com”,页面跳转,进行注册

(2)选择“创建个人账户”,根据要求填写信息,注册完去邮箱激活

* 注册paypal开发者账号

(1)在浏览器输入“https://developer.paypal.com”,并登陆创建好的账号登录

* 创建两个测试用户

(1)登录成功之后,点击Sandbox下的Accounts

(2)   进入Accounts洁面后,可以看到系统有两个生成好的测试账号,但是我们不要用系统给的测试账号,很卡,自己创建两个账号。

系统生成的两个测试账号

(3)点击“Create Account” , 创建测试用户

创建测试用户

填完账户信息即可, 先创建一个“ PERSONAL”类型的用户,国家一定要选“China”,账户余额自己填写。接着创建一个“BUSINESS”类型的用户,国家一定要选“China”,账户余额自己填写,创建好之后可以点击测试账号下的”Profile“,可以查看信息,如果没加载出来,刷新 。

手动创建的测试账号

用测试账号登录测试网站查看,注意!这跟paypal官网不同!不是同一个地址,在浏览器输入:https://www.sandbox.paypal.com 在这里登陆测试账户

* 创建应用,生成用于测试的clientID 和密钥

创建应用时,PayPal会为沙盒和实时环境为您的应用生成一组OAuth客户端ID和机密凭据。您Authorization在get访问令牌请求中的标头中传递这些凭据。通过持票人令牌,您可以代表资源所有者并获得资源所有者的批准。

(1)点击左边导航栏Dashboard下的My Apps & Credentials,创建一个账号,下图是我已经创建好的

沙箱账号

(2)  然后到下边的创建App

这是我创建的“ai_server”App:

创建应用

(3)点击刚创建的App"ai_server", 注意看到”ClientID“ 和”Secret“(Secret如果没显示,点击下面的show就会看到,点击后show变为hide)

App生成的clientId和密钥

******环境准备工作基本完成,接下来需要获取访问令牌(使用访问令牌进行身份验证),要获取访问令牌,请在获取访问令牌调用中传递OAuth凭据。要进行此调用,您可以在命令行或Postman应用程序上使用cURL。

以postman为例:

凭据生成过程

获得令牌凭据

二、客户端集成的工作方式如下:

1. 您的买家点击了PayPal按钮。

2. PayPal按钮调用PayPal API来设置付款。

3. 该按钮在浏览器中启动结帐流程。

一个客户端的整合是整合PayPal支付的最快方式。它不需要Web服务器来设置和执行付款。相反,PayPal Checkout按钮可直接从您的浏览器设置和执行付款。

三、REST API

本项目支付调用的是PayPal的SDK,主要关注Create 和 Execute 两个接口,使用SDK的好处是通信过程中只要按照格式要求去请求接口就OK了,不需要牵扯到加密等复杂部分。以下是项目主要请求的内容和格式,以及返回的内容和格式。(主要来自Payments API,为图方便而记录下来,有需要了解更多的的可以去参考官方文档啦)

Create payment

Create请求的格式和内容:

以postman 为例:

支付认证过程

(tips:访问凭据过期可以再去生成)

发送支付请求

支付的请求数据中的return_url,是当你支付成功后所跳转的url,后面会用到

支付请求成功返回的数据

支付成功返回数据

声明:支付请求成功返回的数据链接中,将页面重定向至该url支付页面,进行支付授权,并确认支付。

确认支付的url

将approval_url放入浏览器中 ,进行付款(付款之前需要你去登录测试个人账号去付款)

登录个人账号

支付信息

支付过程

在支付成功的那一刻,跳转之前设定好的URL页面里面(是请求数据中return_url),并获得支付成功的PayerID等数据

支付成功

在支付请求成功的返回链接数据中获取函数execute的该url:

授权批准

通过买家payer_id去观察付款状态:

授权订单

买家同意本次交易

获取到execute的返回值,主要关注state关键字。

state状态

返回的值有created,approved,failed,以此来判断支付的状态。到了这一步,支付的整个流程就全部走通啦!

说到这里不得不在提醒一下,刚开始支付成功是返回的数据状态为“state:created”,只是这笔交易刚创建而已,上图:

交易创建成成功

当买家同意本此交易,才是真正的本场交易完成。

在结尾处咱们可以看下测试账号中的金额,是否符合刚才这份交易,首先登录测试个人账号:

测试个人账号

噔噔噔噔,付款成功,完美!

接下来看下商家账号中是否收到该次交易的金额,登录你的是测试商家账号

测试商家账号

作者:我爱大灰狼
链接:https://www.jianshu.com/p/a4152f4f636a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

python paypal支付接口开发相关推荐

  1. paypal支付接口开发笔记--Java版

    接入流程文档见:https://blog.csdn.net/change_on/article/details/73881791 支付回调文档见:https://www.freesion.com/ar ...

  2. [chatgpt] golang集成paypal支付接口

    go 语言集成paypal支付接口 PayPal 是一种常用的在线支付服务.如果要在 Go 语言项目中使用 PayPal 支付接口,您需要使用 PayPal 提供的 API.下面是 Go 语言中如何集 ...

  3. 支付宝WAP支付接口开发

    支付宝WAP支付接口开发 因项目需要,要增加支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文作为这两天摸索的总结.由于公司有自己的支付接口,并不直接使用这个接口,所以晚些 ...

  4. php银联支付接口 demo,php版银联支付接口开发简单实例详解

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...

  5. PHP银联在线支付接口开发日志

    银联在线支付接口开发日志 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口,本例以 手机网页支付(WAP支付)为例. 2 ...

  6. [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

    [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回 1.经验1 直接建立一个支付页面 /** * ecshop 支付接口开发 测试 * ======= ...

  7. ASP做paypal支付接口详细代码和实例

    ASP做贝宝(paypal)支付接口 !! 今天网速很慢,想想整理一下前些天做的接口吧! 整理 ! 整理一下 ! 事实上,paypal可以说分两个 : 国际www.paypal.com 中国www.p ...

  8. 公众号php支付接口开发,公众号支付接口的开发

    这次给大家带来公众号支付接口的开发,公众号支付接口开发的注意事项有哪些,下面就是实战案例,一起来看一下. 公众号支付就是在微信里面的H5页面唤起微信支付,不用扫码即可付款的功能.做这个功能首先要明确的 ...

  9. java支付接口开发原理_java对接微信支付接口开发的过程是什么?

    java对接微信支付接口开发的过程是什么?以下是小编整理的java对接微信支付接口实现的方法和过程,有需要的朋友可以学习以下的java对接微信支付接口内容. java对接微信支付接口开发的过程是什么? ...

最新文章

  1. Java为什么会有默认的背景色_java – 为什么我的背景颜色不会在JFrame中...
  2. struct tm 和 time_t
  3. keras 多个显卡
  4. docker中部署Nginx
  5. VSS 请求程序和 SharePoint 2013
  6. Spark的输出提交控制器OutputCommitCoordinator
  7. 【转载】ubuntu换源
  8. 2017.10.2 计算机算法分析----0-1背包问题
  9. android 屏保程序,Android下屏保程序的开发
  10. 计算机网络基础知识框架
  11. 谷歌正式宣布退出中国 关闭google.cn
  12. 心中无码便是高清,用“脑补”除马赛克!
  13. Twincat3 硬件: 台湾DFI工业控制器,CPU1.1GHZ,RAM512
  14. ee可以有js吗 jvaa_JAVAEE面试题
  15. 培训课程通知邮件模板
  16. scala中 sorted,sortBy,sortWith语法使用
  17. 2021软科计算机科学与技术,2021软科排名,NTU 十学科跻身世界前十!
  18. Study16 面向对象三大特性
  19. 一篇博客学会了坦克大战
  20. 《俄狄浦斯王》--人伦悲剧还是命运悲剧?

热门文章

  1. 申请微信支付相关事宜
  2. 在v8系统上显示数据库的数据
  3. Win10禁用各种后台更新的方法
  4. vipjr外教给孩子“陪读”156天记录,能坚持下去的才有意义
  5. java图片添加水印文字
  6. 【大数据】大数据运维学习前必须知道的几个常识
  7. 专注智能手机研发与创新,OPPO打造手机行业工匠精神
  8. 小程序日期时间选择器
  9. JAVA文件锁之保证仅有一个实例运行
  10. 私域SCRM系统玩法分享,用户裂变推荐这几种方法