我使用Stripe Checkout会话来设置支付意图,并希望扩展card属性,嵌套三层深度。
根据文档,我可以用点符号展开属性和子属性:
const session = await stripe.checkout.sessions.retrieve(session_id, {
expand: ["setup_intent.payment_method"]
});
然后我收到这个响应:
{
id: 'cs_test...",
...
setup_intent: {
id: 'seti_1MDYkcAphQbVdSksInihHamA',
...
payment_method: {
id: 'pm_1MDYknAphQbVdSks1a1eohA7',
object: 'payment_method',
billing_details: [Object],
card: [Object],
...
type: 'card'
},
...
}
我还想扩展卡以获取指纹并检查它是否是重复的。所以我用这个:
const session = await stripe.checkout.sessions.retrieve(session_id, {
expand: ["setup_intent.payment_method.card"]
});
但是结果和上面一样:card: [Object]
,并且没有显示卡片的指纹。
请求没有在Stripe端抛出错误,所以我假定语法是正确的。
是否由于处于测试模式而缺乏扩展?如果没有,我怎样才能告诉Stripe把信用卡的指纹包含进去?
问题是由于您正在打印一个嵌套的对象。即使打印结果以这种方式显示,对象属性仍然存在,您仍然可以使用它们。
你可以通过运行命令
来确认console.log(setup_intent.payment_method.card.fingerprint);
您可以在这里找到卡对象指纹和文档:https://stripe.com/docs/api/payment_methods/object#payment_method_object-card