我当前正在设置一个Stripe(标准连接)帐户。我知道有一个一般的最佳做法问题。
一个例子:创建一个“收费”,Stripe给了我一个JSON回答,如下所示:
<Charge charge id=ch_1CizRmABvPzR13WAhFXBkrYf at 0x00000a> JSON: {
"id": "XXX",
"object": "charge",
"amount": 900,
"amount_refunded": 0,
"application": "ASDF",
"application_fee": null,
"balance_transaction": "XXX",
"captured": true,
"created": 1530428050,
"currency": "eur",
"customer": null,
"description": null,
"destination": null,
"dispute": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {
},
"invoice": null,
"livemode": false,
"metadata": {
},
"on_behalf_of": null,
"order": null,
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"receipt_email": null,
"receipt_number": null,
"refunded": false,
"refunds": {
"object": "list",
"data": [
],
"has_more": false,
"total_count": 0,
"url": "/v1/charges/ch_1CizRmABvPzR13WAhFXBkrYf/refunds"
},
"review": null,
"shipping": null,
"source": {
"id": "XXX",
"object": "card",
"address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": "42424",
"address_zip_check": "pass",
"brand": "Visa",
"country": "US",
"customer": null,
"cvc_check": "pass",
"dynamic_last4": null,
"exp_month": 4,
"exp_year": 2024,
"fingerprint": "whM4LE8uZm9vdxIa",
"funding": "credit",
"last4": "4242",
"metadata": {
},
"name": null,
"tokenization_method": null
},
"source_transfer": null,
"statement_descriptor": null,
"status": "succeeded",
"transfer_group": null
}
当我现在决定数据库模型和字段时,我现在面临的问题是:我要保存哪些字段? (所有这些,或者只是一个(交易ID),我需要在以后再次检索该收费对象。
我目前的方法:到目前为止,我决定采用这种方法,我的“费用”数据库模型将仅包含一个pk和一个 JSON字段,我将在其中保存所有 强大的信息,因此,只要有需要,我就可以从自己的数据库访问任何内容。我还将在 Stripe的帐户对象等中将这种JSON字段方法用于我的模型。
但是首先,我的问题是:这是一种好方法,还是您宁愿建议我单独保存每个字段?
答案 0 :(得分:0)
这两种方法均有效。您可以只保存Stripe ID,然后根据需要从API中检索对象,也可以保存到本地数据库中。如果采用数据库方法,可能需要注意以下几点:
最好的方法可能是混合解决方案,您可以使用与您相关的信息以及ID定义自己的模型,而不仅仅是保存ID或Stripe中的确切JSON。这样一来,您无需调用API即可与模型进行日常交互,但您可以灵活地将其与特定Stripe版本的确切格式紧密耦合。
答案 1 :(得分:0)
您存储的数据量与用例有关,而不是标准做法。您可能要存储创建费用的人的客户ID,费用金额,交易日期,费用来源(哪张卡)。
如果您允许退款,那么您可能还想存储与退款有关的字段:amount_refunded
,refunded
等。
希望这会有所帮助。 :)