2016-10-25 75 views
2

我目前正試圖通過解析條帶客戶列表並在其中每個元素中搜索元數據匹配來取消訂閱。通過元數據中的信息取消條帶訂閱

目前這不起作用。

customers = stripe.Customer.list(limit=100) 
for c in customers.auto_paging_iter(): 
    if bool(c.metadata): 
     try: 
      if user.username == c.metadata.username: 
       for s in c.subscriptions.data: 
        subscription = stripe.Subscription.retrieve(s['id']) 
        subscription.delete(at_period_end=True) 
       commit() 
       return jsonify(status=True) 
     except: 
      continue 

我錯過了什麼嗎?

+0

代碼看起來還好。你能澄清一下哪些工作不完全正確嗎?你是否遇到錯誤,或者什麼也沒有發生,你只是觀察你預期被取消的訂閱是否被觸發? – Ywain

+0

所以我只是想通了,顯然'subscription = stripe.Subscription.retrieve(s ['id'])'不起作用,它必須是'subscription = c.subscriptions.retrieve(s ['id']) ' – nadermx

回答

1

所以我想通了,顯然

subscription = stripe.Subscription.retrieve(s['id']) 

不起作用

它必須是

subscription = c.subscriptions.retrieve(s['id']) 
+0

啊,您可能正在使用舊版本的Python綁定,它不支持直接檢索訂閱。它在版本[1.33.0](https://github.com/stripe/stripe-python/blob/61707d90b855a6299f08f581755da108a3fbd30a/CHANGELOG#L38-L44)中添加。 – Ywain

+0

如果我更新它是否反向兼容?由於我已經推送更新並且沒有更新pip – nadermx

+0

更新後的版本應該完全向後兼容 - 當引入更改時,條帶會更新主版本號。 – Ywain