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. Xcode添加build configuration

    图片转载自:Adding a build configuration in Xcode

  2. python 直方图hist

    import sys sys.path.append('/usr/local/lib/python2.7/site-packages') sys.path.append('/usr/lib/pytho ...

  3. windows快速删除大量文件

    del /f/s/q dirname> nulrmdir /s/q dirname

  4. Material Designer的低版本兼容实现(十一)—— Switch

    5.0中的switch和之前完全不同了,漂亮不漂亮咱们另说,总之4.x上是没有这样的效果了.实现方式有两种,一种是用这个兼容包来做类似的效果,一种是用传统的checkbox来代替.我感觉兼容包的效果是 ...

  5. 用FadingActionBar实现有头图的ActionBar

         FadingActionBar这个开源项目在社区上很火,感觉Google I/O 2014中就有它的身影.今天我们来介绍下这个实用的开源项目. 首先是到这里(https://github.c ...

  6. android中得到颜色,图片资源的方式

    button01.setBackgroundColor(getResources().getColor(R.color.red)); color.xml colors.xml <?xml ver ...

  7. 《Erlang程序设计(第2版)》

    <Erlang程序设计(第2版)> 基本信息 作者: (瑞典)Joe Armstrong 译者: 牛化成 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115354 ...

  8. java转义符和正则表达式转义符

    举例来说,连续相同的3位数字的正则表达式的标准语法是: ([\d])\1{2} 但是如果在java代码中这么写,就会出现语法错误,如下: String regEx = "([\d])\1{2 ...

  9. 使用idea 在springboot添加本地jar包的方法

    原文地址;https://blog.csdn.net/huxiaodong1994/article/details/80702278 1.首先在与src同级的目录下新建一个lib目录,然后将本地jar ...

  10. Martin Fowler谈微服务的优缺点

    很多开发团队已经认识到微服务架构比单体架构更优越.但是也有其他团队感觉到这是一种消弱生产力的负担.就像任何软件架构,微服务架构同样有利弊.为了能做出一个明智的选择,你必须了解这些应用并将它们运用到你特 ...