美团·北极星开发对接避坑指北(Java)

本文作者在接入美团·北极星订单预约接口的过程中遭遇一系列问题,如沟通难题、验签困惑、HEAD请求错误、请求格式不匹配、域名限制及授权问题。通过详细描述这些问题及其解决方案,旨在帮助开发者避免同类问题,提高对接效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:公司做美团洗涤上门业务,本来好好的,后面美团要求接入美团·北极星订单预约接口,才能正常使用,没办法只能去接接口了,但是遇到了无数的坑,所以就有了这篇《美团·北极星开发对接避坑指北》,记录下我开发过程中遇到的坑,希望能帮助到遇到问题的Developer,减少开发时间。

一、沟通交流

全部交流在微信群里交流,里面没有技术人员,遇到开发问题很难得到回复,都要靠里面的美团工作人员进行传达,如果需要咨询技术问题,只能通过邮件进行交流,基本在反复看文档以及问题猜测验证过程中进行;WTF,整个过程无比难受。

二、验签

一开始我用美团提供的SDK进行开发测试报错的有点多,还有些逻辑不能看懂,所有只能参照它的文档自行开发了;这样还可以不用导入它的jar包,减少jar包体积。

三、HEAD请求

写的接口通过postman这种工具进行访问是没有问题,然而使用美团的API调试器,或者上线检测工具的话,就会保一个错:
org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘HEAD’ not supported

Request method 'HEAD' not supported

原因就是**美团过来的请求会用一个HEAD的请求方法,HEAD:请求一个与GET请求的响应相同的响应,但没有响应体,用于测试数据是否存在、当做心跳检测等等。**

找到两个方法可以进行处理;

解决方法一:方法中引入RequestMethod.HEAD,使api可以接受HEAD方法。

    @RequestMapping(value = "book/startbook", method = {RequestMethod.POST, RequestMethod.HEAD})
    public ResultDataEntity<StartBookVO> startBook(StartBookBO bo) {
    }

解决方法二:通过过滤器里面对HEAD方法进行忽略处理,

public class AuthenticationFilter extends OncePerRequestFilter {
   @Override
   protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
      if ("HEAD".equals(request.getMethod())) {
         return;
      }
      String token = request.getHeader(JwtUserTool.TOKEN);
      if(token==null||token.equals("undefined")||token.equals("")){
         filterChain.doFilter(request, response);
         return;
      }
      JwtUser onlineUser = JwtUserTool.getJWTUser(token);
      if(onlineUser!=null && onlineUser.getUserId()!=null){
         Authentication authentication = new UsernamePasswordAuthenticationToken(onlineUser,token,onlineUser.getAuthorities());
         SecurityContextHolder.getContext().setAuthentication(authentication);
      }
      filterChain.doFilter(request, response);
   }
}

四、请求问题

所有post的请求都是application/x-www-form-urlencoded;不是经常用的JSON形式,要加以注意。

这里文档上明确写了,但是我读文档不仔细,也踩到了坑。
请求注意图片

五、域名避坑

1、API调试台,可以使用内网穿透工具进行调试;但是,如果使用大众点评的点评实验室进行调用内网穿透域名,直接报错400,而且本地服务没有接到请求;
大众点评的点评实验室进行调用内网穿透域名报错400

猜测是内网穿透域名没有进行备案,美团那边直接就对域名进行过滤了,于是通过Ngnix进行反向代理,进行测试,ok,请求能够到达本地服务
Nginx反向代理
解决方案:
使用备案的域名
通过Ngnix反向代理,就能解决请求问题。

六、授权的坑:session换取接口

在这里插入图片描述
在这里插入图片描述

按照api文档写的调用,结果文档都看烂了,都没有找到问题的所在;一直以为的入参的字段所问题,结果根本就不是,是TMD auth_code传的值不对,建议直接用正确的授权码来测,不要随便写,auth_code=12345,这种直接报错;直接上线上才找到问题,WTF!

解决掉这几个核心问题后,就进入业务开发阶段CRUD,终于开始丝滑了,耗费两周的时间,终于把功能做上线。

以上是我对接过程中遇到的问题进行归纳整理,若有商业对接可以留言告诉我,希望对你们有帮助,期待你们的一键三连!!!

评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值