数据库设计 - 保存支付网关响应的建议

时间:2017-01-31 20:54:12

标签: ruby-on-rails postgresql

我正在开发一个适用于酒店预订的市场应用程序。模型流程就像这样

主持has_many酒店

酒店has_many客房

房间&访客has_many预订

Booking模型的字段包含:room_id,:total_price,guest_id等

现在出现了payment部分..我应该在哪里保留付款网关的回复,例如payment_statuspg_error_message?保留预订模型本身是一种好习惯吗?或者我应该创建一个新的模型出售?

喜欢...预订has_one促销

这里有首选方法吗?

1 个答案:

答案 0 :(得分:1)

我认为你需要另一个模型,因为你可以有多个响应和多个交易。

3rd Cancelled, 2017-01-15
2nd Captured, 2016-12-01
1st Aprroved, 2016-12-01

所以,如果您有另一种关系,您可以注册更一致的回复,我不知道您所在国家/地区将返回哪些信息网关,但在巴西我们会存储这样的内容,我将展示我的应用程序的模型!

Invoice
   price: float # Total price of invoice
   paid:bool # If is paid, i can have a method insted of store this in DB
   uuid: string # Some gateways need this
   ...

InvoicePayment
  payment_method: int # Payment Metod selected from user.
  gateway: string # Who process my payment.
  fees: float # Fees charged in this transaction
  transaction_token:string # ID and Token and whatever i need to  >>>     
  transaction_id:string    # identify the transaction on the gateway
  transaction_key:string   
  auth_code: string 
  captured:bool # I already captured this transaction?
  af_status: string # Anti Fraud response data
  af_score: string
  value: float   # value of transaction, imagine that i can receive a invoice in more than one transaction.

这就是全部,我确信我的国家有一些特殊性,但我认为这是一个主要的想法。

SYA!