zoukankan      html  css  js  c++  java
  • 支付宝支付流程

    -安装模块
                pip3 install pycryptodome   加密解密的模块
            -支付宝支付流程:
                -1 拿到商户号,回调地址,支付宝公钥,我的私钥---生成一个对象(AliPay)
                -2 对象.direct_pay  传支付金额,支付商品描述,支付订单号---返回个加密的串(把前面参数加密了)
                -3 拿到加密的串拼到get请求参数部分pay_url = "https://openapi.alipaydev.com/gateway.do?{}".format(query_params)
                -4 重定向到该地址(向该地址发送get请求)  前后端分离 项目需要将还url直接传给前端,让前端自己实现页面的跳转。
                -5 用户付款,付款成功支付宝会给我发送两个请求,一个是get请求,一个是post请求
                -6 咱们的程序需要处理这两个回调请求(请求回来需要验证签名)
                    -get请求一般用于页面展示
                    -post请求用于修改订单状态
    
    
    
    ​        -项目中需要配置:公钥私钥生成方式:https://docs.open.alipay.com/291/105971-支付宝公钥:商户号中输入的应用公钥,会自动生成一个支付宝公钥,把它粘贴过来
    ​            -应用私钥(用户私钥)
    ​        -支付宝回调返回数据中会有:
    ​            -singn:必须验证签名,验证通过才能进行后续的修改
    ​            -订单id
    ​                -根据订单id修改订单状态
    
    
    
    -沙箱环境(测试环境)
                -https://openhome.alipay.com/platform/appDaily.htm?tab=info
    
    
    
    
    
    加密方式:
    -对称加密:加密秘钥和解密秘钥用的是同一个
                -非对称加密:加密和解密的秘钥不同,公钥可以随意分发,但是私钥一定不能泄露,发送者拿到公钥将数据加密后发给接收者,接收者将该数据经过私钥解密以后就可以拿到数据。
    
    具体参考:<https://www.cnblogs.com/liuqingzheng/p/9760765.html>
    
    
    
    
    可以生成当前项目所依赖的第三方模块
    pipreqs ./  --encoding=utf8
    pipreqs ./  --encoding=utf8
  • 相关阅读:
    浅谈异或相关性质
    重谈树状数组
    洛谷 U141397 !
    谈谈Sleep和wait的区别
    请描述线程的生命周期
    一个普通main方法的执行,是单线程模式还是多线程模式?为什么?
    创建线程的方式
    一道关于try catch finally返回值的问题
    throw跟throws的区别
    罗列常见的5个非运行时异常
  • 原文地址:https://www.cnblogs.com/changwenjun-666/p/11436748.html
Copyright © 2011-2022 走看看