Stripe Node.js中subscriptions.retrieve调用失败:无法读取retrieve属性
解决Stripe Node.js调用subscriptions.retrieve报错问题
出现Cannot read properties of undefined (reading 'retrieve')错误,核心原因是stripe.subscriptions未被正确初始化,导致该属性为undefined。以下是具体排查和解决步骤:
检查Stripe实例初始化是否正确
确保调用subscriptions.retrieve前,已正确初始化Stripe实例并传入有效API密钥:- CommonJS环境(Node.js默认):
const stripe = require('stripe')('你的Stripe秘钥'); - ES模块环境(使用import):
import Stripe from 'stripe'; const stripe = new Stripe('你的Stripe秘钥');
注意:若仅写
const stripe = require('stripe')而未传入密钥调用函数,stripe对象不会包含subscriptions等API方法,必然触发报错。- CommonJS环境(Node.js默认):
检查拼写是否正确
确认代码中是stripe.subscriptions.retrieve(复数形式),而非单数stripe.subscription.retrieve——拼写错误会直接导致属性不存在。确认代码运行在异步函数中
虽然报错与异步无关,但await必须在async函数内使用,确保调用代码包裹在异步函数中:async function getSubscription(subId) { const stripeSubscription = await stripe.subscriptions.retrieve(subId); console.log(stripeSubscription); }验证Stripe版本兼容性
你使用的v8.222.0和v10.10.0版本都支持subscriptions.retrieve方法,版本本身不是问题,但升级后需重新安装依赖(执行npm install或yarn install),避免缓存导致的版本不匹配。
内容的提问来源于stack exchange,提问作者lisa
相关产品推荐
相关产品推荐

