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

一、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

在这里插入图片描述

开发测试 使用沙箱环境

在这里插入图片描述

在这里插入图片描述

下载安卓端

在这里插入图片描述

账号信息

在这里插入图片描述

支付宝接口文档地址 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地址: 公网 私有网络

防火墙

配置安全组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值