019:Django微信支付宝支付

本章知识点

1、Django支付
2、Django微信支付介绍
3、Django支付宝支付实施
知识点讲解
Django支付
1、银行支付
2、微信支付
3、支付宝支付
4、其他的支付平台
支付可能有的工作任务
1、开启自己的收费接口
2、开发支付平台
支付核心
1、支付通常是通过api接口开发实现的。
2、支付通常需要签证,解签来保证我们的支付安全。
公钥
私钥
Django微信支付介绍
微信支付平台,对支付的要求,相当严格。
微信支付开通地址
https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2Findex.php
支付产品:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接入微信支付在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们现在放弃微信,但是微信的步骤和支付宝相识。
Django支付宝支付实施
1、开通开发者权限
https://open.alipay.com/platform/home.htm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、进入沙箱环境在这里插入图片描述
3、编写接口请求的代码在这里插入图片描述
生成本机的公钥和私钥在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://docs.open.alipay.com/291/105971在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
支付宝严格要求公钥和私钥的格式,直接读入公钥和私钥会报格式错误
然后我们回到沙箱设置的页面,将公钥设置好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们作为网站开发方,需要的步骤
1、接收订单
2、跳转请求支付宝,发起的支付请求
3、提供支付宝返回支付码的调用页面
4、等待确认收款的状态
同步 等待的途中不干其他的事情,进入阻塞状态
异步 等待的同时可以进行其他操作

我们着重研究一下支付宝支付接口。
支付宝支付接口有完整的文档和案例,但是没有python的案例,所以我们有两个选择
1、自己编写
2、调用三方的api
自此之前,我们看一下支付宝关于支付的接口要求
首先查看电脑网站支付的步骤案例
https://docs.open.alipay.com/270
然后查看api接口规范
在这里插入图片描述
https://docs.open.alipay.com/api_1/alipay.trade.pay在这里插入图片描述
在这里插入图片描述
https://docs.open.alipay.com/api_1/alipay.trade.pay在这里插入图片描述
https://docs.open.alipay.com/291/105974在这里插入图片描述
https://docs.open.alipay.com/54/103419 使用官方的sdk
在这里插入图片描述
安装sdk的模块:在这里插入图片描述
首先获取沙箱应用的应用id
然后获取沙箱应用的网官
在这里插入图片描述
自己编写sdk在这里插入图片描述
在这里插入图片描述

from alipay import AliPay
	
alipay_public_key_string = '''-----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsLDofX93PGVStfpI4/R3mX22p7EWct0b9TutpGrj/XnukV+ZtkBUez7t6IKa13nBOuMM1RMeUw06FHAX6xhoHK/Uf4HRZmV718M/JTodrsucEKe9OUNDcOPIjPooqLim2W6m7FW/XRLcZFK8yasEDNoCj7W6UPdwBnCvTCpPLOur+lNmgPTEGQRo+5qvcNEKYKJHeZEOzwGTUzyT+fT3LIISLgAK/vKjNg9m2mMlKuT47M1nNpOnaI4sp2SVzQ6Lx/STg301SOmxyvVFM2Uq4hksyIw1xdVa0rDH5vBU+C/M0AfYx8rOOkDB6TyechoDOqOPAXKZ22Zk/Ms/alJxAwIDAQAB
-----END PUBLIC KEY-----'''

app_private_key_string = '''-----BEGIN RSA PRIVATE KEY-----
    MIIEpAIBAAKCAQEAsLDofX93PGVStfpI4/R3mX22p7EWct0b9TutpGrj/XnukV+ZtkBUez7t6IKa13nBOuMM1RMeUw06FHAX6xhoHK/Uf4HRZmV718M/JTodrsucEKe9OUNDcOPIjPooqLim2W6m7FW/XRLcZFK8yasEDNoCj7W6UPdwBnCvTCpPLOur+lNmgPTEGQRo+5qvcNEKYKJHeZEOzwGTUzyT+fT3LIISLgAK/vKjNg9m2mMlKuT47M1nNpOnaI4sp2SVzQ6Lx/STg301SOmxyvVFM2Uq4hksyIw1xdVa0rDH5vBU+C/M0AfYx8rOOkDB6TyechoDOqOPAXKZ22Zk/Ms/alJxAwIDAQABAoIBACcDuSJU7fgpC11hWYz0IyCCUL2wbZuJVS4OMmZWr+b9cH8rE97ZT44zNAceJ6Ciotck4WV/JjgCeKugoLdpmTuUW6CYAqvQhsr6ssu+jGVXUiufTjoBrzeTJGp0pluzAiyKsVMIEAw2KPICDuuc1nUcAmrHHs/YAyV45kw0H210clEbKfhWTmHj0nIV08++gos7S4QmNJc0Gn/hEvOcwmU4aU8jx4cNxzrYAO22UcSIjFnuOnC7tS+VAPtCVnMr4dcaNKhJZPCkTdvTN8gLZSszFpx+i7yV2pGvUFhX945/iIUjJSgS/rM7zzywANM8VyFsh4GEcpkWOxlliU0KEUkCgYEA4zEHpdE1uSPk9Kd9NXUUmD8ytBSrwbCnTYIVcEx1CX6qqKgXks0UqmtmrxGo+UZ8OjKbMa0qqhxOJTrirddG4prB2E/7xZaS2I3HY36PL2xy7omYt7gBHeu0leUT7QuRuqVOCQYDxD9c0gCe10zu2BVDi699V73Gq2Gud0poR9cCgYEAxxiPC9O93MykrRBWei9+NJJyKbz/5Q404VE4696dIqmib/PjgR0g2tSdXVZaeYnmESOfH5DWaC3WMbMa1BEfp0iwP/7XBOpzCdmvqqGMz3PgM2QrVl8tblH2RLrc/dNoJluOw+aAGpZhnsVfW0gaw05+cSRsYmjCPGqcg0xYyrUCgYEAl9rkzru42ggY+EKfWUTpwB216VJLv4oxOYhyhf5E2FTXAyZfo1r6rjJdjzURqZSoYkoDG8AwXUXQIehrLWFQWxSv7sL/eYF8o8yYcnNch4lIhRJphpsx++rZaLuWhwINpSDquPNRPzJO+3s4sJYWq04DOPHSqPwLN/BxqgCNFT8CgYBotTbODo8k54+X4SbJ3d5vAbH+14JxUdZnxZK9IffcOgDPBiJZThtwWy9j3j14/Bg+XVCbhk3svmaO/tYWP+c40Fa5YWpuEGtt+8mSYKIwnI2GGaFdLHM1OO/e17PP3nZA7hgYWUp4MSyoFr9+v14r50VCddh2rQeyRJOJzgZInQKBgQCRw8QK5vxexmFVF70y9p37agvioyfeiu5SStOKPAh9+2XlfFymgZiSpl9WrSL/JQSVXJzn6WoU8yQuHK41ovjrBTuzbra/6b+kgGNi1Laqt3Xmq0im3Q9Sxf5nrHpPpQyuRu0eyQ2VIcb3r0zdxdHvu3ywTx7SaE8gW6XQGrE+xg==
-----END RSA PRIVATE KEY-----'''

#如果在Linux下,我们可以采用AliPay方法的app_private_key_path和alipay_public_key_path方法直接读取.emp文件来完成签证
#在windows下,默认生成的txt文件,会有两个问题
    #1、格式不标准
    #2、编码不正确 windows 默认编码是gbk

#实例化应用
alipay = AliPay(
    appid="2016092300574326", #支付宝app的id
    app_notify_url=None, #会掉视图
    app_private_key_string = app_private_key_string, #私钥字符
    alipay_public_key_string = alipay_public_key_string, #公钥字符
    sign_type="RSA2", #加密方法
)
#发起支付
order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="3345416",
        total_amount=str(0.01),  # 将Decimal类型转换为字符串交给支付宝
        subject="商贸商城",
        return_url=None,
        notify_url=None  # 可选, 不填则使用默认notify url
    )

    # 让用户进行支付的支付宝页面网址
print("https://openapi.alipaydev.com/gateway.do?"+order_string)

本章总结
Django支付
Django微信支付介绍
Django支付宝支付实施

猜你喜欢

转载自blog.csdn.net/weixin_43582101/article/details/86644214