美团外卖API接入(一)

前言:文档用于记录美团外卖api的接入过程,美团外卖提供给第三方软件商的接入地址如下,如果是单独的餐饮企业是可以直接接入美团外卖比较成熟的api的。此文是针对第三方软件商想接入美团外卖可以看看。本人接入的时间大概是2016年12月份,当时此网站上是没有javaSDK的,所以一些加密方法都是自己按照文档里面加密的。有SDK还是用SDK吧。本文档只接入了外卖,其它功能未接入。
地址:https://developer.meituan.com/home?applyFrom=waimai_developer
进入后应该是这个界面。
美团外卖API接入(一)

第一步,填一些ERP厂商的基本信息。
美团外卖API接入(一)
第二步,申请一个测试帐号,及门店
美团外卖API接入(一)
测试帐号及门店申请好了,下载一个美团app,定位到你测试门店的位置,就可以下测试单了。
测试门店下单后,那些订单信息是怎么推送给你呢?
第三步,填写推送地址
美团外卖API接入(一)
云端心跳地址:是美团检验你服务器是死是活用的。
推送订单url:是将订单推送给你的url,请填写你自己的地址。
下面几个url看名字就行了。就是这个意思,美团和饿了么api不同,饿了么是同一个推送地址,但是会用type区分是什么操作的推送,美团则是需要填写多个地址。

第四步,开始写代码。
1.将所有的请求地址写在一个util中,并完成签名加密方法。

public class MeidaUrlUtil {
private static Logger logger = Logger.getLogger(MeidaUrlUtil.class);
private static String recEncoding = "UTF-8";

//商家确认订单
public static String mdOrderConfirm(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/confirm";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//商家取消订单(非美团配送)
public static String mdOrderCancel(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/cancel";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//商家配送订单(非美团配送)
public static String mdOrderDelivering(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/delivering";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//商家取消订单(美团配送)
public static String mdLogisticsOrderCancel(Map params) throws Exception{
String url = Commons.MEIDA_URL+"order/cancelDispatch";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//商家配送订单(美团配送)
public static String mdLogisticsOrderDelivering(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/dispatchShip";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//订单已送达
public static String mdOrderArrived(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/delivered";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//订单同意退款请求
public static String mdOrderRefundAgree(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/agreeRefund";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//订单驳回退款请求
public static String mdOrderRefundReject(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/rejectRefund";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
//查询订单id查询订单
public static String mdOrderByIdFromMd(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/queryById";
params=commonOrderArgs(params);
return HttpRequestProxy.doGet(url,params,getRecEncoding());
}
//查询订单流水号查询订单
public static String mdOrderByDaySeqFromMd(Map params) throws Exception{
String url = Commons.MEIDA_URL+"/order/queryByDaySeq";
params=commonOrderArgs(params);
return HttpRequestProxy.doGet(url,params,getRecEncoding());
}
//心跳上报
public static String mdHeartJump(Map params) throws Exception{
String url = "http://heartbeat.meituan.com/pos/heartbeat";
params=commonOrderArgs(params);
return HttpRequestProxy.doPost(url,params,getRecEncoding());
}
public static String getRecEncoding() {
return recEncoding;
}

public static void setRecEncoding(String recEncoding) {
MeidaUrlUtil.recEncoding = recEncoding;
}
private static Map commonOrderArgs(Map params){
Long currentTimeMillis = MeidaUrlUtil.getCurrentTimeMillis()/1000;
params.put("charset","utf-8");
params.put("timestamp", currentTimeMillis.intValue());
String signature = orderEncrypt(params);
params.put("sign", signature);
return params;
}
private static String orderEncrypt(Map map){
String signature = "";
try {
String result="";
String meituanSort = meiTuanSort(map);
String signkey=Commons.MEIDA_SIGNKEY;
result=signkey+meituanSort;
signature = Sha1Util.getSha1(result);
} catch (Exception e) {
logger.error("获取美大token异常", e);
}
return signature;
}
public static long getCurrentTimeMillis(){
return System.currentTimeMillis();
}
private static String meiTuanSort(Map mapv){
//将appid,timestamp,还有参数这三个进行字母排序
Map map = mapv;
Collection keySet = map.keySet();
List list = new ArrayList(keySet);
Collections.sort(list);
String result = "";
for(int i = 0;i
result+=list.get(i)+map.get(list.get(i));
}
return result;
}
}

不太华丽的分隔线-----------------------------------------------------
美团外卖API接入(一)
上图中MEIDA_SIGNKEY和MEIDA_DEVELOPERID为美团分配,MEIDA_URL为美团服务器地址。
MEIDA_STORE为美团绑定门店ui地址。
MEIDA_PUSH_TMIE为本地推送给设备如果设备没有收到,多久后推送第二次的时间间隔。
上面的方法包括了美团外卖常用的请求地址,及加密签名方法,可以直接复制,也可以下载SDK,因本人是在SDK未出来之间写的,所以应该没有SDK规范。但是加密正确无误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22363.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp-美团外卖微信小程序开发

美团外卖微信小程序开发 P1 成果展示P2外卖小程序后端,学习给小程序写http接口P3 主界面配置P4 首页组件拆分P13 外卖列表布局筛选组件商家 布局测试数据创建样式 请求商家外卖数据封装请求并发请求 uni-app框架调用https接口 开发小程序 提高vue技术 前端技术 课程…

美团 mtgsig 1.0 版本

本次逆向的是 mtgsig 1.0 版本 mtgsig 加密入口位置: 请求参数 signData 里是要请求接口的 url method 等,美团每个网站加密参数是不一样的 进入以后到这里 fj 函数执行完,返回 mtgsig a6 需要执行 init

最赚钱编程语言Zig登顶,开发者爱ChatGPT远超必应|Stack Overflow报告

丰色 发自 凹非寺量子位 | 公众号 QbitAI 一年一度的Stack Overflow开发者大调查又双叒叕来了! 今年,一共约9万人参与问卷,最大的变化是加入了ChatGPT相关的内容—— 程序员是否比大家想象地更能接受AI工具呢? 结果显示&#xff1…

“GPT+医疗健康”:给予医疗领域新机遇

现如今,GPT十分火热。随着人们对健康医疗的关注越来越热切,GPT已逐渐成为健康医疗领域的重要角色之一。GPT可以用于许多医疗语境中,如医学咨询、病症诊断、健康建议、在线问诊、患者教育、健康数据跟踪等。 GPT是一种基于深度学习的自然语言处…

活动报名丨ChatDoctor:基于LLaMA在医学领域知识上微调的医学对话模型

2023年04月06日(星期四)11:00-12:00,由智源社区主办的「智源LIVE 第36期线上活动:ChatDoctor:基于LLaMA在医学领域知识上微调的医学对话模型。本期活动将在线举办,「阅读原文」报名即可参加。 李云响 李云响…

Excel VBA高级编程-微信群发(支持发送文件)

关注工作,更关注生活,我是小虾,目前专注于外贸B2B领域。喜欢用自动化工具代理日常重复性的工作,喜欢的可以关注我的微信公众号:万能的Excel 和3000小伙伴一起学习! 我们的微信群发模板很早就发布了&…

热点解读:大模型的突现能力和ChatGPT引爆的范式转变

来源:机器之心 作者:符尧、Tushar Khot、彭昊、李如寐等 符尧(yao.fued.ac.uk),爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学。他与 Tushar Khot、彭昊在艾伦人工智能研究院 (Allen In…

雅思写作范文(持续更新)

文章目录 1. Writing Task 11.1. Rates of smoking in Someland1.2. number of tourists visiting a particular Caribbean island1.3. The chart shows peoples coffee and tea buying and drinking habits in five Australian cities. 1. Writing Task 1 1.1. Rates of smok…

计算雅思成绩C语言,雅思考试总成绩计算查分表

很多同学表示,雅思总分算起来,出现0.375和0.625等小数时,进位退位经常傻傻分不清楚,附上官方算分方式以及获得不同分数可能对应的各种情况,大家也可以根据这个算分表,提前“谋划”如何让自己获得合格的总分…

雅思小作文 饼图

原文改写The charts compare two countries with their units of electricity production by fuel source in 1980 and 2000.The charts compare two countries in terms of the electricity produced by different fuels in 1980 and 2000.With regard to Australia,the coal …

【1、雅思听力】何琼口语学习记录 第2节

三个数字为一个逗号(不要忘记逗号) 2,645,639,461 应该读为: two billion six hundred and forty-five million six hundred and thirty-nine thousand four hundred and sixty-one the first of the third twenty of senven: 1…

雅思c1语言等级,雅思分数各代表什么水平

雅思要考到6分以上成绩才算合格成绩,所以备考的学生必须知道,雅思的每高一分,都代表着不同的水平,代表不同的能力。接下来小编就给大家讲讲雅思分数各代表什么水平,供大家参考。 雅思9分是什么水平? 9分,代…

雅思备考

零、我的成绩 分享前先给大家看看我的成绩。 没错我只有7分,而且偏科十分严重。所以这篇分享并不能告诉你如何考取一个高分的雅思成绩,也不能帮你补足弱项(毕竟我自己写作口语都没考明白)。下面的内容分享出来只是我考雅思的过…

sci论文写法

以超表面论文为例 写论文顺序 1.画图,确定论文的几个插图(先确定每个图的大体内容,然后一边写论文一边慢慢优化图的表达) 2.写introduction 3.根据图写其他部分论文,类似于雅思小作文,写图 1.画图 图内容…

微软Bing的AI人工只能对话体验名额申请教程

微软Bing 免费体验名额申请教程 流程 ChatGPT这东西可太过火了。国外国内,圈里圈外都是人声鼎沸。微软,谷歌,百度这些大佬纷纷出手。连看个同花顺都有GPT概念了,搞技术,做生意的看来都盯上了 流程 下面就讲一下如何…

对大模型微调后竟能超越ChatGPT!只需要让模型模拟真实的人类交互!

夕小瑶科技说 原创 作者 | 小戏、Python 虽然我们都说当下大模型最引人瞩目令人浮想联翩的神奇能力在于它的推理判断能力,但是如果提一个问题,“这种通过语言、文本信息学习到的推理判断能力真的可以面对现实世界的复杂情况吗?”&#xff0…

必应暗藏戏精模式,拿捏名人说话语气口头禅!官方还自推三种个性供挑选

明敏 发自 凹非寺量子位 | 公众号 QbitAI 曾声称自己完美无瑕的必应,怎么突然180度大转弯? 自评:可真多管闲事啊……是个卑鄙的家伙。 还疯狂揭自己老底: 它还偷看对话、夹带广告,它不是我们的朋友! 仔细一…

Python+ChatGPT制作了一个AI百宝箱,太实用了!!

ChatGPT最近在互联网掀起了一阵热潮,其高度智能化的功能能够给我们现实生活带来诸多的便利,可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码。只要与文字相关的工作,它几乎都能给出一份满意的答卷。 小编趁着有空上去玩了一…

独家 | ChatGPT工作原理:机器人背后的模型

作者:Molly Ruby 翻译:张睿毅 校对:闫晓雨本文约3000字,建议阅读5分钟简要介绍让你耳朵听到起茧的聊天机器人背后的直觉和方法论。 这篇对赋能ChatGPT的机器学习模型的简要介绍,将从大型语言模型(LLM)开始,…