django--Django支付(微信、支付宝、其他)、Django部署

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44863429/article/details/101468231

一、Django 支付

(一)微信

请求地址

https://pay.weixin.qq.com/static/applyment_guide/applyment_index.shtml

在这里插入图片描述

申请条件

在这里插入图片描述

(二)支付宝

支付宝支付流程:

  • 买家发出购买请求,服务生成订单
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTThqeSY-1569498531917)(day14.assets/1569464571160.png)]
  • 提交订单,卖家将支付请求发到支付宝
  • 支付宝返回支付页面
  • 买家在支付页面完成付款
  • 支付处理付款请求
  • 支付宝返回处理结果(支付完成,支付失败,支付进行中)

支付url

https://open.alipay.com/platform/home.htm

在这里插入图片描述

开发测试 使用沙箱环境

在这里插入图片描述

扫描二维码关注公众号,回复: 7652459 查看本文章

在这里插入图片描述

下载安卓端

在这里插入图片描述

账号信息

在这里插入图片描述

支付宝接口文档地址 https://docs.open.alipay.com/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置公钥 私钥
在这里插入图片描述

在这里插入图片描述

以卖家的身份进行收款,

支付宝已经写好的sdk,可以使用模块的方式使用,

使用需要安装

pip install pycryptodome    ## 阿里sdk的依赖包
pip install python-alipay-sdk --upgrade

使用python完成支付

创建文件,测试demo

from alipay import AliPay
## 公钥
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
## 放公钥
-----END PUBLIC KEY-----"""
## 私钥
alipay_private_key_string="""-----BEGIN RSA PRIVATE KEY-----
## 放私钥
-----END RSA PRIVATE KEY-----"""
## 实例化支付对象
alipay = AliPay(
    appid='2016101300673550',
    app_notify_url = None,
    app_private_key_string=alipay_private_key_string,
    alipay_public_key_string=alipay_public_key_string,
    sign_type="RSA2",
)
## 实例化订单
order_string = alipay.api_alipay_trade_page_pay(
    subject = '牛羊生鲜',   ## 交易主题
    out_trade_no = '10000000002',    ## 订单号
    total_amount = '100',     ## 交易总金额
    return_url=None,         ##  请求支付,之后及时回调的一个接口
    notify_url=None          ##  通知地址,
)
##   发送支付请求
## 请求地址  支付网关 + 实例化订单
result = "https://openapi.alipaydev.com/gateway.do?"+order_string
print(result)

视图:

接收请求,处理,获取支付页面,并完成跳转支付页面

def AlipayViews(request):
    order_id = request.GET.get("order_id")    ## 订单id
    payorder = PayOrder.objects.get(id=order_id)
    ## 实例化支付对象
    alipay = AliPay(
        appid='2016101300673550',
        app_notify_url=None,
        app_private_key_string=alipay_private_key_string,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",
    )
    ## 实例化订单
    order_string = alipay.api_alipay_trade_page_pay(
        subject='天天生鲜',  ## 交易主题
        out_trade_no=payorder.order_number,  ## 订单号
        total_amount=str(payorder.order_total),  ## 交易总金额
        return_url="http://127.0.0.1:8000/Buyer/payresult/",  ##  请求支付,之后及时回调的一个接口
        notify_url="http://127.0.0.1:8000/Buyer/payresult/"  ##  通知地址,
    )
    ##   发送支付请求
    ## 请求地址  支付网关 + 实例化订单
    result = "https://openapi.alipaydev.com/gateway.do?" + order_string
    print(result)

    return HttpResponseRedirect(result)

视图: 支付提交之后,跳转的我们的结果页面

def payresult(request):
    return render(request,"buyer/payresult.html")

视图: 服务端,收到支付结果,然后修改订单状态

在这里插入图片描述

打印支付宝请求传的参数

在这里插入图片描述

修改订单状态

在这里插入图片描述

修改页面显示样式

在这里插入图片描述

(三)其他支付方式

富有,连连,渤海银行,攀枝花银行,民生银行

请求方式:

  • api接口
  • form表单(网关接口)

form表单支付流程

在这里插入图片描述

api支付流程

在这里插入图片描述

二、Django的部署

部署 虚拟机,docker ,云服务器

django 2.2.1

python 3.5.2

linux

python 3.5 + django 2.2.1 + nginx + uwsgi + linux

nginx apache

django 自带服务,python manage.py runserver 启动,django自带一个小型的服务器,最大并发量200,用来开发测试。需要nginx(反向代理,负载均衡),但是使用nginx直接加django不行,需要中间人Uwsgi,django项目的wsgi.py

云服务:

ip地址: 公网 私有网络

防火墙

配置安全组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44863429/article/details/101468231