支付宝现如今是付款刚需!今天我用Django开发一款支付宝出来!

本文详述了如何利用Python的Django框架开发支付宝支付功能。从了解支付宝支付的基本概念,如SDK、沙箱环境、加密方式,到配置沙箱环境、设置支付流程,再到开发实施过程,包括创建商品数据表、构建购物车视图、订单支付逻辑及订单状态更新。最后,文章介绍了项目在CentOS服务器上的部署步骤,包括Python和Django的安装,以及解决服务器宕机问题的策略。
摘要由CSDN通过智能技术生成

目录

一. 开发前的准备

1. 必须了解的知识

  • SDK:软件开发工具包,可以为开发者提供快速开发的工具
  • 沙箱环境:也就是测试环境
  • 支付宝支付金额的精度:小数点后两位(面试)
  • 支付宝用的什么加密方式:RSA
  • 2. 沙箱环境的配置
  • ① 登录支付宝开放平台
  • https://auth.alipay.com/login/ant_sso_index.htm?goto=https%3A%2F%2Fopen.alipay.com%2Fplatform%2Fhome.htm

② 进入管理中心后选择研【研发服务】

 

 

 

 

 

 

 

 

③ 生成RSA密钥

  • 选择【查看应用公钥】

 

 

 

  •  
  • 选择【查看应用公钥生成方法】

 

 

 

  •  
  • 下载秘钥生成工具
  • 链接已经找好了,windows的用户直接下载:https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB
  • 安装后打开工具直接选择【生成秘钥】

 

 

 

  •  

④ 将生成的应用公钥输入表单中,选择【保存】,系统会根据输入的应用公钥自动生成支付宝公钥,可以选择【设置/查看】

 

 

 

 

 

 

 

 

⑤下载沙箱钱包APP,用于支付测试

 

 

 

 

注意: 生成秘钥工具生成的应用公钥是用来生成支付宝公钥,剩下一个应用私钥注意保存。

3. 开发环境介绍

  • 操作系统:Win10
  • 编辑器:PyCharm 2019.2
  • 调试:Chrome 77.0.3865.75
  • Python版本:Python 3.7.x
  • Django版本:Django 2.2.5
  • 4. 支付宝支付流程
  • 用户点击支付时,网站根据支付宝的 APPID / 网关 / 支付宝公钥私钥 / SDK生成地址,再根据生成的地址,让用户跳转到支付宝进行支付。用户支付完成后,支付宝会给网站发送两个请求,分别是get和post请求。get请求是从支付宝网站跳转到自己的网站,post请求是向自己的网站发送支付相关的信息,网站可以凭借这些信息去修改网站订单的状态。
  • 二. 开发实施流程
  • 1. 商品数据表的创建
  • model.py:
from django.db import models
# Create your models here.
class Goods(models.Model):
    goods_name = models.CharField(max_length=32)
    goods_price = models.FloatField()
class Order(models.Model):
    order_number = models.CharField(max_length=64)
    status_choices = ((0, '未支付'), (1, '已支付'))
    order_status = models.IntegerField(choices=status_choices, default=0)
    goods = models.ForeignKey(to='Goods', on_delete=models.CASCADE)

在Terminal中执行python manage.py makemigrations和python manage.py migrate,或者到工程目录下执行这两条指令,完成建表。

C:\Users\thanlon\PycharmProjects\alipay_django>python manage.py makemigrations
C:\Users\thanlon\PycharmProjects\alipay_django>python manage.py migrate

 

 

 

 

 

2. 购物车视图的构建

向商品表插入数据

 

 

 

 

构建商品信息页面

urls.py:

from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('goods/', views.goods),
]

views.py:

from django.shortcuts import render
from app import models
# Create your views here.
def goods(request):
    goods_list = models.Goods.objects.all()
    # print(goods_list)
    # <QuerySet [<Goods: Goods object (1)>, <Goods: Goods object (2)>, <Goods: Goods object (3)>, <Goods: Goods object (4)>]>
    return render(request, 'goods.html', {'goods_list': goods_list})

goods.html:

<!doctype html>
<html lang="en">
<head>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值