【问题标题】:stripe.net - how to process subscriptionService.Get with no resultsstripe.net - 如何处理 subscriptionService.Get 没有结果
【发布时间】:2014-12-19 04:58:12
【问题描述】:

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;
     }
}

【问题讨论】:

    标签: c# stripe.net


    【解决方案1】:

    根据他们的文档,https://stripe.com/docs/api 他们有 2 个不同的 API。您正在尝试使用 RESTful API,该 API 用于按需检索信息。

    他们还有一个 WebHooks API,这需要您在您的站点上有一个可以接受事件通知的端点监听。您可以通过仪表板配置这些。

    您正在寻找的具体事件类型可能是 customer.subscription.deleted 事件,但您可以使用它们做更多事情,我愿意鼓励您探索所有这些 Webhook。

    我无法提供代码示例,因为我不使用他们的服务。

    【讨论】:

    • 我同意 WebHooks 提供了接收与条带事务相关的事件通知的能力。我正在尝试验证删除,因此我必须设置一个系统来查找该事件,如果我有一段时间没有看到它,那么我需要重新提交删除请求。
    • 这就是你要做的......但是请记住,如果你的网络服务没有返回 200 OK 响应,它会将消息排队并继续重试。
    【解决方案2】:

    strip.net 示例将subscriptionService.Cancel 显示为一个方法:

    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 docs:

    返回: 取消的订阅对象。除非您在取消时将 at_period_end 设置为 true,否则其订阅状态将设置为“已取消”,在这种情况下,状态将保持“活动”,但 cancel_at_period_end 属性将更改为 true。其中一个字段是 .status ,女巫是设置为取消。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-20
      • 2021-04-20
      • 2012-12-24
      • 1970-01-01
      • 2013-12-31
      • 2011-01-01
      • 2018-03-06
      • 2018-08-11
      相关资源
      最近更新 更多