支付宝支付
-支付方式:
-支付宝支付
-微信支付
-银联支付
-用支付宝支付需要有个商户号,企业去申请,并且需要企业营业执照:申请完了会有商户号:2034944555
-沙箱环境(测试环境)
https://openhome.alipay.com/platform/appDaily.htm?tab=info
直接解压alipayDemo.zip,打开直接使用,需要改一些配置,alipayDemo.zip下载
链接:https://pan.baidu.com/s/1MEdXw7a2wsm4QlV41AOc4g
提取码:nw4z
百度支付宝公共平台,直接支付宝登录,开发中心》》研发服务》沙箱,手机下载沙箱支付宝
点开后,生成密钥
商户应用私钥放到app_private_2048.txt中
商户应用公钥复制到沙箱应用例的应用公钥,生成支付宝公钥
将支付宝公钥复制到alipay_public_2048.txt
-加密方式
-对称加密:加密秘钥和解密秘钥用的是同一个
-非对称加密:加密和解密的秘钥不同,公钥可以随意分发,但是私钥一定不能泄露
-安装模块
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
-支付宝公钥:商户号中输入的应用公钥,会自动生成一个支付宝公钥,把它粘贴过来
-应用私钥(用户私钥)
-支付宝回调返回数据中会有:
-singn:必须验证签名,验证通过才能进行后续的修改
-订单id
-根据订单id修改订单状态
-如果用户付款了,但是你服务挂掉了?
-如果服务挂掉了,支付宝过一会会自动在回调(24内,隔一段时间就会回调),重启服务器即可