python paypal支付接口开发

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

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”,只是这笔交易刚创建而已,上图:

交易创建成成功

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

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

测试个人账号

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

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

测试商家账号

收款金额到账,更加完美!

说到这里,支付流程就结束啦!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 8 管理支付和订单 在上一章中,你创建了一个包括商品目录和订单系统的在线商店。你还学习了如何用Celery启动异步...
    lakerszhy阅读 2,345评论 1 4
  • 点我查看本文集的说明及目录。 本项目相关内容包括: 实现过程: CH7 创建在线商店 CH8 管理支付和订单 CH...
    学以致用123阅读 2,300评论 1 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,591评论 18 139
  • 今天我又读了一本故事书,咕咚咕咚怪物。 不爱打扫卫生的 图图床下有许多灰尘,这些灰尘每天都吃脏垃圾,最...
    张韶轩阅读 1,417评论 1 0
  • 1、有所付出之后而得到的东西更加珍贵。 经历过从0到负,甚至负的极端,之后返回0,甚至到达正的极端,涵盖更广,意义...
    晴天有小雨Eason阅读 263评论 0 0