关于美团:美团联盟怎么实现用户订单跟单功能

6次阅读

共计 1965 个字符,预计需要花费 5 分钟才能阅读完成。

不论是电商 cps,还是外卖 cps,对接过这么多第三方 cps 接口,只有美团联盟提供了订单数据回推接口,而且只有订单状态扭转,就会回推数据,这为咱们本身零碎实现用户跟单继而实现分销裂变的性能提供了极大的敌对帮忙。

登录美团联盟后盾,在联盟 API 接口列表找到一个名称为【 订单回推接口 】的栏目。

对,这个就是咱们须要的接口,点进去查看详情。

和大部分回调接口一样,这个接口不须要接入方被动调用,而是接入方提供一个接口给美团联盟平台调用的,平台会将订单数据 post 到这个接口上,从而咱们就能够从数据中获取到下单时事后传入的 sid,这个 sid 是可能惟一辨认咱们零碎的用户。这样就能够实现订单跟踪的成果,继而做一些业务逻辑的解决。

为了平安,同样的须要对联盟平台 post 过去的数据进行验签操作,以确保是平台发送过去的数据。 留神,验签用到的密钥和调用联盟平台其余接口用到的密钥不是同一个哦 ,这个密钥在如下地位,签名形式和其余接口统一。

看下 service 层的代码

 留神,接管到推送的订单之后,须要依照上面的固定的格局进行返回,数据失常,返回:
{"errcode":"0","errmsg":"ok"},数据谬误,返回: 
{"errcode":"1","errmsg":"err"}
@Override
public Map<String, String> mtOrderCallback(TreeMap<String, String> params) {String data = JSON.toJSONString(params);
    logger.info("美团回调参数:{}", data);
    MtOrderModel mtOrder = JSONObject.parseObject(data, MtOrderModel.class);
    String getSign = mtOrder.getSign();
    String sign = MtSignUtils.genSign(params, model.getMtCallbackSecret());
    Map<String, String> result = new HashMap<>(3);
    if (sign.equals(getSign)) {String userUuid = mtOrder.getSid();
        UserMember member = userMemberService.getOne(Wrappers.<UserMember>lambdaQuery().eq(UserMember::getUuid, userUuid));
        if (member != null) {String orderId = mtOrder.getOrderid();
            String status = mtOrder.getStatus();
            String type = mtOrder.getType();
            CpsOrder order = cpsOrderService.getOne(Wrappers.<CpsOrder>lambdaQuery()
                    .eq(CpsOrder::getOrderSn, orderId));
            if (order == null) {order = new CpsOrder();
                // TODO
                // 保留订单
                // ......
                cpsOrderService.save(order);
            } else {if (StringUtils.equals("8", status)) {
                    // 美团订单已实现
                    // ......
                } else if (StringUtils.equals("9", status)) {
                    // 美团订单已退款或风控
                    // ......
                }
                cpsOrderService.updateById(order);
            }
        }
        result.put("errcode", "0");
        result.put("errmsg", "ok");
    } else {result.put("errcode", "1");
        result.put("errmsg", "err");
    }
    logger.info("美团回调返回给美团的参数:{}", JSON.toJSONString(result));
    return result;
}

看下 controller 层的代码

@PostMapping("mtOrderCallback")
public Map<String, String> mtOrderCallback(@RequestBody TreeMap<String, String> params){return mtApiService.mtOrderCallback(params);
}

最初肯定要记得把接口地址配置在联盟平台上,这样就功败垂成了。

美团联盟怎么实现用户订单跟单功能

山水有相逢,来日皆可期,谢谢浏览,咱们再会

我手中的金箍棒,上能通天,下能探海

上一篇:从短视频中筛选你的精准客户 - 抖音版

正文完
 0