• 路飞学城项目-支付相关-支付宝第三方支付


    ###############     通过这个支付宝支付我能学到什么?    ################

    # 支付宝支付
    # 从中我能学到什么?
    # 1,支付宝支付的逻辑
    # 2,如何使用支付宝来接入项目,能够实现支付宝的支付
    # 3,看看支付宝接口的规范,为自己写接口做参考,

    ###############     支付宝支付申请    ################

    # 去支付宝申请
    # 这是支付宝的开放平台:https://open.alipay.com/platform/home.htm
    # 正式环境:
    # 在开发者中心,点击网络&移动应用,支付接入,接入的时候需要创建一个应用,然后会给你一个appid,这是一个唯一的标识,现在我们没有资质,是需要公司的营业执照的,
    # 沙箱环境:
    # 进入沙箱环境,开发者中心中有一个研发服务,有一个沙箱,这是对支付宝真实环境的模拟,这是一个开发模拟的环境,这样你就可以进行一个程序的开发了,
    # 沙箱环境重要的内容:
    # 1,appid:这是一个唯一的标识,
    # 2,支付网关:https://openapi.alipaydev.com/gateway.do,通过这个地址就是转账了,dev是沙箱环境,去掉之后就是正式的了,
    # 3,秘钥设置:
    # 4,沙箱账号:包括商家的和买家的,

    ###############     支付宝支付流程    ################

    # 对接支付宝的流程:
    # 需要看看支付宝开发者文档,https://docs.open.alipay.com/270,这是电脑的网站支付,文档中有一个使用的流程,
    
    #
    1,用户点击去付款, # 点击之后,访问django后端,然后后台有处理函数,会去调用支付宝支付的接口(alipay.trade.page.pay) # 调接口需要传什么参数:订单id,总金额,订单标题,这三个必须要传的, # 还有两个不是必传的,return_url,notify_url,这两个是django网站的地址,
    #
    2,调了支付接口之后,支付宝会返回什么? # 会返回一个付款界面,是一个二维码支付页面,我们需要引导用户到这个支付页面,然后这个登录支付的过程就是用户和支付宝之间的交互了, # 但是之后成功之后我们不知道,怎么办?
    #
    3,支付完成之后,支付宝会返回什么? # 我们需要在调支付接口的如果有 return_url,支付宝支付完成之后,马上会访问return_url这个地址,并且传递参数,告诉网站支付的结果, # 我们把这个叫做同步访问, # notify_url,这个是异步访问,也就是支付完成之后,不会马上访问,有一定的时间,目的都是告诉支付结果,只是一个同步一个异步, # 还是以异步为准,因为同步的可能不准, # 但是我们现在即使提供了这个地址,因为我们的地址不是公网的,所以支付宝也不能访问这个地址,怎么获取支付的结果? # 我们的网站可以访问支付宝的接口(alipay.trade.query),这是一个交易查询的接口,可以查询交易的结果,会返回用户支付的结果,

    ###############     使用sdk和配置秘钥    ################

    # 使用sdk和配置秘钥
    # 原生的接口需要我们自己调,自己传递参数,生成预付订单需要使用签名,签名的生成比较麻烦容易出错,所以提供了一个sdk,简化开发流程,
    # 怎么使用这个sdk?
    # 现在已经有了官方的python语言的sdk了
    #################################
    # 设置秘钥
    # 请求之前需要一个参数的传递,这个传递的过程需要一个加密,这就是涉及到了公钥和私钥,
    # 私钥是为了加密,公钥是为了解密,
    # django网站发给支付宝平台的时候,需要通过自己的私钥加密数据,然后支付宝通过公钥解密,所以需要把自己的公钥告诉支付宝,
    # 支付宝给django回消息的时候,需要用支付宝的私钥加密,发给网站,然后网站需要支付宝的公钥进行解密,
    
    # 支付宝提供了生成公钥和私钥的工具,可以下载下来,然后生成,
    # 生成自己的公钥和私钥之后,要把自己的公钥放到支付宝,然后就会生成一个支付宝的公钥,
    # 然后要在项目中保存支付宝的公钥,和app的私钥

    ###############     支付逻辑    ################

    # 点击支付按钮的逻辑
    # 后端:
    # 1,获取到前端传过来的价格,购买的商品,
    # 2,生成订单,
    # 3,使用sdk构建我们需要的参数,
    #   3.1,实例化一个alipay的对象,传递需要的参数,
    #   3.2,构建我们的参数
    # 4,拼接url,重定向到支付宝,请求支付宝的支付接口,
    # 5,可以直接把这个url后端进行重定向,也可以给到前端,然后前端去处理,

    # 前端跳转到支付页面之后,
    # 登陆支付宝支付,
    # 支付成功之后,支付宝会自动调用notify_url,告诉我们是否成功, # 我们要处理这个post请求, # 后端: # 1,验证数据 # 2,如果支付成功,修改订单状态,
    # 3,返回前端支付结果,
    # 4,然后前端会返回给客户,失败返回失败的页面,成功了返回成功的页面,

    ###############     结束线    ################

  • 相关阅读:
    YunTable开发日记(16)教程(0.9版RC)
    DevOps,不是一个传说!
    C/C++可变参数函数(转载) zjhfqq的专栏 52RD博客_52RD.com
    c++大写
    fabric install depernedecy
    mysql 在int ,bit类型中都 支持not 取反操作
    关于realloc的原理,与实现方法 C/C++ / C语言
    了解YunTable | 人云亦云
    如何让编译时的出错提示由中文变为英文的? 查看主题 • Ubuntu中文论坛
    Tomcat配置技巧Top 10
  • 原文地址:https://www.cnblogs.com/andy0816/p/12094803.html
Copyright © 2020-2023  润新知