Day27 订单 -- 分期付款

今天要说的是信用卡分期付款,分期付款也是信用卡付款的一种,
但我们需要透过结构上的改动以符合分期资料的显示,
由於分期主要是将一个订单金额分成多次小金额进行付款(扣款),
所以我们主要在於新增栏位去纪录相关资讯,
看一下结构,

Schema::create('payment', function (Blueprint $table) {
    $table->string('id', 30)->comment('同订单id');
    $table->string('payment_id', 30)->comment('金流单id');
    $table->string('type', 20)->comment('付款类型'); //credit, atm
    $table->integer('period')->default(0)->comment('分期期数');
    $table->string('status', 30)->default('unpaid')->comment('付款状态');
    $table->dateTime('expired_at')->nullable()->comment('付款截止时间');
    $table->dateTime('paid_at')->nullable()->comment('付款时间');
    $table->text('info')->nullable(); // 付款资讯物件(ATM帐号/超商代码/超商条码)
    $table->float('amount')->default(0); // 金额
    $table->float('first_period_price')->default(0); // 首期金额
    $table->float('each_period_price')->default(0); // 每期金额
    $table->float('fee')->default(0); // 手续费
    $table->primary(['id']);
});

这次新增了几个栏位来纪录分期资讯,
period 分期期数
first_period_price 首期金额
each_period_price 剩余每期金额

为什麽要有首期金额跟每期金额是因为,总金额不一定有办法整除分期,
通常会在第一次把余数加上去,所以这边需要额外开一个栏位来做纪录,
由於分期付款通常是由银行端实做,如果第三方金流每次扣款都会通知的话,
还可以新增一个current_period当前期数栏位,让使用者可以直接再网站上查看期数,

$table->integer('current_period')->default(1)->comment('当前期数');

至於type需不需要新增分期付款的选项,或者用type+period做判断就看个人,
独立的话在分析订单的时候会比较方便一点,以上就是分期付款的内容拉,
讲得很阳春,请大家见谅。


最後最後还有一件很重要的事情,
就是如果有谈到退刷或者退款的时候,建议采用人工的方式,
并且开人工调整所需要的纪录栏位(user_id之类的)来处理,
信用卡的东西牵扯到退款是非常麻烦的,流程非常复杂。


<<:  追求JS小姊姊系列 Day18 -- 方函式的能力展现:第三型态 Constructor function 登场

>>:  DAY18:进阶清单元件之简介

Day13 - 提升收入的方法

接案不是创业,它只是另外一种领薪水的工作方式,所以没有办法一夕致富,纵使今天谈到了金额百万或千万的案...

JS读书笔记30天 - Day27 Vue的前置工作与开发者工具

必要安装 文字编辑器,像是VSCode、Atom、Sublime VSCode内插件Live Ser...

Day02网页设计的三巨头!

网页设计的三巨头 为什麽会说三巨头呢 因为要做好一个网页最重要的就是HTML, CSS, JavaS...

媒体分析为公司带来的5项好处及4个常见使用情境

近几年,媒体产业当中,以及社群软件的应用,使得影片、声音和图像这些不同形式的内容正飞速的增长。不管是...

Material UI in React [ Day15 ] Navigation Stepper 步骤卡

Stepper Stepper 通过编号的步骤传达进度,它提供了类似向导的工作流程。 他除了有前面提...