通过 API 添加 Stripe 订阅

Posted

技术标签:

【中文标题】通过 API 添加 Stripe 订阅【英文标题】:Adding a Stripe subscription through API 【发布时间】:2018-10-20 23:17:35 【问题描述】:

我正在尝试自动创建客户并添加订阅。我可以通过 Zapier 创建客户,但我真的不知道如何使用 Python 或 javascript 添加订阅或发票。我可以将我需要的所有数据传递到计划 ID 和发票金额等变量中。有人有这方面的经验吗?

【问题讨论】:

我建议阅读 Stripe 的详细文档 stripe.com/docs/subscriptions/quickstart 以更好地了解所有这些工作原理,或者使用第三方 stripe.com/works-with/categories/recurring-payments 感谢您的建议。我已经做到了这一点,但不明白我遇到的语法错误。 api.stripe.com import stripe stripe.api_key = "sk_test_kLyQtpKGLBRmorVmYCToOdai" stripe.InvoiceItem.create customer=input['custid'], amount=input['opponboarding'], currency="usd", description="Onboarding Fee" 订阅=stripe.Subscription.create customer=input['custid'], items=['plan':input['oppplan']], 错误:Traceback(最近一次调用最后):SyntaxError:无效语法(用户代码.py,第 8 行) 【参考方案1】:

如果您有customer_idplan_id,则可以创建订阅请求。如果您想使用 Zapier 执行此操作,可以使用 Code (Javascript) 应用程序中的 fetch 库发出 POST 请求。

在输入数据中传递customer_idplan_id

在 Base64 中对 Stripe 的密钥进行编码。您可以使用this site 对您的密钥进行编码。替换下面代码中的encodedAPiKey 并将其粘贴到Zapier 中。

当此代码步骤运行时,它将为客户创建订阅。

const url = 'https://api.stripe.com/v1/subscriptions';

//Replace with Base64 encoded secret key from Stripe.
const encodedApiKey = "c2tLsfdGVzdF9aYlFNVjdBSzE3Tm1sTVdMVjkwVWdWTz";

const headers = 
    'Authorization': `Basic $encodedApiKey`,
    'Content-Type': 'application/x-www-form-urlencoded'
;

fetch(`$url?customer=$inputData.customer_id&items[0][plan]=$inputData.plan_id`, method:'POST',
        headers: headers
       )
.then(res => res.json())
.then(json => 
  console.log(json);
  callback(null, json);
)
.catch(callback);

您可以在 Stripe here 上找到相关文档。

注意:如果此代码被多次调用,它将为客户创建多个订阅。您可能需要添加一些代码来处理该问题,或者以一种不会调用此步骤两次的方式设置您的 Zaps。

希望有帮助!

【讨论】:

以上是关于通过 API 添加 Stripe 订阅的主要内容,如果未能解决你的问题,请参考以下文章

Stripe API 订阅

如何使用 Stripe 订阅平台通过 Firestore 在 Stripe 中添加产品和价格

试用期满后将信用卡(在应用内)添加到现有的 Stripe 订阅

Stripe:在创建时将元数据添加到订阅

带有订阅和试用期的条纹支付元素

Stripe 更新订阅并使用 3d 安全添加新的付款方式