【问题标题】:Stripe Payments with Angular error: 'Property 'sources' does not exist on type 'Customer | DeletedCustomer'Stripe Payments with Angular 错误:“客户 | 类型”上不存在“属性”来源已删除客户'
【发布时间】:2020-08-03 00:15:17
【问题描述】:

我正在尝试遵循条带/云功能实现教程,但出现错误。

我正在尝试将付款来源附加到客户,但我收到错误消息:“客户 | 类型不存在属性“来源”删除客户'

export const attachSource = async(uid: string, source: string) => {

const customer = await getOrCreateCustomer(uid);

const existingSource = customer.sources.data.filter(s => s.id === source).pop();

if (existingSource) {
    return existingSource;
} 
else {
    await stripe.customers.createSource(customer.id, { source: source });
    // update default
    return await stripe.customers.update(customer.id, { default_source: source });
}

}

customer.sources 是导致错误的原因。

这里是 getOrCreateCustomer() 函数:

export const getOrCreateCustomer = async (uid: string) => {
     const user = await getUser(uid);
     const customerId = user && user.stripeCustomerId;

     // If missing customerId, create it
     if (!customerId) {
        return createCustomer(uid);
     } else {
        return stripe.customers.retrieve(customerId);
     }
 }

【问题讨论】:

  • 您使用的是 Stripe Elements 还是 Stripe 结帐表单?
  • 我正在使用元素。

标签: angular stripe-payments


【解决方案1】:

如果客户 ID 已经存在而不是 Stripe 客户对象,您的 getOrCreateCustomer 函数会返回 Promise。您的 createCustomer 函数可能与您没有使用 await 或使用回调函数异步获取结果相同。您可能希望将代码修改为以下内容:

export const getOrCreateCustomer = async (uid: string) => {
     const user = await getUser(uid);
     const customerId = user && user.stripeCustomerId;

     // If missing customerId, create it
     if (!customerId) {
        // createCustomer likely uses stripe.customers.create, so needs to work asynchronously 
        return await createCustomer(uid);
     } else {
        // asynchronously wait for a customer
        return await stripe.customers.retrieve(customerId);
     }
 }

【讨论】:

  • 感谢回复,我试过了,好像没有解决错误。我认为“customer.sources”是需要替换的旧版本代码,但我在上面找不到任何东西。
猜你喜欢
  • 2016-01-11
  • 2021-12-27
  • 2020-11-05
  • 2018-10-01
  • 2022-07-02
  • 2017-04-25
  • 2019-03-31
  • 2017-04-20
  • 2017-03-13
相关资源
最近更新 更多