Day25 订单 -- 重新付款1

再做订单的时候,常常会遇到重新付款的需求,
情境通常发生在使用者购物车加入一拖拉库的项目之後,
因为某种原因付款失败,可是卡号填错或者信用卡额度爆炸等等,
在或者是第三方付款时间超过,但又不想重新建立订单而产生的需求。

至於我们要怎麽做呢?
首先要注意的是payment的expired_at付款期限,
要付款期限结束後才能重新付款,不然会有付款错误的问题,
像是atm帐号、qrcode汇款到旧的资料的情况,
这边比较容易漏掉的是接收到信用卡付款类型的订单,
接收到付款错误通知时没有修改payment.expired_at为当下,
这样的话使用者就要等到当初成立金流单时设定的付款期限才能再次付款,
是的,这段时间可能没多久,但就是会又需求....

整个流程也不难,简易流程如下
https://ithelp.ithome.com.tw/upload/images/20211001/201186478Qxat0udmv.png

简单来说就是建立一组新增永丰金付款资料并且更新payment.payment_id,
绑定新的付款资料,另外虽然我们上面有检查expired_at,
但原本设计里面--Day22 订单金流 -- log纪录
是有设计payment_log.payment_id去纪录通知的payment_id,
避免找不到对应的情况。

明天我们会介绍另一种作法,大家明天见。


<<:  Day 17 -资料查询语言 CASE 关键字!

>>:  Day 18:广度优先搜寻(BFS)

Day-19 This

this 可说是 JavaScript中最复杂的概念,它是一个内部物件,代表函式(function)...

子查询在MySQL中是怎麽执行的

以一个懵懂无知的青蛙来想像子查询的执行方式.. 如果是不相关子查询 mysql> select...

DAY 12『 利用安装套件管理工具 ( CocoaPods ) 下载资料库( Realm Studio ) 』

打开 terminal ( command + space )输入以下指令安装 CocoaPods...

MySQL:如何让 query 区分大小写

前言 预设 MySQL 的表和 query 是不分大小写的。 (对,并不是所有资料库都这样) 举个例...

网路资源

last update:2021/10/05 Yolov4 AlexeyAB (https://gi...