学习猿地 python教程 django教程5 华为云+阿里云支付

# 华为云服务器+Nginx+Python3.7+Django2.2+支付宝支付接入部署

> 本次分享内容共分四个主要部署步骤

> 1.Django框架项目搭建部署

> 2.本地内网穿透测试

> 3.阿里支付宝支付接口部署

> 4.华为云服务器部署(弹性云服务器ECS)

## 一,搭建django项目基本结构

### 1.创建当前项目的虚拟环境

` python3 -m venv venv `

### 2.安装依赖环境

> ` pip install -r requirement.txt`

```

Django==2.2.6

Pillow==6.2.0

pkg-resources==0.0.0

pycrypto==2.6.1

pycryptodomex==3.7.2

python-alipay-sdk==1.10.1

pytz==2019.3

sqlparse==0.3.0

```

### 3.完成项目基本结构开发(略...)

> 按照基本模型和路由参考,完成以下基本项目功能:

> 1.商品列表页:需要完成数据的查询及模板中的数据展示

> 2.商品下单: 在商品列表页可以对商品进行下单购买,及对应的订单数据入库操作

> 3.订单列表: 可以查看到当前所有订单及订单的支付状态

> 4.完成发起支付请求,支付回调地址的视图函数定义(代码可以暂时不写)

模型 models.py

```python

from django.db import models

from django.utils.html import format_html

# Create your models here.

# 书籍模型

class Books(models.Model):

    # 书名

    name = models.CharField(max_length=30)

    # 价格

    price = models.FloatField()

    # 数量

    num = models.IntegerField(default=5)

    # 封面

    img_url = models.ImageField(upload_to="./static/uploads/",null=True)

    def loadimg(self):

        return format_html('<img src="%s" height="64" width="64" />' %(self.img_url,))

class Order(models.Model):

    # 订单号

    ordercode = models.IntegerField()

    # 下单用户id

    user = models.CharField(max_length=5,default='测试用户')

    # 购买产品id

    bookid = models.IntegerField()

    # 产品名称

    bookname = models.CharField(max_length=50)

    # 应付金额

    monery = models.FloatField()

    # 支付方式 0 支付宝

    paytype = models.IntegerField(default=0)

    # 支付状态 0未支付  1 已支付

    paystatus = models.IntegerField(default=0)

    # 订单创建时间

    ordertime = models.DateTimeField(auto_now_add=True)

    # 订单支付时间

    paytime = models.DateTimeField(null=True)

```

路由及对应视图函数 urls.py

```python

# 商品列表

path('',views.index),

# 创建订单

path('order/create', views.create_order,name="createOrder"),

# 发起支付请求

path('order/pay', views.order_pay_request,name="orderpay"),

# 支付宝回调地址

path('order/pay_result', views.order_pay_result,name="order_pay_result"),

# 订单列表,支付成功后的跳转页面

path('order/list', views.orderlist,name="orderlist"),

# 订单删除

path('order/delete', views.orderdel,name="orderdel"),

```

## 二,使用ngrok|花生壳内网穿透

> 推荐使用花生壳进行内网穿透测试

> http://service.oray.com/question/1664.html

## 三,支付宝接入

#### 1.登陆支付宝开放平台创建支付宝沙箱环境

> 支付宝开放平台 https://openhome.alipay.com/platform/appDaily.htm?tab=info

> 支付文档 https://docs.open.alipay.com/200/105311

#### 2.创建密钥

>  1.生成应用公钥和秘钥

>  2.把应用公钥赋值并配置到当前的沙箱环境中

>  3.配置完公钥后,沙箱环境配置会给一个支付宝公钥,复制并保存

>  4.在项目根目录中创建keys文件目录,存储应用私钥(rsa_private_key.txt)和支付宝公钥(rsa_public_key.txt)

ubuntu生成密钥和公钥

```shell

#打开终端输入 openssl

# 输入以下命令创建密钥

genrsa -out rsa_private_key.txt 2048

# 输入以下命令创建公钥

rsa -in rsa_private_key.txt -pubout -out rsa_public_key.txt

#输入 exit  推出 openssl

# ls 查看当前目录下创建的密钥和公钥

rsa_private_key.txt  rsa_public_key.txt

```<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值