PHP美团外卖开放平台开发记录,IM在线通讯token获取和消息解密!By勤勤学长
token获取:
一开始我还以为,监听哪个店铺的消息,就用哪个店铺的appAuthToken获取长链接的token,但实际上,不管是使用哪个店铺的appAuthToken返回的内容是一样的,同时也意味着,我们可以获取所有已开启即时通讯店铺的所有消息,客户发给商家、商家发给客户。
so,只需要生成一次就可以写死了。我们需要的值connectionToken、connectionId、imSecret。
开发文档:https://developer.meituan.com/openapi#10.4.6
var mtSocket = new WebSocket('wss://wpush.meituan.com/websocket/{connectionId}_WMOPEN/{connectionToken}');mtSocket.onopen = function(){mtSocket.send('XXX连接成功');};mtSocket.onmessage = function(e){console.log(e.data)}
获取到的数据是这样的
文本内容:rQoVHeLTUf+wvmefyRvl6uqIYSOKRCDD1abu8N5Yw9V9M8GaDNwgQgQnvviEcclmaE46mFsa9dhT3JPIFxkXvtd8Hp44WqC02GD6LOluAKUQ33TJQl4n5jFrVdY2c/JCtUEVZ9ik9aIZ30+YW/7sC62Jh0q5O/3FC0gcb8LkZ0mxe5mi2HS/CWCcUA+GarGi2Z1HOt1g/xkZ+aHlftlGWEwHBZcxcddn3SVdnrg9osU=
消息内容是需要解密,所以接收到消息了就把内容提交到接口
var mtSocket = new WebSocket('wss://wpush.meituan.com/websocket/{connectionId}_WMOPEN/{connectionToken}');mtSocket.onopen = function(){mtSocket.send('XXX连接成功');};mtSocket.onmessage = function(e){console.log(e.data)$.ajax({url:'{:url("im/websocket")}',type:"post",data:{data:e.data},async:false,success:function (res) {console.log(res)},error:function (data) {}})}
public function websocket(){$data =json_decode(input('data'), true);if ($data) {$msg_content = \meituan\Im::decrypt($data['msg_content']);if (empty($msg_content)) {return '解密失败';}return $msg_content;}}
<?php
namespace meituan;class Im {protected static $iv = "imSecret";//获取长连接token得到的imSecretprotected static $encryptKey = "imSecret";//获取长连接token得到的imSecret//加密public static function encrypt($encryptStr) {$localIV = self::$iv;$encryptKey = self::encryptKey;//Open module$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, $localIV);//print "module = $module <br/>" ;mcrypt_generic_init($module, $encryptKey, $localIV);//Padding$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$pad = $block - (strlen($encryptStr) % $block); //Compute how many characters need to pad$encryptStr .= str_repeat(chr($pad), $pad); // After pad, the str length must be equal to block or its integer multiples//encrypt$encrypted = mcrypt_generic($module, $encryptStr);//Closemcrypt_generic_deinit($module);mcrypt_module_close($module);return base64_encode($encrypted);}//解密public static function decrypt($encryptStr) {$localIV = self::$iv;$encryptKey = self::$encryptKey;//Open module$module = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, $localIV);//print "module = $module <br/>" ;@mcrypt_generic_init($module, $encryptKey, $localIV);$encryptedData = base64_decode($encryptStr);$encryptedData = @mdecrypt_generic($module, $encryptedData);return trim ($encryptedData);}
}?>
初步使用结束。
你好,我是勤勤学长。
www.11ak.cn
QQ微信同号318692996
PHP美团外卖开放平台开发记录,IM在线通讯token获取和消息解密!By勤勤学长相关推荐
- 美团外卖开放平台对接经验总结(一)
美团外卖开放平台对接经验总结(一) 2017-06-21 司想君 司想君 两个月的时间,在除官方文档之外的资源极其匮乏的条件下,项目组群策群力完成了美团和饿了么的外卖开放平台对接,在这里对团队成员 ...
- 山东大学RISC-V公共开放平台开发记录3
山东大学RISC-V公共开放平台开发记录 RISC-V编译 2 编译优化策略 2.1 RISC-V GCC工具链的(–mcmodel=)选项 目前RISC-V GCC工具链认为,在实际的情形中,一个程 ...
- 山东大学RISC-V公共开放平台开发记录5
山东大学RISC-V公共开放平台开发记录 4移植Linux操作系统 4.1移植前相应知识 4.1.1特权等级与操作系统的关系 现代操作系统(如Linux.Windows等)为了权限的区分都区分为用户态 ...
- 比亚迪智慧开放平台开发记录
比亚迪智慧开放平台开发记录 前言 注册账号 SDK和API文档下载 项目运行 安装AVD模拟器 启动AVD模拟器 BYD车机数据模拟器(ApiSimulator) 结尾 前言 最近在做一个比亚迪开发平 ...
- PHP美团开放平台开发记录,美团外卖,第一步授权演示及错误提示:获取门店出错(3)解决方法
他居然没有php的sdk!也不像饿了么提供授权地址,授权完成直接把相关信息提交到回调地址. 门店映射接入参数 https://developer.meituan.com/openapi#4.1.2 数 ...
- 美团外卖Android平台化的复用实践
美团外卖平台化复用主要是指多端代码复用,正如美团外卖iOS多端复用的推动.支撑与思考文章所述,多端包含有两层意思:其一是相同业务的多入口,指美团外卖业务需要在美团外卖App(下文简称外卖App)和美团 ...
- 美团外卖广告平台化的探索与实践
随着美团外卖业务不断发展,外卖广告引擎团队在多个领域进行了工程上的探索和实践,目前已经取得了一些成果.我们计划通过连载的形式分享给大家,本文是<美团外卖广告工程实践>专题连载的第一篇. 本 ...
- 支付宝开放平台开发助手_支付宝:如何创建和接入支付宝电脑网站支付-新手必备...
1.登录支付宝 1.打开支付宝官网,以"我是支付宝商家"用户登录 https://www.alipay.com/ 2.进入"产品中心",选择并申请支付类型 2. ...
- 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单
微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单 技术qq交流群:JavaDream:251572072 ...
最新文章
- 杭电1325java实现
- 【Django】基于Django架构网站代码的目录结构---转载
- maven 配置文件 settings.xml
- Android开发之EditText无法获取光标的问题
- mysql 执行计划不对_MySQL执行计划显示与执行过程不符合
- 单片机与嵌入式的关系,单片机是嵌入式的子类
- 解决办法——Qtdemo软件无法加载example的问题
- 微分方程模型_MIT—微分方程笔记03 一阶线性常微分方程解法
- WORD2010文档里面突然不能输入汉字的解决办法
- deepin恢复出厂_初始化 - deepin Wiki
- openwrt之使能WPA3加密方式
- cadence 旋转快捷键_cadence常用快捷键自己总结
- Educational Codeforces Round 132 (Rated for Div. 2) 题解(A~D)
- 结对编程java实现四则运算(张铭 吴昊)
- 考研英语 长难句训练day65
- 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
- 表情包可视化编辑、生成配置信息数据工具
- 苹果计算机单位说明书,手把手教你用苹果电脑玩转办公
- 【技术美术】贴图、纹理、材质的区别
- 日志审计系统的基本原理与部署方式