Stripe 返回“没有这样的令牌”错误(格子集成)
Posted
技术标签:
【中文标题】Stripe 返回“没有这样的令牌”错误(格子集成)【英文标题】:Stripe returns a "No such token" error (Plaid Integration) 【发布时间】:2021-09-28 04:48:27 【问题描述】:当我尝试为所选银行帐户创建新来源时,我从 Stripe 收到此错误。我正在使用 Plaid Node SDK 的新(测试版)版本。这是我的代码:
let user;
const mode = "sandbox";
const dsService = new CaspioDsService();
// Load the user if not already loaded by cognitoAuth
if (!req.user)
user = new User(
dsService,
new CaspioRefDataService(),
new AuthUserService(
organizationId: res.locals.organization.Organization_ID,
isAuthenticated: res.locals.isAuthenticated,
)
);
await user.load(req.params.userId);
else
user = req.user.userObject;
const configuration = new Configuration(
basePath: PlaidEnvironments[mode],
baseOptions:
headers:
"PLAID-CLIENT-ID": config.plaid.clientId,
"PLAID-SECRET": mode === "sandbox" ? config.plaid.secretSandbox : config.plaid.secretProduction,
"Plaid-Version": "2020-09-14",
,
,
);
const plaidClient = new PlaidApi(configuration);
console.log(configuration.basePath); // https://sandbox.plaid.com
// Exchange the public token for the Plaid access token
const plaidTokenRes = await plaidClient.itemPublicTokenExchange(
public_token: req.body.publicToken,
);
const accessToken = plaidTokenRes.data.access_token;
console.log(accessToken); // access-sandbox-d92396c2-1f49-4780-9ae9-23d50645f364
// Get the Stripe bank account token from Plaid
const stripeTokenRes = await plaidClient.processorStripeBankAccountTokenCreate(
access_token: accessToken,
account_id: req.body.accountId
);
const bankAccountToken = stripeTokenRes.data.stripe_bank_account_token;
console.log(bankAccountToken); // btok_1JFMGwGq7ejZoSiwGmM8WSSm
let stripeCustomerId = user.getStripeToken();
const stripeClient = await StripeHelper.getStripeClient(mode); // Get Stripe client in sandbox mode
console.log(stripeCustomerId); // cus_Jt7AWZjC8rHPzt
// Add the source to the Stripe customer and get the bank account info
const bankAccount = await stripeClient.customers.createSource(stripeCustomerId,
source: bankAccountToken,
); // Error: No such token: 'btok_1JFMGwGq7ejZoSiwGmM8WSSm'
任何想法我可能做错了什么?我预计问题出在我的代码上,或者可能是 Plaid(我认为这不是 Stripe 问题)。
【问题讨论】:
【参考方案1】:听起来您从 Plaid 获得了一个令牌,但 Stripe 拒绝了它,这表明您的 Plaid 和 Stripe 设置之间的关系存在问题。您确定您在 Plaid 仪表板中启用了 Plaid/Stripe 集成,并且您使用的客户端 ID/密码与启用集成的 Plaid 帐户匹配吗? Plaid 文档还表明,此错误可能是由使用不匹配的环境集引起的(例如,使用带 Stripe 的生产环境而使用带 Plaid 的沙箱)。
【讨论】:
谢谢亚历克斯。是的,集成在 Plaid 中显示为“开启”,我肯定使用来自同一个 Plaid 帐户的密钥(这是我唯一拥有的)。我还看到了有关 prod 和 staging 不匹配的文档,但我很确定 Plaid 和 Stripe 都在使用 staging。【参考方案2】:问题是我们连接了错误的 Stripe 帐户。愚蠢的一个,但我发布这个以防其他人犯同样的错误。
【讨论】:
以上是关于Stripe 返回“没有这样的令牌”错误(格子集成)的主要内容,如果未能解决你的问题,请参考以下文章
没有这样的令牌“some_random_token”在 rails 中发现 Stripe 错误
没有这样的令牌:'btok_1JGm2oKFR93cFUSYN2bui4Yb' 当我尝试为 Stripe 客户创建银行账户时