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

    支付方式

    1.当今社会的支付方式:支付宝、微信、银联。

    2.用支付宝支付需要有个商户号,企业去申请,并且需要企业营业执照:列如:申请完了会有商户号:2034944555

    3.沙箱环境(测试环境)(目前只支持安卓的测试)真恶心,鄙视IOS玩家
      -https://openhome.alipay.com/platform/appDaily.htm?tab=info

    4.加密方式

      -对称加密:加密秘钥和解密秘钥用的是同一个
      -非对称加密:加密和解密的秘钥不同,公钥可以随意分发,但是私钥一定不能泄露

    5.安装模块

      pip3 install pycryptodome 加密解密的模块

    6.支付宝支付流程:

      -1 拿到商户号,回调地址,支付宝公钥,我的私钥---生成一个对象(AliPay)
      -2 对象.direct_pay 传支付金额,支付商品描述,支付订单号---返回个加密的串(把前面参数加密了)
      -3 拿到加密的串拼到get请求参数部分pay_url = "https://openapi.alipaydev.com/gateway.do?{}".format(query_params)
      -4 重定向到该地址(向该地址发送get请求)
      -5 用户付款,付款成功支付宝会给我发送两个请求,一个是get请求,一个是post请求
      -6 咱们的程序需要处理这两个回调请求(请求回来需要验证签名)
      -get请求一般用于页面展示
      -post请求用于修改订单状态

    7.-项目中需要配置:公钥私钥生成方式:https://docs.open.alipay.com/291/105971

    8.-支付宝公钥:商户号中输入的应用公钥,会自动生成一个支付宝公钥,把它粘贴过来
      -应用私钥(用户私钥)
      -支付宝回调返回数据中会有:
      -singn:必须验证签名,验证通过才能进行后续的修改
      -订单id
      -根据订单id修改订单状态
    9.-如果用户付款了,但是你服务挂掉了?
    10.-如果服务挂掉了,支付宝过一会会自动在回调(24内,隔一段时间就会回调),重启服务器即可

  • 相关阅读:
    [SCOI2009] Windy数
    [P1361] 小M的作物
    Wannafly Camp 2020 Day 2E 阔力梯的树
    2017百越杯反序列化writeup
    大美西安writeup
    Thinkphp的SQL查询方式
    Thinkphp的CURD
    记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)
    ThinkPHP的输出和模型使用
    ThinkPHP的运行流程-2
  • 原文地址:https://www.cnblogs.com/wanglei957/p/11166084.html
Copyright © 2011-2022 走看看