payment相关逻辑

付款有手动付款和计划程序自动付款两种,照例先列出涉及到的概念

付款方式 - PaymentTypes - 现金,支票,信用卡,等等
记账类型 - Ledger_AccTransTypes - 涉及到金钱往来的都需要记账,简单说就是收到的钱和支出的钱作何用途

手动付款

支持的付款方式有EFT,CC,Agent Sweep,Check,Money Order和Cash,有相应的权限才可以使用对应的付款方式。在Quote绑定和Policy的Insured Info tab中都可以进入付款页面。手动付款的大致过程是这样的:

  1. 填写付款金额
  2. 选择付款方式
  3. 填写选定的付款方式下的账号信息以及账单的地址信息
  4. 如果选择了EFT或者CC
    1. 获取accounting date, Bill Code 没有就生成一个,这个code只是存入了Policy和Payment Process表中,不知道有什么其他用途
    2. 需要手续费的在总金额中加入手续费
    3. 调用solupay,如果不成功就显示付款不成功页面
    4. 付款成功会添加accounting记录,也就是记账信息,有手续费的要分开记录成两条记账信息, 对应的记账类型如下:
      1. PMT_OCC Invoice Premium - Online Credit Card Payment -> Credit Card
      2. PMT_EC Invoice Premium - Electronic Check Payment -> EFT/EC, 注意这里和自动扣款有些区别
      3. CON_FEE Invoice Convenience Fee -> 手续费
    5. 将付款的相关信息保存以供自动付款适用 - Policy_PaymentProcess
    6. Over
  5. 其他的付款方式暂不介绍

自动付款

自动付款需要Policy有多个待支付分期账单,而且有支付历史,并且保存了相应的账号信息。支持的付款方式有EFT/EC(Electronic Check)和CC(Credit Card)
CC记账类型 - PMT_OCC Invoice Premium - Online Credit Card Payment
EFT/EC记账类型 - PMT_ACH Invoice Premium - ACH Payment
自动付款的过程:

  1. 找到自动设置了自动付款的Policy下的待支付的Bill,以及对应的最新付款账号信息,TODO这是啥? NSF=0,DueDate<处理时间
  2. 从Policy_PaymentProcess获取保存的账号信息,和手动付款不同之处
  3. 后面的和手动付款基本一样,调用接口,添加记账信息
  4. Over

修改付款信息

从policy action页面我们可以进入修改自动付款信息页面,选择付款方式,填写好账号信息保存,后台会利用新的账号信息调用付款接口验证账号的合法性。成功后将所有的老记录失效,插入一条新的payment process记录,下次自动付款便会使用它。

Agent Sweep付款方式:

Agency的账户给保险公司,客户的钱直接交给agency,保险公司直接从账户扣除所需的保费。
手动付款选择Agent Sweep之后,会添加记账信息,schedule一个付款任务到agentsweep表,然后有dts去跑,调用付款接口

Solupay付款接口

solupay wiki
接口支持action参数,包括根据付款账号信息注册solupay账号,获取已注册账号token,更新注册信息,自动扣款,退款。
所有的付款结果都将保存到这里Merchant_Responses。付款报错就来这里查。entry id 为0的agent sweep的sst加入的,为2的是自动扣款sst加的,其他的则是对应的用户手动付款的。

PolicyData_Bill

账单分期信息都在这里,付款、退款、保费变化,将重新计算账单,top down类型的费用在最近bill一次性收取,event spread费用平摊到剩下的所有的未支付bill中。TODObill变动如何计算,如何adjustment.
任何影响accounting的操作都将引起recalculate bill,但是这个是底层封装的,无从知道更细节的逻辑。

ACH Payment

不知道是否准确
abbr. 自动化交易所(Automated Clearing House)
将付款信息按如下的格式保存为文本文件

posted @ 2017-02-14 21:45 by Mark

Payment相关逻辑的更多相关文章

  1. 浅谈Android中拍照、从相册选择图片并截图相关知识点

    前言 我们在Android开发中经常会需要使用相机或者从相册中选取图片的情况,今天就把这里面相关的知识点总结下,方便以后开发的时候使用. 1.相机拍照并可自定义截图功能 我们先来看如何使用Intent ...

  2. 查看linux中swap内存的相关参数

    内容主要来源于:linux的内存回收和交换 各项命令查看的linux环境是:Linux SUSE-33 2.6.32.12-0.7-defaul zone? 内存管理的相关逻辑都是以zone为单位的, ...

  3. DDD实战进阶第一波(十):开发一般业务的大健康行业直销系统(实现经销商登录仓储与逻辑)

    上一篇文章主要讲了经销商注册的仓储和领域逻辑的实现,我们先把应用服务协调完成经销商注册这部分暂停一下,后面文章统一讲. 这篇文章主要讲讲经销商登录的仓储和相关逻辑的实现. 在现代应用程序前后端分离的实 ...

  4. DRF 商城项目 - 用户( 登录, 注册,登出,个人中心 ) 逻辑梳理

    用户登录 自定义用户登录字段处理 用户的登录时通过 手机号也可以进行登录 需要重写登录验证逻辑 from django.contrib.auth.backends import ModelBacken ...

  5. Visual Event查看页面相关绑定事件

    页面相关绑定的事件比较复杂,在不熟悉的情况下很难找到相关逻辑的位置,所以希望借助工具来帮自己理清相关事件的脉络走向. 浏览器 工具 chrome( 58.0.3029.110) Visual Even ...

  6. 使用方法拦截机制在不修改原逻辑基础上为 spring MVC 工程添加 Redis 缓存

    首先,相关文件:链接: https://pan.baidu.com/s/1H-D2M4RfXWnKzNLmsbqiQQ 密码: 5dzk 文件说明: redis-2.4.5-win32-win64.z ...

  7. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑

    习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...

  8. WebKit(Blink分支)各组件的创建与逻辑关系

    从render_view_impl.cc開始说起. 1.     方法RenderViewImpl::Initialize中有: WebLocalFrame* web_frame = WebLocal ...

  9. Netty服务端启动过程相关源码分析

    1.Netty 是怎么创建服务端Channel的呢? 我们在使用ServerBootstrap.bind(端口)方法时,最终调用其父类AbstractBootstrap中的doBind方法,相关源码如 ...

随机推荐

  1. unity,荧光效果(bloom)实现过程

    两个月前,刚接触unity的时候费了半天劲儿做了个荧光效果(见:http://www.cnblogs.com/wantnon/p/4430749.html),今天终于抽空整理了一下,把过程写下来. 荧 ...

  2. Swift - CALayer的contents属性动画

    Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...

  3. 每天一个linux命令-tai命令

    动态监视文件尾部. 命令参数: -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 --pid=PID 与-f合 ...

  4. SqlServer 查看备份文件中逻辑文件信息的Sql语句

    RESTORE FILELISTONLY FROM DISK = 'D:\All\DataBase\(2013-12-18)-1.bak' 用来查看备份文件中的逻辑文件信息. 相关信息:SqlServ ...

  5. Orchard之创建列表

    一:首先需要确保 List Module 的开始 即: Enable 之后,左边的列表中,多了一个 List 功能菜单. 二:为 Content type 选定 Cotainable 不再赘述. 三: ...

  6. 《成神之路-基础篇》JVM——Java内存模型(已完结)

    Java内存模型 本文是<成神之路系列文章>的第一篇,主要是关于JVM的一些介绍. 持续更新中 Java内存模型 JVM内存结构 VS Java内存模型 VS Java对象模型(Holli ...

  7. Python生成文件列表

    https://blog.csdn.net/ZWX2445205419/article/details/73527857 改进 # coding=utf-8 import os def makeFil ...

  8. [转]微信JSAPI 微信内置JSAPI 2015年1月官方正式API接口,分享完整实例

    FROM : http://www.oschina.net/code/snippet_2276613_45290 HTML通过微信,分享朋友圈出发此JSAPI <?php require_onc ...

  9. Poly2Tri介绍[转]

    https://blog.csdn.net/xys206006/article/details/83002326 这是Poly2Tri介绍的翻译博文.原文链接:http://sites-final.u ...

  10. C#线程同步方法汇总

    我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在 后台处理一大堆数据,但还要使用户界面处于可操作状态:或者你的程序需要访问一些外部资源如数据库或网络文件等.这些情况你都可以创建一个子线 ...