如何查询Chargify中statement的支付状态(已支付/未支付)
Chargify平台Statement支付状态判断方法
核心判断字段
直接查询Statement详情接口的返回结果,取state字段即可直接得到支付状态,该字段枚举值如下:
paid:已完成支付open:待支付past_due:逾期未支付
如果你之前查询没有找到该字段,大概率是调用了Statement列表接口,列表接口返回的是精简字段,需要调用单个Statement详情接口才能获取完整的state字段。
为什么ending_balance_in_cents判断逻辑失效
ending_balance_in_cents对应的是订阅账户的整体期末余额,不是单张Statement的应付结清状态。如果客户有预存余额、跨周期的贷项抵扣、或者提前支付下期费用的情况,就会出现单张Statement已标记为paid但账户期末余额不为0的情况,你遇到的异常案例就是这个原因导致的。
备用校验逻辑
如果需要二次校验状态准确性,可以对比同返回结果里的两个字段:
due_amount_in_cents:当前Statement的应付总金额paid_amount_in_cents:当前Statement的已到账总金额
当paid_amount_in_cents >= due_amount_in_cents时,即可判定该Statement已完成支付,和state字段的返回结果完全一致。
内容的提问来源于stack exchange,提问作者manymanymore
相关产品推荐
相关产品推荐

