В настоящее время я настраиваю учетную запись Stripe (Standard Connect). Я знаю, у меня есть общий вопрос о наилучшей практике.
Один пример: создавая «заряд», 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
}
Поскольку я сейчас решаю вопрос о модели базы данных и полях, передо мной встает вопрос: какие поля мне сохранить? (Все они, или только один (идентификатор транзакции), который мне нужен для извлечения этого объекта начисления на более позднем этапе.
Мой текущий подход: на данный момент я решил для этого подхода, что моя модель базы данных для «сборов» будет содержать только поле pk и JSON , где я буду сохранять все информация и, следовательно, я мог бы получить доступ к чему угодно, когда угодно, из моей собственной базы данных. Этот полевой подход JSON я бы также использовал для своей модели с объектом учетной записи Stripe и т. Д.
Но сначала, мой вопрос: это хороший подход, или вы бы порекомендовали мне сохранять каждое поле отдельно?