如何处理subscriptionService.获取但没有结果
本文关键字:获取 结果 subscriptionService 何处理 处理 | 更新日期: 2023-09-27 18:27:30
stripe.com API仅返回活动订阅。我想在删除订阅时进行验证。
所以这将返回一个错误。我不知道如何为它编码。
我更愿意根据subscriptionId打这个电话。这会导致异常还是会返回错误代码?
检索订阅
var subscriptionService = new StripeSubscriptionService();
StripeSubscription stripeSubscription = subscriptionService.Get(*subscriptionId*);
另一个有点像黑客的选项是返回给定客户的所有订阅,并测试是否返回了subscriptionId。
列出客户的所有订阅
var subscriptionService = new StripeSubscriptionService();
IEnumerable<StripeSubscription> responses = subscriptionService .List(*customerId*);
foreach( var response in responses )
{
if (response.subscriptionId == subscriptionId)
{
// subscription exists and was not deleted
exit;
}
}
根据他们的文档,https://stripe.com/docs/api它们具有2种不同的API。您正在尝试使用RESTful API,它用于按需检索信息。
他们还有一个WebHooks API,这要求你有一个端点在你的网站上监听,可以接受事件通知。您可以使用它们通过仪表板进行配置。
您要特别查找的事件类型可能是customer.subscription.deleted事件,但您可以使用它们做更多的事情,我鼓励您探索所有这些Webhook。
我不能提供代码示例,因为我不使用他们的服务。
var subscriptionService = new StripeSubscriptionService();
subscriptionService.Cancel(*customerId*, *subscriptionId*);
但是您也可以将它用作函数,它将返回订阅对象。
var subscriptionService = new StripeSubscriptionService();
StripeSubscription stripeSubscription = subscriptionService.Cancel(*customerId*, *subscriptionId*);
If (stripeSubscription.Status != "canceled")
{
//subscription not cancelled
// take action
}
根据Stripe API文档:
退货:已取消的订阅对象。它的订阅状态将被设置为"已取消",除非您在取消时将at_period_end设置为true,在这种情况下,状态将保持为"活动",但cancel_at_period_end属性将更改为true。封地之一是。状态,女巫被取消。