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勤勤学长相关推荐

  1. 美团外卖开放平台对接经验总结(一)

    美团外卖开放平台对接经验总结(一) 2017-06-21  司想君  司想君 两个月的时间,在除官方文档之外的资源极其匮乏的条件下,项目组群策群力完成了美团和饿了么的外卖开放平台对接,在这里对团队成员 ...

  2. 山东大学RISC-V公共开放平台开发记录3

    山东大学RISC-V公共开放平台开发记录 RISC-V编译 2 编译优化策略 2.1 RISC-V GCC工具链的(–mcmodel=)选项 目前RISC-V GCC工具链认为,在实际的情形中,一个程 ...

  3. 山东大学RISC-V公共开放平台开发记录5

    山东大学RISC-V公共开放平台开发记录 4移植Linux操作系统 4.1移植前相应知识 4.1.1特权等级与操作系统的关系 现代操作系统(如Linux.Windows等)为了权限的区分都区分为用户态 ...

  4. 比亚迪智慧开放平台开发记录

    比亚迪智慧开放平台开发记录 前言 注册账号 SDK和API文档下载 项目运行 安装AVD模拟器 启动AVD模拟器 BYD车机数据模拟器(ApiSimulator) 结尾 前言 最近在做一个比亚迪开发平 ...

  5. PHP美团开放平台开发记录,美团外卖,第一步授权演示及错误提示:获取门店出错(3)解决方法

    他居然没有php的sdk!也不像饿了么提供授权地址,授权完成直接把相关信息提交到回调地址. 门店映射接入参数 https://developer.meituan.com/openapi#4.1.2 数 ...

  6. 美团外卖Android平台化的复用实践

    美团外卖平台化复用主要是指多端代码复用,正如美团外卖iOS多端复用的推动.支撑与思考文章所述,多端包含有两层意思:其一是相同业务的多入口,指美团外卖业务需要在美团外卖App(下文简称外卖App)和美团 ...

  7. 美团外卖广告平台化的探索与实践

    随着美团外卖业务不断发展,外卖广告引擎团队在多个领域进行了工程上的探索和实践,目前已经取得了一些成果.我们计划通过连载的形式分享给大家,本文是<美团外卖广告工程实践>专题连载的第一篇. 本 ...

  8. 支付宝开放平台开发助手_支付宝:如何创建和接入支付宝电脑网站支付-新手必备...

    1.登录支付宝 1.打开支付宝官网,以"我是支付宝商家"用户登录 https://www.alipay.com/ 2.进入"产品中心",选择并申请支付类型 2. ...

  9. 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单

    微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单  技术qq交流群:JavaDream:251572072 ...

最新文章

  1. 杭电1325java实现
  2. 【Django】基于Django架构网站代码的目录结构---转载
  3. maven 配置文件 settings.xml
  4. Android开发之EditText无法获取光标的问题
  5. mysql 执行计划不对_MySQL执行计划显示与执行过程不符合
  6. 单片机与嵌入式的关系,单片机是嵌入式的子类
  7. 解决办法——Qtdemo软件无法加载example的问题
  8. 微分方程模型_MIT—微分方程笔记03 一阶线性常微分方程解法
  9. WORD2010文档里面突然不能输入汉字的解决办法
  10. deepin恢复出厂_初始化 - deepin Wiki
  11. openwrt之使能WPA3加密方式
  12. cadence 旋转快捷键_cadence常用快捷键自己总结
  13. Educational Codeforces Round 132 (Rated for Div. 2) 题解(A~D)
  14. 结对编程java实现四则运算(张铭 吴昊)
  15. 考研英语 长难句训练day65
  16. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
  17. 表情包可视化编辑、生成配置信息数据工具
  18. 苹果计算机单位说明书,手把手教你用苹果电脑玩转办公
  19. 【技术美术】贴图、纹理、材质的区别
  20. 日志审计系统的基本原理与部署方式

热门文章

  1. Quake4的gui
  2. 17. 面向对象基础
  3. 荣耀9i 鸿蒙,荣耀9i和荣耀9青春版哪个好 哪个性价比更高?
  4. FFmpeg连载3-视频解码
  5. 平面图之HTML5、Canvas、SVG
  6. 小程序--民宿(首页(房屋列表、房屋详情)、订单(订单列表、详情)、个人中心(登录、优惠券))
  7. 百度助力首届国际青少年编程竞赛,05后小学生成为“AI新秀”
  8. html从入门到精通前锋,神武3从入门到精通,少主全方面养成攻略
  9. 互联网公司八卦|2022-02-21
  10. 3GPP 5G Security