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

简介: 不管是电商cps,还是外卖cps,对接过这么多第三方cps接口,只有美团联盟提供了订单数据回推接口,而且只要订单状态改变,就会回推数据,这为我们自身系统实现用户跟单继而实现分销裂变的功能提供了极大的友好帮助。

不管是电商cps,还是外卖cps,对接过这么多第三方cps接口,只有美团联盟提供了订单数据回推接口,而且只要订单状态改变,就会回推数据,这为我们自身系统实现用户跟单继而实现分销裂变的功能提供了极大的友好帮助。

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

image.png

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

image.png

和大部分回调接口一样,这个接口不需要接入方主动调用,而是接入方提供一个接口给美团联盟平台调用的,平台会将订单数据post到这个接口上,从而我们就可以从数据中获取到下单时预先传入的sid,这个sid是能够唯一识别我们系统的用户。这样就可以实现订单跟踪的效果,继而做一些业务逻辑的处理。

为了安全,同样的需要对联盟平台post过来的数据进行验签操作,以确保是平台发送过来的数据。注意,验签用到的密钥和调用联盟平台其他接口用到的密钥不是同一个哦,这个密钥在如下位置,签名方式和其他接口一致。

image.png

看下service层的代码
注意,接收到推送的订单之后,需要按照下面的固定的格式进行返回,
数据正常,返回:
{"errcode":"0","errmsg":"ok"},
数据错误,返回:
{"errcode":"1","errmsg":"err"}

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层的代码

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

最后一定要记得把接口地址配置在联盟平台上,这样就大功告成了。

image.png

山水有相逢,来日皆可期,谢谢阅读,我们再会

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

上一篇:电商导购CPS,这是最容易上手的创业项目了吧

相关文章
|
前端开发 IDE 中间件
从零开始搞后台管理系统(1)——shin-admin
  shin 的读音是[ʃɪn],谐音就是行,寓意可行的后台管理系统,shin-admin 的特点是:
从零开始搞后台管理系统(1)——shin-admin
|
前端开发 安全 UED
推荐一个非常好的行为验证码开源项目!
推荐一个非常好的行为验证码开源项目!
1173 0
推荐一个非常好的行为验证码开源项目!
|
8月前
|
数据可视化 图形学 开发者
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(上)
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例
820 2
|
编解码 Android开发
Android TV开发总结(五)TV上屏幕适配总结
原文:Android TV开发总结(五)TV上屏幕适配总结 版权声明:我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动.转载务必转载所有,且须注明出处。
1612 0
|
4月前
|
数据采集 前端开发 测试技术
Selenium中定位元素的9种方法
在Selenium中,定位页面元素是自动化测试和网页爬虫的基础。常用的9种元素定位方法包括:ID、Name、Class Name、Tag Name、CSS Selector、XPath、Link Text、Partial Link Text,以及XPath和CSS选择器的组合使用。每种方法各有优劣,建议根据页面的具体情况和元素的属性选择最合适的方法,并使用显式等待确保元素可用。
720 5
|
SQL XML 数据格式
全国省份,城市,地区全数据(SQL版与XML版)包括各城市邮编
应一位园子里的朋友的要求,发一下这个数据,所有数据都是本人自己在网上找的,然后整理了一下: 这套数据共包括: 省份34个(包括港澳台地区); 城市345个(每个城市包括一个可通用的邮政编码); 城市对应的地区2862个(这个地区只的是城市中的小的区,比如:北京的海淀区)....
2434 0
|
Web App开发
打包谷歌浏览器 Chrome 已安装的插件
环境: OS - win7 64bit 旗舰版 Chrome - 37.0.2062.120 m   以 Smooth Gestures (一款鼠标手势插件)为例,在扩展程序面板 chrome://extensions/ 可以看到该插件的ID 为lfkgmnnajiljnolcgolmmgn...
2923 0
fastadmin框架获取富文本内容(不过滤HTML标签)
fastadmin框架获取富文本内容(不过滤HTML标签)
384 0
|
传感器 JavaScript 前端开发
谷歌地图开发之入门
现在lbs搞的红火的很,基于地图的交友购物交通服务更是多如牛毛,几天就主要对谷歌地图开发一点初步,另外发现mapabc的开发接口很是详细,如果不是 谷歌地图的话,感觉mapabc更容易入门,有很多现成的代码,学习起来更容易,对一些复杂的开发比较适合,例如房地产等开发,不过谷歌地图比较主流,一些简单的 开发还是比较好的使用,官方手册是最好的学习资料http://code.
2014 0
|
7月前
|
存储 SQL Java
Spring Boot使用slf4j进行日志记录
本节课主要对 slf4j 做了一个简单的介绍,并且对 Spring Boot 中如何使用 slf4j 输出日志做了详细的说明,着重分析了 logback.xml 文件中对日志相关信息的配置,包括日志的不同级别...

热门文章

最新文章