支付宝支付

前提:


  需要有一个商户号,需要存在企业营业执照,手续齐全以后可以申请。
  若达不到要求,可以去支付宝官网注册一个沙箱环境(用来测试)https://openhome.alipay.com/platform/appDaily.htm?tab=info
拿到一个现成的django项目,里面是有现成的支付宝接口


安装模块:pip3 install pycryptodome   用来加密解密的模块
支付宝支付流程:
            -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请求用于修改订单状态


-项目中需要配置:公钥私钥生成方式:https://docs.open.alipay.com/291/105971
            -支付宝公钥:商户号中输入的应用公钥,会自动生成一个支付宝公钥,把它粘贴过来
            -应用私钥(商户私钥): 同样将生成的商户私钥copy过来即可。


在沙箱环境里也需要配置:将商户的公钥复制到 设置应用公钥即可!

-支付宝回调返回数据中会有:
-singn:必须验证签名,验证通过才能进行后续的修改
-订单id
-根据订单id修改订单状态

-如果用户付款了,但是你服务挂掉了?
-如果服务挂掉了,支付宝过一会会自动在回调(24内,隔一段时间就会回调),
根据错误码,去处理服务器
重启服务器即可。

原文地址:https://www.cnblogs.com/changwenjun-666/p/11166860.html