Stripe source.chargeable событие с нулевыми свойствами, такими как сумма и валюта
Правильно ли взимать плату с источника на основании суммы и валюты данных о событии? Иногда я получаю такие события, как:
{
"object": {
"id": "src_1Ch7qCIhY6Z3DMWts3HPpWoH",
"object": "source",
"amount": null,
"card": {
"exp_month": 2,
"exp_year": 2022,
"address_zip_check": "unchecked",
"brand": "Visa",
"card_automatically_updated": false,
"country": "US",
"cvc_check": "unchecked",
"fingerprint": "xGimquKE7Rnk7LK2",
"funding": "credit",
"last4": "3063",
"three_d_secure": "required",
"address_line1_check": null,
"tokenization_method": null,
"dynamic_last4": null
},
"client_secret": "src_client_secret_D7MZe67elxyyCGGAaUA1lCsS",
"created": 1529983660,
"currency": null,
"flow": "none",
"livemode": false,
"metadata": {
},
"owner": {
"address": {
"city": null,
"country": null,
"line1": null,
"line2": null,
"postal_code": "22222",
"state": null
},
"email": null,
"name": null,
"phone": null,
"verified_address": null,
"verified_email": null,
"verified_name": null,
"verified_phone": null
},
"statement_descriptor": null,
"status": "chargeable",
"type": "card",
"usage": "reusable"
},
"previous_attributes": null
}
Сумма уведомления и валюта являются нулевыми. Почему isit null, даже если я установил сумму и валюту при создании источника? Я также замечаю, что иногда он установлен правильно. Должен ли я полагаться на этот набор свойств? Или я должен хранить их в моей БД? И сохраните этот идентификатор транзакции из БД в метаданные источника, например.
ОБНОВИТЬ
Я понял, что это событие вызывается, когда мой фронтенд создает источник 3ds.
stripe.createSource(card).then(function (result) {
console.log(result.source)
})
Я немного сбит с толку, документы сказали
При создании источника 3D Secure его статус обычно сначала устанавливается в состояние ожидания и еще не может быть использован для создания платежа. В некоторых случаях статус источника 3D Secure можно сразу установить на платный. Это может произойти, если карта клиента еще не была зарегистрирована в 3D Secure.
Но я использую тестовую карту, 4000000000003063
который требует проверки 3ds. Почему он сразу взимается?
status: "chargeable"
type: "card"
usage: "reusable"
1 ответ
Источник, который вы создаете, является обычным источником карт, который отличается от источника Three D Secure. Этот источник карты сам по себе платный, но если вы попытаетесь зарядить его, вы увидите, что он будет отклонен, поскольку для карты требуется 3DS.
Если источник карты указывает, что требуется Three D Secure, то вам нужно использовать его для создания источника 3DS и приступить к зарядке, которая вместо этого: https://stripe.com/docs/sources/three-d-secure