一个跑腿小程序发新版本后,骑手端定位突然全挂了。代码一行没改,改的是平台:getLocation这类接口从默认可用变成了需要申请,没申请就调用直接报错。微信小程序开发的敏感接口管控这几年一直在收紧,定位相关的尤其严格。
为什么要申请,申请什么
平台的逻辑是敏感权限按需申请、场景审核。定位属于敏感信息,所以调用前置了申请流程:在小程序后台提交开通申请,说明使用场景。涉及骑手实时位置、门店导航、附近门店推荐这些场景,还要在页面里把定位的用途展示给用户。开发阶段容易忽略这层,本地一切正常,一到线上接口静默失败,排查半天才发现是权限没开,白耗一个晚上。
申请材料怎么写能过
场景说明写得越具体越容易通过。申请理由写成「优化用户体验」这种空话,大概率被拒。合规的写法是把业务链路讲清楚:骑手接单后需获取实时位置用于订单轨迹展示和配送路线计算,用户端需获取位置用于推荐附近门店。场景描述、调用的具体接口、展示给用户的说明文案,三者对得上,通过率就高。一次被拒不是终点,按驳回意见补充材料再提交即可,但每轮往返都要几天,工期经不起几次折腾。
拿不到权限的替代方案
不是所有场景都需要精确定位。选城市、推荐内容这类粗粒度需求,用IP定位就能应付,不需要申请接口;用户手动选择地址的交互也完全可用,让用户主动选点反而省去了权限沟通。真正绕不开精确定位的场景,比如配送轨迹,就老老实实走申请流程,把材料备足。评估清楚需求的粒度再决定动用什么能力,是开发前的必修课。
两条实在建议:微信小程序开发启动时对照平台的敏感接口清单过一遍需求,要申请的当周就提交,把审核周期留足;比格网络做需求评审时会把接口权限单独列成清单跟进,这个做法值得抄走。申请前把调用时机也定好,进页面就定位和点按钮才定位,审核观感完全不同。升级版本时留意平台公告,接口状态变更一般都有过渡期,抓住窗口期补申请。粗定位方案的精度边界提前告知用户,别让骑手拿着城区级定位找门牌。定位权限的申请进度同步到项目群里,卡在哪一环全员可见,别让开发干等。被拒过一次的,第二轮提交前把场景截图和页面说明补全,材料厚一点,通过的概率就大一点。接口申请要趁早,材料要写具体。