2019独角兽企业重金招聘Python工程师标准>>>
现在网上支付的渠道很多,本人最近用java做支付模块,将支付的大体流程整理如下:
一、收集订单信息:
在支付之前都要收集订单信息,包括:主要包括一下几类:商品相关、支付渠道相关、回调状态相关。
商品相关:订单商品名称,商品数量,商品价格,总价格等
支付渠道相关:各个渠道的参数要求不一样,参数名称也不一样。
回调状态相关:网上支付一般都需支付的渠道商将订单支付的状态回调过来,以此来保证支付的状态同步。
二、生成本地订单:
在调用渠道商的支付接口之前要生成本地订单。存储支付相关的信息,此时支付状态为未支付。
三、将支付参数按照渠道商要求的方式整理好之后,调支付接口,将钱打入指定的账户
四、接收渠道商的订单回调状态,将状态保存至本地。进行下一步操作。
本地的订单保存很重要,这个数据保存要准确,及时。本地订单的数据库设计一般如下:
订单表 orders 订单的详细信息,包括用户,订单状态,商品ID
订单记录表 orders_log 记录创建修改记录 包括人员时间等
购买的商品记录表 order_product, 详细记录订单的商品信息
refund_orders 退款表 退款信息