lit*_*ull 4 javascript node.js stripe-payments
我应该如何设计一个登录中间件来检查定期订阅是否失败?我知道Stripe会在事情发生时触发事件,而最好的做法是webhooks.问题是,我不能在当前的实现中使用webhooks,所以我必须检查用户登录的时间.
正确的答案:
正如您已经知道的那样,webhooks.
我不确定你在做什么,webhooks不是当前实现中的一个选项:它们只是对公开可用URL的POST,与任何最终用户请求相同.如果您可以在Node中实现其他任何功能,则可以实现webhook支持.
实施webhooks不是一个全有或全无的主张; 如果您只想跟踪拖欠付款,则只需实施一个webhook事件的处理.
这必须立即工作,客户体验被诅咒答案:
检索到的Stripe Customer对象包含一个delinquent字段.true如果最新发票费用失败,此字段将设置为.
注意:此通话可能需要几秒钟(有时为两位数)才能完成,在此期间,您的网站似乎已停止向您的用户发挥作用.如果您拥有较大的用户群或短登录会话,则可能还会超出Stripe API速率限制.
我实际上给Stripe支持团队写了一封电子邮件抱怨这个问题(如果你试图提取拖欠条目,需要循环遍历每个发票或客户)并且看起来你实际上可以在没有webhooks或浪费循环的情况下这样做.只是过滤功能没有记录.当前文档显示您只能修改customers或invoices通过count,created(日期)和offset... 的查询,但如果您传入其他参数,Stripe API将实际尝试理解查询,因此cURL请求:
https://api.stripe.com/v1/invoices?closed=false&count=100&offset=0
将仅查找未结发票....您还可以delinquent=true在查找逾期客户时传递参数.我只在PHP中对此进行了测试,因此返回的逾期客户看起来像这样:
Stripe_Customer::all(array(
"delinquent" => true
));
Run Code Online (Sandbox Code Playgroud)
但我相信这应该适用于Node.js:
stripe.customers.list(
{delinquent:true},
function(err, customers) {
// asynchronously called
});
Run Code Online (Sandbox Code Playgroud)
这里最大的警告是,因为这个过滤没有记录,所以可以在不事先通知的情况下进行更改......但鉴于这种方法有多么明显,我猜它是非常安全的.
| 归档时间: |
|
| 查看次数: |
2762 次 |
| 最近记录: |