Stripe:订阅创建没有错误,但仪表板上没有显示任何内容

问题描述 投票:0回答:1

尝试为 Stripe 上的产品创建订阅。该产品已经有明确的价格。我尝试直接使用 Price 对象并创建一个新的价格对象,行为保持不变。

具有以下代码和 JSON 正文对象的获取请求:

 async createSubscription(data) {
      try {
        const params = new URLSearchParams();
        params.append('customer', data.customer);
        params.append('cancel_at_period_end', data.cancel_at_period_end.toString());
        params.append('currency', data.currency);
        params.append('description', data.description);
        params.append('items[0][price_data][currency]',  data.items[0].price_data.currency);
        params.append('items[0][price_data][product]',   data.items[0].price_data.product);
        params.append('items[0][price_data][recurring]', data.items[0].price_data.recurring);
        params.append('items[0][price_data][unit_amount]', data.items[0].price_data.unit_amount);


        const response = await fetch(url, {
          method: 'POST',
          headers: {
              'Authorization': `Bearer ${process.env.STRIPE_SECRET_KEY}`,
              'Content-Type': 'application/x-www-form-urlencoded'
          },
        
        body: params});
       
        return {data: response};
      } catch (err) {
        return {error: err.message };
      }
    }

JSON:

{
    "customer": "cus_QjVBjHwGQiiHie",
    "cancel_at_period_end": false,
    "currency": "eur",
    "description": "my test subscription",

    "items": [
        {
            "price_data": {
                "currency": "eur",
                "product": "prod_Ql0OtnWNPRhvlh",
                "recurring": "month",
                "unit_amount": 1000
            }
        }
    ]
}

API响应:

{
    "data": {
        "size": 0,
        "timeout": 0
    }
}
stripe-payments
1个回答
0
投票

问题是

{"size","timeout}
不是 Stripe API 返回的内容。 您还需要调用
.json()
来查看响应(这可能是一个错误,告诉您发生了什么) https://stackoverflow.com/a/49842045/9769731

还可以考虑查看您的 Stripe API 日志以获取提示和帮助:https://docs.stripe.com/development/dashboard/request-logs

我还建议不要以这种方式编写代码,您应该使用官方的 Stripe Node 库。 https://github.com/stripe/stripe-node

© www.soinside.com 2019 - 2024. All rights reserved.