我正在使用react-native-stripe-id从反应原生应用连接到Stripe。我从卡片创建一个令牌,然后是一个客户,然后通过以下方式订阅它们:
...
.then(card => {
return stripeClient.createToken(card.cardNumber, card.expiryMonth, card.expiryYear, card.cvv);
})
.then(token => {
return stripeClient.createCustomer(token.id, user.email, user.uid, user.firstName, user.lastName);
})
.then(customer => {
return stripeClient.createSubscription(customer.id, "MyPlan");
})
.then(subscription => {
...
});
这似乎完美无缺。
从这里开始,通过客户和订阅,我该如何更改或取消订阅?
只需创建新计划的新订阅,即可为客户订阅两个计划并对其进行双重计费。
我可以使用retrieveSubscription
检索客户的订阅,但不知道我能用它做什么。
答案 0 :(得分:2)
我建议不要从你的React Native应用程序调用createCustomer,createSubscription等,因为它们只能用你的密钥进行。如果您将密钥放入应用程序中,任何拥有应用程序副本的人都可以轻松提取密钥并使用它来恶意对您的帐户进行API调用 - 例如,退还您的费用,删除您的数据等。
通常的方法是创建一个iOS应用程序进行API调用的后端应用程序。您的后端应用程序安全地存储您的密钥并与Stripe API进行通信。除了安全性,另一个优点是你最终会得到一个更简单,更轻量级的前端应用程序。
假设您正在使用Stripe的Node库,您想要进行此调用: https://stripe.com/docs/api/node#cancel_subscription
我查看了Stripe的标准集成指南,了解如何设计后端应用程序: https://stripe.com/docs/mobile/ios/standard#prepare-your-api