Django(十二):django支付(微信支付宝)+项目部署(虚拟机、docker、云服务器)

微信

请求地址

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

申请条件

支付宝

支付宝支付流程:

买家发送购买请求,服务生成订单

提交订单,卖家将支付请求发到支付宝

支付宝返回支付页面

买家在支付页面完成付款

支付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-----"""
##实例化支付对象
order_string = alipay.api_alipay_trade_page_pay(
    subject = '牛羊生鲜',   ##交易主题
    out_trade_no = '1000000002'  #订单号
    total_amount = '100',   #交易总金额
    return_url=None,   ##请求支付,之后及时回调一个借口
    notify_url = None   ##通知地址
)
##发送支付请求
##请求地址 支付网关 + 实例化订单
result = "https://openapi.alipaydev.com/geteway.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,"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

niginx apache

django自带服务器,python manage.py runserver 启动,django自带一个小型的服务器

最大并发量200,用来开发测试,需要nginx(反向代理,负载均衡),但是使用nginx直接加django不行,需要中间人uwsgi,django项目的wsgi.py

云服务器

ip地址:公网 私有网络

防火墙

配置安全组

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值