175-路飞16-区间功能&搜索功能&支付宝支付

16 篇文章 0 订阅
9 篇文章 0 订阅

今日内容

1 区间过滤

# 方式一:自己写过滤类,配置到视图类的
	filter_backends = [自己写的过滤类]
# 方式二:借助django—fileter
	# 1 写一个类:
    from . import models
    from django_filters import filters
    class CourseFilterSet(FilterSet):
        # 区间过滤:field_name关联的Model字段;lookup_expr设置规则;gt是大于,gte是大于等于;
        min_price = filters.NumberFilter(field_name='price', lookup_expr='gte')
        max_price = filters.NumberFilter(field_name='price', lookup_expr='lte')
        class Meta:
            model = models.Course
            # 如果过滤条件仅仅就是Model已有的字段,方式一更好
            # 但是方式二可以自定义过滤字段
            fields = ['course_category','min_price', 'max_price']
            
            
    # 2 配置到视图类上
    	filter_backends = [DjangoFilterBackend]
    	filter_class = CourseFilterSet

2 搜索功能

1 搜索的后端接口
	-课程标题(要有搜的关键字)
    -课程简介(要有搜的关键字)
    -专业的搜索引擎(ES:专注于大数据量的搜索)
2 这次咱们写的就是去数据库查
	
from rest_framework.filters import SearchFilter
class CourserSearchView(GenericViewSet,ListModelMixin):
    queryset = Course.objects.filter(is_delete=False, is_show=True).order_by('-orders')
    serializer_class =CourseSerializer
    # 内置搜索
    filter_backends = [SearchFilter]
    search_fields = ['name', 'brief']
    pagination_class = BasicPagination

3 支付宝支付

1)支付宝API:六大接口
https://docs.open.alipay.com/270/105900/

2)支付宝工作流程(见下图):
https://docs.open.alipay.com/270/105898/

3)支付宝8次异步通知机制(支付宝对我们服务器发送POST请求,索要 success 7个字符)
https://docs.open.alipay.com/270/105902/

流程:

1、在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily.htm?tab=info

2、电脑网站支付API:https://docs.open.alipay.com/270/105900/

3、完成RSA密钥生成:https://docs.open.alipay.com/291/105971

4、在开发中心的沙箱应用下设置应用公钥:填入生成的公钥文件中的内容

5、Python支付宝开源框架:https://github.com/fzlee/alipay

: pip install python-alipay-sdk --upgrade

7、公钥私钥设置

“”"

alipay_public_key.pem

-----BEGIN PUBLIC KEY-----
支付宝公钥
-----END PUBLIC KEY-----

app_private_key.pem

-----BEGIN RSA PRIVATE KEY-----
用户私钥
-----END RSA PRIVATE KEY-----
“”"

8、支付宝链接
开发:https://openapi.alipay.com/gateway.do
沙箱:https://openapi.alipaydev.com/gateway.do

1 使用在线支付功能
    -支付宝支付(讲它)
    -微信支付
    -银联支付(用的比较少)
    
    
2 使用支付宝支付
	-商户号(营业执照)----》沙箱环境(测试)
    	-appkey:             测试的key
        -secretkey:
        
        
        
3 对称加密和非对称加密
	-对称加密:加密密码和解密密码是一个
    -非对称加密:公钥和私钥
    	-公钥加密(即便截获到加密内容和公钥,只要没有私钥,也解不出来)
        -私钥解密

        
4 商家号(营业执照申请),沙箱环境测试
		用户名:babdgw8208@sandbox.com
    	密码:111111
  用户号:测试账号
    	沙箱版的支付宝
        用户名:bfxtlv8393@sandbox.com
        密码:111111
        支付密码:111111
    
    
    
5 生成公钥,私钥
	-借助于支付宝提供的工具:https://opendocs.alipay.com/open/291/105971#LDsXr
     -用这个工具生成公钥和私钥
     -把公钥配置在支付宝的网站上----》生成一个支付宝公钥

6 前端点击立即支付,发送请求
	-post请求,数据库写入操作
	-生成一个订单(订单表插入数据,订单状态为待支付)
    -生成支付链接,返回给前端
    -前端拿到支付链接,跳转到支付页面(支付宝页面)
    -用户扫描付款(输入用户名密码付款)
    -支付宝收到付款成功,get回调咱们的系统
    -支付宝还会发送post回调,咱们系统接收到以后,修改订单状态


    
  
7 流程:
	-1 生成私钥和公钥
    -2 把公钥配置在沙箱环境
    -3 复制出支付宝公钥,粘贴在项目中
    -4 复制出私钥粘贴在项目中
    -5 视图类
        class PayView(APIView):
            def post(self,request,*args,**kwargs):
                subject = "充气娃娃"
                # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
                order_string = alipay.api_alipay_trade_page_pay(
                    out_trade_no="20161112",
                    total_amount=1000,
                    subject=subject,
                    return_url="https://www.baidu.com",
                    notify_url="https://example.com/notify"  # 可选, 不填则使用默认notify url
                )
                print(order_string)
                pay_url=gateway+ '?' + order_string
                print(pay_url)
                return Response({'pay_url':pay_url})
     -6 前端发送post请求,测试生成的支付链接,完成支付
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值