首先我是按照已经有的已经有的支付api去编写订单支付api,但是由于两者是有区别的,所以类似去搬用难免会出问题,首先我是套用已经写好的model,然后写相应的serializer,实现序列化之后就开始着手编写视图,在视图层主要实现的功能就是在生成订单的同时实现在数据库当中添加订单支付信息,用于后续的订单支付信息回调。

在写好api后无法post生成订单,一开始是以为卡在构造序列器类那里,因为在构造订单号的时候使用的是一个引用信息,但是进了数据库发现那个信息是不存在的,而且自己尝试赋值了一个常量,是可以使用的,但是于此同时出现了一个问题就是我无法通过api框架提供的post方法去实现生成订单,只能通过填写订单然后刷新生成订单,而且订单还无法同步订单支付信息,然后才意识到问题是出在视图层,视图层中queryset是正常的,因为已经有的订单是能够被遍历的,由于订单支付信息是定义在perform_create()方法当中的,所以问题肯定是出在其中,通过排除法发现问题并不是方法的构造有错误,而是出在model中的一个字段,由于订单支付中有一个外键,但是此时我是默认使用其中的一个值,导致生成订单的同时无法给出符合条件的信息生成订单支付数据,所以那个perform_create()方法一直不能实现,自然也就无法响应了,所以服务器就一直给我报500的错误。

经此一役,发现出现问题的时候还是要仔细去排查,其实我的大部分时间都浪费在了重复的一些操作上,有些已经确认的错误我又重复地去核查,很影响办事效率,从现在问题已经解决的角度来说,我应该先通过无法post生成订单发现问题是出在perform_create()上,因为这个是post同时执行的操作,只有这个方法ok了才会生成订单,然后范围就小多了,因为在这个函数当中所执行的操作只有一个,就是将订单信息用于生成订单支付,而其中需要提交的参数只有几个而已,只要排查一下就可以发现是无法生成订单号,然后把这个问题解决以后仍然无法直接post,所以问题就是出在其余没有生成的参数上了,这时候就可以发现,有一个支付方式字段是没有值的,但是其实这是一个外键,本身就是需要选择的值,如果不给值的话肯定就错的更离谱了,所以依照我需要使用支付方式给一个默认值就可以了。

希望以后碰到问题不要再胡乱去查呀改呀之类的,静下心了,哪里出了问题就解决哪里,让自己的效率得到提高。

编写订单支付api中遇到的问题的更多相关文章

  1. 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

    先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...

  2. 支付宝支付-常用支付API详解(查询、退款、提现等)

    所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...

  3. 支付宝支付-常用支付API详解(查询、退款、提现等)-转

    所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...

  4. JAVAWEB进行PC支付宝支付、查询订单支付状态

    官方文档:https://opendocs.alipay.com/open/270/105899 本地开发环境支付回调调试方法可以参考:https://www.cnblogs.com/pxblog/p ...

  5. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  6. 在ASP.NET Web API中使用OData

    http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...

  7. WEB API 中HTTP的get、post、put,delete 请求方式

    一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...

  8. 【ASP.NET Web API教程】4.3 ASP.NET Web API中的异常处理

    原文:[ASP.NET Web API教程]4.3 ASP.NET Web API中的异常处理 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...

  9. ASP.NET Web API中使用OData

    在ASP.NET Web API中使用OData 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在ASP.NET Web API中,对于CRUD(creat ...

随机推荐

  1. webconfig 配置 分离

    https://blog.csdn.net/zhifeiya/article/details/38828711 如标题,如何把 asp.net webconfig的appSettings分离到单独文件 ...

  2. 【SpringBoot】SpringBoot快速入门(一)

    SpringBoot介绍 Spring Boot使创建可运行的独立,生产级基于Spring的应用程序变得容易.对Spring平台和第三方库整合,这样就可以以最小的麻烦开始使用.大多数Spring Bo ...

  3. dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法

    dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法 在混淆的时候报错了,错误描述大致如下: Could not find a compatible vers ...

  4. 【各种误解解释】C-LODOP的三种角色及注册号

    该简短问答是从现象和误解和相关作为分类,主要是注册角色和注册号使用等.之前的相关博文(该相关博也有些链接到的博文,按照大类区分):LODOP和C-LODOP注册与角色等简短问答[增强版]. 确认角色: ...

  5. 常用的python的内置库或者第三方库

    内置库:re,json,time,random,sys,os, 第三方库:转载: https://www.cnblogs.com/jiangchunsheng/p/9275881.htmlReques ...

  6. idea关闭sonarLint自动扫描

    手动运行SonarLint 停止SonarLint自动检测代码之后,可以使用Ctrl+Shift+S手动运行SonarLint检查代码

  7. Miller_Rabin算法_单个素数检测_启发式算法

    /** Miller_Rabin 算法进行素数测试 快速判断一个<2^63的数是不是素数,主要是根据费马小定理 */ #define ll __int128 ; ///随机化算法判定次数 ll ...

  8. vue总结的知识点

    1.Vue生命周期钩子,都是干嘛用的? Vue实例从创建到销毁的过程,就是生命周期.Vue的生命周期包括:开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程.在Vue的整个 ...

  9. new/delete与命名空间

    目录 1. new/delete 2. 命名空间 1. new/delete C++中的动态内存分配 C++通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字 ...

  10. 简单的3D森林

    package { import flash.display.Sprite; public class Tree extends Sprite { public var xpos:Number = 0 ...