学习ofbiz 订单支付设计

转载 2016年06月01日 11:05:04


订单的支付主要集中在

ORDER_PAYMENT_PREFERENCE表

PAYMENT_METHOD_TYPE表

PAYMENT_METHOD表

PAYMENT表 PAYMENT支付指的是具体的一次支付行为。


它们的关系相对比较复杂,具体见下图:

 

ofbiz数据库表结构设计(4)- <wbr>订单支付ORDER_PAYMENT_PREFERENCE

ORDER_PAYMENT_PREFERENCE存储了一个订单的支付信息,

当然,一个订单可以有多个支付,比如一个100元的订单,其中20元客户用现金支付,30元用银行卡支付,

剩下50元用信用卡支付(现实生活中这种情况不太可能发生,但是ofbiz支持这种情况)。

这种情况,也可以是张三支付30元,李四支付40元,王五支付10元。


PAYMENT_METHOD_TYPE是支付类型,比如信用卡支付、现金支付、支票支付等。

PAYMENT_METHOD支付方法,这个对象很多开发人员将它与PAYMENT_METHOD_TYPE搞混。

PAYMENT_METHOD是PAYMENT_METHOD_TYPE的具体形式。看字段,其中PARTY_ID代表支付的人(或公司),GL_ACCOUNT_ID代表该支付方法对应COMPANY(在ofbiz中COMPANY指的就是拥有这个ofbiz的企业)的财务哪个科目,FIN_ACCOUNT_ID代表具体的财务账户(如某个银行的账户)。


 

再看一下这些对象之间的联系。

ORDER_PAYMENT_PREFERENCE有两个外键分别指向PAYMENT_METHOD_TYPE和PAYMENT_METHOD。

而我们已经看到,PAYMENT_METHOD已经有外键指向PAYMENT_METHOD_TYPE了,那ORDER_PAYMENT_PREFERENCE为什么还要同时指向PAYMENT_METHOD和PAYMENT_METHOD_TYPE?


原因是,对于一次订单的支付,最理想情况是,我们知道支付的具体信息(知道支付者的银行信息等),这样我们就能够设置ORDER_PAYMENT_PREFERENCE里的PAYMENT_METHOD_ID了。


但是在某些零售情况下,我们对客户的支付具体信息是不知道的,比如对方用现金支付,或者是通过其它第三方支付,我们不知道具体的支付信息,这样,在ORDER_PAYMENT_PREFERENCE里,我们就得依赖PAYMENT_METHOD_TYPE_ID这个字段了。也许有人问,如果在ORDER_PAYMENT_PREFERENCE里,PAYMENT_METHOD_TYPE_ID指向的信息和PAYMENT_METHOD_ID指向的信息矛盾怎么办?

这点我也不清楚,让我们尽量避免这种麻烦吧。


PAYMENT这个对象同时又三个外键指向ORDER_PAYMENT_PREFERENCE、PAYMENT_METHOD_TYPE和PAYMENT_METHOD。

在ofbiz中,PAYMENT代表了一次支付行为,所以,可以是一次订单的支付(所以要有外键指向ORDER_PAYMENT_PREFERENCE),也可能是其它的支付,所以,它也需要有外键指向PAYMENT_METHOD_TYPE和PAYMENT_METHOD。



【电子商务平台】Ofbiz研究学习详细记录——部署

在前一篇博客,介绍了一下Ofbiz 解压后的各个目录的作用,在这篇博客就来介绍一下Ofbiz的部署.   第一步:把解压后的ofbiz包通过import导入到myeclipse中,导入myeclips...

Ofbiz学习经验谈

不可否认,OFBiz这个开源的系统功能是非常强大的,涉及到的东西太多了,其实对我们现在而言,最有用的只有这么几个:实体引擎、服务引擎、WebTools、用户权限管理。 最先要提醒各位的是,在配置...

ofbiz数据库表结构设计(4)- 订单支付ORDER_PAYMENT_PREFERENCE

订单的支付主要集中在ORDER_PAYMENT_PREFERENCE,PAYMENT_METHOD_TYPE,PAYMENT_METHOD和PAYMENT。它们的关系相对比较复杂,具体见下图:   ...

ofbiz 订单信息

/ofbiz13.07/specialpurpose/ecommerce/webapp/ecommerce/order/orderitems.ftl orderGrandTotal 总金额 ...

ofbiz数据库表结构设计(3)- 订单ORDER

对于订单来说,主要的表就是ORDER_HEADER和ORDER_ITEM。ORDER_HEADER就是所谓的订单头,一条记录代表一条订单。 ORDER_PAYMENT_PREFERENCE是订单的支...

Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)

客户端获取后台支付API请求参数的设计 参数名 类型 描述 method int 支付方式,参见支付方式参数说明 platform int 支付平台,参见支付平台参数...

OFBiz解读之权限设计

简介 Apache Open For Business(Apache OFBiz) 是Apache开源的一个经典ERP项目。它提供了一套企业应用,用于集成以及自动化一些企业的“商业流程”。 从学习角度...

浅谈OFBiz之权限设计

简介Apache Open For Business(Apache OFBiz) 是Apache开源的一个经典ERP项目。它提供了一套企业应用,用于集成以及自动化一些企业的“商业流程”。这篇文章从OF...

OFBIZ 网站或店铺视觉主题(visual Theme)设计

what   why v.在ofbiz中的应用的主题是可以通过数据来配置的,在webtools 组件中的catalog,  content 菜单下可分别设置店铺和网站的主题。且ofbiz在设...

ofbiz数据库表结构设计

ofbiz中,party的电话、地址等联系方式设计得非常巧妙,让我们来仔细分析一下。   有一个叫做CONTACT_MECH的表,这张表我们把它称作联系方式表,一个电话号码、一个通讯地址、一个电子...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习ofbiz 订单支付设计
举报原因:
原因补充:

(最多只允许输入30个字)