原生Swift应用集成Apple Pay时Stripe令牌化超时问题求助
Apple Pay集成Stripe接口超时排查方案
- 设备网络环境校验
- 关闭测试设备的代理、VPN工具,分别切换4G网络、不同WiFi环境重试,排除本地网络出口屏蔽Stripe API的问题
- 在测试设备的Safari中直接访问
https://api.stripe.com/v1/tokens,正常会返回401未授权的JSON响应,若出现打不开/超时问题,优先解决设备到Stripe API的网络连通性
- Stripe SDK配置校验
- 升级Stripe iOS SDK到最新稳定版,21.0.0以下的旧版本存在Apple Pay凭证上报的已知超时bug
- 确认APP启动时已正确配置对应环境的Stripe公钥:
StripeAPI.defaultPublishableKey = "你的公钥",不要混用测试、生产环境的公钥,环境不匹配会导致接口请求卡住
- 支付请求参数校验
- 修正代码中总金额项的空label:按照Apple Pay官方规范,最后一个总金额的PKPaymentSummaryItem的label必须填写商户名称,不能为空,部分iOS版本会因为该参数不合法导致Stripe SDK处理支付凭证异常,引发超时
- 确认金额参数
amount为NSDecimalNumber类型,不要直接传Double/Int类型避免精度异常,触发SDK参数序列化失败
- 网络规则校验
- 若使用企业网络测试,确认出口防火墙已将
api.stripe.com的443端口加入出站白名单,没有限制Stripe API的访问 - 若测试设备为企业监管设备,确认没有安装限制境外域名访问的描述文件,放行Stripe相关域名请求
- 若使用企业网络测试,确认出口防火墙已将
内容的提问来源于stack exchange,提问作者James Wolfe
相关产品推荐
相关产品推荐

