Stripe订阅创建失败 - 参数未知:来源。

3
我已在Firebase中创建了一个函数,用于在创建用户时创建Stripe订阅。一切工作正常,但是当我切换到另一个Stripe帐户(切换前端和后端的api密钥并更改计划id)时,出现以下错误:

接收到未知参数:源。

我有一个Stripe帐户,其中代码可以正常运行,而另一个帐户则以不同方式处理代码。我可以切换API密钥并观察它从失败到成功,反之亦然。

这是我的代码部分,用于创建订阅

return stripe.subscriptions.create({
      customer: customerId,
      source: collectedToken,
      coupon: couponId,
      items: [{plan: 'plan_xxxxxxxx'}],
});

请检查后端和前端Stripe账户的所有API密钥是否正确。在测试期间,前端与使用不同的Stripe API密钥相比完全相同。我尝试切换Firebase账户以查看是否存在问题,但结果相同。

可行的是创建与在Stripe账户上记录的数据匹配的客户和令牌,但在创建订阅时全部失败。这使我认为这是我的Stripe账户中的配置错误。我已经浏览了两个Stripe账户,使它们尽可能相同。

这是一个失败的帖子/响应:

Request POST body
{
  "customer": "cus_EWLxBmoZgtdVKQ",
  "source": "tok_1E3JFsJUEng1Y6esS4bme82U",
  "coupon": "",
  "items": {
    "0": {
      "plan": "plan_EUshZMWWubOprv"
    }
  }
}

Response body
{
  "error": {
    "code": "parameter_unknown",
    "doc_url": "https://stripe.com/docs/error-codes/parameter-unknown",
    "message": "Received unknown parameter: source",
    "param": "source",
    "type": "invalid_request_error"
  }
}

这是一篇成功的帖子/响应:

{
  "customer": "cus_EW3IIVqlBt9fFD",
  "source": "tok_1E31BZLdCGsF9mmTflmDjd0x",
  "coupon": "",
  "items": {
    "0": {
      "plan": "plan_ESdEWggGYJ89FB"
    }
  }
}

{
  "id": "sub_EW3IWD0NCyDVUi",
  "object": "subscription",
  "application_fee_percent": null,
  "billing": "charge_automatically",
  "billing_cycle_anchor": 1549977641,
  "billing_thresholds": null,
  "cancel_at": null,
.................

如果计划、客户和令牌是有效的,并且另一个 Stripe 账户设置方式相同,那么它应该可以在另一个 Stripe 账户上运行。
1个回答

3
可能是因为您使用的新API密钥正在运行较新版本的Stripe API。您可以在仪表板的开发者部分下检查版本。
更新的订阅API中,您只需要客户计划(在项目列表中)即可创建新的订阅。源已完全删除,API现在依赖于客户的默认源。

太棒了!很高兴能帮忙。 - Máté

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接