编写订单支付api中遇到的问题
首先我是按照已经有的已经有的支付api去编写订单支付api,但是由于两者是有区别的,所以类似去搬用难免会出问题,首先我是套用已经写好的model,然后写相应的serializer,实现序列化之后就开始着手编写视图,在视图层主要实现的功能就是在生成订单的同时实现在数据库当中添加订单支付信息,用于后续的订单支付信息回调。
在写好api后无法post生成订单,一开始是以为卡在构造序列器类那里,因为在构造订单号的时候使用的是一个引用信息,但是进了数据库发现那个信息是不存在的,而且自己尝试赋值了一个常量,是可以使用的,但是于此同时出现了一个问题就是我无法通过api框架提供的post方法去实现生成订单,只能通过填写订单然后刷新生成订单,而且订单还无法同步订单支付信息,然后才意识到问题是出在视图层,视图层中queryset是正常的,因为已经有的订单是能够被遍历的,由于订单支付信息是定义在perform_create()方法当中的,所以问题肯定是出在其中,通过排除法发现问题并不是方法的构造有错误,而是出在model中的一个字段,由于订单支付中有一个外键,但是此时我是默认使用其中的一个值,导致生成订单的同时无法给出符合条件的信息生成订单支付数据,所以那个perform_create()方法一直不能实现,自然也就无法响应了,所以服务器就一直给我报500的错误。
经此一役,发现出现问题的时候还是要仔细去排查,其实我的大部分时间都浪费在了重复的一些操作上,有些已经确认的错误我又重复地去核查,很影响办事效率,从现在问题已经解决的角度来说,我应该先通过无法post生成订单发现问题是出在perform_create()上,因为这个是post同时执行的操作,只有这个方法ok了才会生成订单,然后范围就小多了,因为在这个函数当中所执行的操作只有一个,就是将订单信息用于生成订单支付,而其中需要提交的参数只有几个而已,只要排查一下就可以发现是无法生成订单号,然后把这个问题解决以后仍然无法直接post,所以问题就是出在其余没有生成的参数上了,这时候就可以发现,有一个支付方式字段是没有值的,但是其实这是一个外键,本身就是需要选择的值,如果不给值的话肯定就错的更离谱了,所以依照我需要使用支付方式给一个默认值就可以了。
希望以后碰到问题不要再胡乱去查呀改呀之类的,静下心了,哪里出了问题就解决哪里,让自己的效率得到提高。
编写订单支付api中遇到的问题的更多相关文章
- 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET
先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...
- 支付宝支付-常用支付API详解(查询、退款、提现等)
所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...
- 支付宝支付-常用支付API详解(查询、退款、提现等)-转
所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...
- JAVAWEB进行PC支付宝支付、查询订单支付状态
官方文档:https://opendocs.alipay.com/open/270/105899 本地开发环境支付回调调试方法可以参考:https://www.cnblogs.com/pxblog/p ...
- Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...
- 在ASP.NET Web API中使用OData
http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...
- WEB API 中HTTP的get、post、put,delete 请求方式
一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...
- 【ASP.NET Web API教程】4.3 ASP.NET Web API中的异常处理
原文:[ASP.NET Web API教程]4.3 ASP.NET Web API中的异常处理 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...
- ASP.NET Web API中使用OData
在ASP.NET Web API中使用OData 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在ASP.NET Web API中,对于CRUD(creat ...
随机推荐
- Android 编译 product 分区
https://source.android.google.cn/devices/bootloader/product-partitions 编译 product 分区 Android 9 支持使用 ...
- Spark资源调度及任务调度
1. 资源分配 通过SparkSubmit进行提交应用后,首先会创建Client将应用程序(字节码文件.class)包装成Driver,并将其注册到Master.Master收到Client的注册请 ...
- NI MAX中缺少串口(转)
Software Measurement & Automation Explorer (MAX) Driver NI-VISA 问题详述 在NI MAX中,设备和接口中的串口不可用或缺 ...
- [LeetCode] 195. Tenth Line 第十行
Given a text file file.txt, print just the 10th line of the file. Example: Assume that file.txt has ...
- k8s Pod 扩容和缩容
在生产环境下,在面临服务需要扩容的场景时,可以使用Deployment/RC的Scale机制来实现.Kubernetes支持对Pod的手动扩容和自动扩容. 手动扩容缩容 通过执行扩容命令,对某个dep ...
- 【Python学习之九】模块
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.模块的使用和安装模块和C语言中的头文件以及Ja ...
- kmeans 对表达量进行聚类
代码如下 df = pd.read_csv("../kmeans/gene.fpkm.csv",header=None) print df.head() #去掉第一行 tdf = ...
- [转]综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation
近期主要在学习语义分割相关方法,计划将arXiv上的这篇综述好好翻译下,目前已完成了一部分,但仅仅是尊重原文的直译,后续将继续完成剩余的部分,并对文中提及的多个方法给出自己的理解. _论文地址:htt ...
- [转帖]AMD Zen霄龙中国版:海光x86拿下加解密全球第一
AMD Zen霄龙中国版:海光x86拿下加解密全球第一 http://www.eetop.cn/cpu_soc/6946203.html 其实技术发展都是先模仿 剽窃 再自我创新的 要加以鼓励 总比 ...
- Linux04 目录的相关操作(mkdir、rmdir、rm、cp)
一.创建目录:mkdir mkdir 目录名 二.删除目录:rmdir / rm rmdir 目录名 rm -r 目录名 每一级子目录都会询问是否删除 rm -rf 目录名 慎用,给 ...