美文网首页
python paypal支付接口开发

python paypal支付接口开发

作者: 我爱大灰狼 | 来源:发表于2018-12-08 11:57 被阅读0次

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

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

    交易创建成成功

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

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

    测试个人账号

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

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

    测试商家账号

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

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

    相关文章

      网友评论

          本文标题:python paypal支付接口开发

          本文链接:https://www.haomeiwen.com/subject/zbdthqtx.html