背景
在商业产品的业务中,会有接入iOS支付的需求,但是iOS支付接入,会有这三个点:
- 需要配置host访问业务的沙箱环境
- 中间需要接口请求访问苹果相关服务
- 苹果服务会有SSL Pinning导致这些接口走代理服务会被iOS拦截
这就导致一个问题,手机配置host需要使用charles走代理,但是苹果相关接口会因此无法访问,陷入僵局
方案
既然无法在抓包时处理这种情况,就想到使用设备的自动代理,同过js脚本进行分流,让特定域名不走代理即可。
使用手机的代理时,配置wifi网络的代理为自动,并填写一个url,指向一个代理js文件,js文件内容如下:
1 | function FindProxyForURL(url, host) { |
大致意思是匹配域名,如果是苹果相关的几个域名,走直连,其他的走代理,PROXY xx.xx.xx.xx:8888中的IP和端口就是代理服务器的IP和端口。