Stripe Radar与SetupIntent:能否通过SetupIntent获取风险评分/等级?
Stripe SetupIntent Radar风险信息获取问题解答
关键结论
不需要创建Charge就能获取SetupIntent关联的Radar风险数据,问题出在API调用时没有显式请求扩展字段。
解决步骤
Stripe API默认仅返回核心字段,radar_results属于SetupAttempt的扩展字段,必须主动指定展开才能获取。具体操作如下:
- API请求示例(curl):
curl https://api.stripe.com/v1/setup_attempts/[SETUP_ATTEMPT_ID] \ -u [YOUR_SECRET_KEY]: \ -d "expand[]"=radar_results
- Python代码示例:
import stripe stripe.api_key = "[YOUR_SECRET_KEY]" setup_attempt = stripe.SetupAttempt.retrieve( "[SETUP_ATTEMPT_ID]", expand=["radar_results"] ) # 此时可通过setup_attempt.radar_results获取risk_level、risk_score等信息
控制台与API显示差异的原因
这是Stripe的API设计逻辑:默认返回高频使用的核心字段,减少响应数据量并提升接口性能。非核心或敏感相关的字段需要通过expand参数主动触发返回,既不是安全限制也不是设计疏漏。
适配你的业务场景的方案
- 当SetupIntent被拦截时,从SetupIntent对象的
latest_attempt字段提取对应的SetupAttempt ID - 调用Retrieve SetupAttempt接口并展开
radar_results,拿到风险等级和评分 - 基于结果执行规则:拦截
highest风险的支付方式,放行elevated风险并同步通知风控人员
内容的提问来源于stack exchange,提问作者VitaminTussle
相关产品推荐
相关产品推荐

