微信第三方平台全网发布流程

2023-05-16

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35829542/article/details/52162413
1 发布前阅读

    【消息加解密接入指引】https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318479&lang=zh_CN
    【全网发布指引】https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&lang=zh_CN


2 加解密

加解密按【消息加解密接入指引】文档操作即可,需注意的是如果是java环境,替换jdk ${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar


3 发布修改流程

    因为是全网发布检测,只要通过一次就行了,而且不能影响正常流程,所以代码加上判断是否是 gh_3c884a361561 发来的事件或消息。

3.1 配置公众号消息与事件接收URL

检测流程前三步都是通过此URL接口接受消息的,如图:
这里写图片描述
3.2 step 1

    模拟粉丝触发专用测试公众号的事件,并推送事件消息到专用测试公众号,第三方平台方开发者需要提取推送XML信息中的event值,并在5秒内立即返回按照下述要求组装的文本消息给粉丝。

    判断是 gh_3c884a361561 发来的事件
    解密收到的消息
    拼装Content: event + “from_callback” (假定event为LOCATION,则Content为: LOCATIONfrom_callback)
    设置文本消息,如:

<xml>
  <ToUserName><![CDATA[ozy4qt0Rsc9YJzR5nEeVAaTHg9DQ]]></ToUserName>
  <FromUserName><![CDATA[gh_3c884a361561]]></FromUserName>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[LOCATIONfrom_callback]]></Content>
  <CreateTime>1470707436932</CreateTime>
</xml>
<!-- 需注意两点,1. 从接收消息中拿到的toUser跟fromUser塞到回复文本消息时需互换;2.回复的文本消息必须需要这五个字段,且MsgType是 text -->

    1
    2
    3
    4
    5
    6
    7
    8

    加密, 其中timestamp跟nonce可以自主生成
    return

3.3 step 2

    模拟粉丝发送文本消息给专用测试公众号,第三方平台方需根据文本消息的内容进行相应的响应:

    判断是 gh_3c884a361561 发来的消息且消息包含 TESTCOMPONENT_MSG_TYPE_TEXT
    解密收到的消息
    拼装Content:TESTCOMPONENT_MSG_TYPE_TEXT_callback
    设置消息,加密跟注意事项跟step 1一样,这里不赘述。
    return

3.4 step 3

    模拟粉丝发送文本消息给专用测试公众号,第三方平台方需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝

    判断是 gh_3c884a361561 发来的消息且消息包含 QUERY_AUTH_CODE
    解密收到的消息
    根据QUERY_AUTH_CODE获取授权公众号的authorizer_access_token。具体怎么获取可以查看第三方平台接入文档
    查看微信|公众平台开发者文档的客服消息 http://mp.weixin.qq.com/wiki/11/c88c270ae8935291626538f9c64bd123.html
    使用http请求post https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=authorizer_access_token
    设置请求body:

{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}
# OPENID 替换为: 接受都消息中的 `FromUserName`
# content设置为:$query_auth_code$_from_api(其中$query_auth_code$需要替换成推送过来的query_auth_code)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    return “”, 返回空串

注:第5/6两步建议使用线程异步处理,主线程在获取完authorizer_access_token就直接返回空串。流程控制在5s内完成,否则通不过检测。
3.5 step 4

    模拟推送component_verify_ticket给开发者,开发者需按要求回复(接收到后必须直接返回字符串success)

此步骤不多赘述,具体怎么处理可以查看第三方平台接入文档


4 问题与解决
4.1 消息回复不正确

缺少 导致, 原因是使用对象转xml,这个字段放父类里边了,生成xml时丢了。
4.2 客服消息不成功

不成功主要是处理逻辑时间太长了,解决方法是在上次检测把authorizer_access_token记录下来, 这次检测的时候不走获取这个token的流程,这样节省不少时间。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信第三方平台全网发布流程 的相关文章

  • 「最全」电子元器件图片、名称、符号图形对照(精编请收藏)

    点击上方 大鱼机器人 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 xff01 一 电阻系列 电阻器 xff08 Resistor xff09 是一个限流元件 xff0c 用字母R来表示 xff0c 单位为欧姆 将
  • Karto_slam跑激光雷达(北阳ust-10lx下一篇介绍使用)

    0 当前配置 Ubuntu 16 04ROS KineticOpencv 3 4 1Ceres solvergcc version 5 4 0 20160609 g 43 43 Eigen3 G2O 1 前言 本人当下在学习slam kar
  • 串级PID控制四轴飞行状态-分析

    参考网页 xff1a http blog csdn net nemol1990 article details 45131603 一 概念 单极PID xff1a 当你知道系统当前状态和期望状态后 xff0c 如何将系统从当前状态调整到期望
  • Ubuntu18.04安装Nvidia显卡驱动,CUDA+CUDNN,完整Qt,编译安装OpenCV4.1.1 with CUDA and Qt

    目录 N卡无法开机问题一 安装Nvidia显卡驱动1 禁用安全引导2 禁用默认驱动程序3 添加Nvidia驱动源4 安装驱动 二 安装CUDA和CUDNN1 下载2 安装3 配置环境变量4 测试CUDA5 下载 xff0c 安装CUDNN
  • 纯C语言实现仿C++STL泛型链表

    声明 本代码完全开源 xff0c 可以用于任意用途 xff0c 但代码并未做完善的测试 xff0c 性能也不能保障 xff0c 主要用于初学者学习 源码链接 xff1a GitHub 一 原理 普通的单向链表的原理就是一个节点存储着数据和指
  • Ubuntu上使用CLion开发STM32,并使用JLink下载、调试

    目录 一 环境准备二 下载STM32CubeMX固件库三 使用STM32CubeMX创建工程四 CLion配置五 CMake简单操作和添加DSP库CMake简单操作添加DSP库 五 调试时查看外设寄存器 六 使用JLinkGDBServer
  • C++进阶——STL源码之迭代器(iterators)

    STL迭代器 在 STL 编程中 xff0c 容器和算法是独立设计的 xff0c 即数据结构和算法是独立设计的 xff0c 连接容器和算法的桥梁就是迭代器了 xff1a 迭代器是一种行为类似指针的对象 xff0c 而指针的各种行为中最常见也
  • C++基础——STL常见问题总结

    1 STL由哪些组件组成 容器 xff08 Containers xff09 xff1a 各种数据结构 xff0c 如 xff1a vector list deque set map 用来存放数据 从实现的角度来看 xff0c STL容器是
  • private static final long serialVersionUID = 1L 干什么的?

    private static final long serialVersionUID 61 1L xff1b 是定义以一个序列号 java源码里有大量的类都有这么一个序列号 目的就是把java对象序列化而后进行保存 java的序列化机制式通
  • 协议:PELCO-D

    PELCO D的功能是用于矩阵和其它设备之间的通信协议 基本信息 数据格式 xff1a 1位起始位 8位数据 1位停止位 xff0c 无校验位 波特率 xff1a 2400B S 命令格式 字节1 字节2 字节3 字节4 字节5 字节6 字
  • 9年FPGA工作经验,转行了,苦海无涯……

    整理 xff1a 付斌 xff0c 内容来自网络 01 9年峥嵘岁月 我很少说话 xff0c 因为怕被人鄙视 工作了9年的fpga xff0c 总要总结 其实说我的fpga经验 xff0c 也是一坨屎 三年的 xff0c 用altera的c
  • GPS-RTK

    一点一点的补充吧 背景 1 xff0e 各种控制测量传统的大地测量 工程控制测量采用三角网 导线网方法来施测 xff0c 不仅费工费时 xff0c 要求点间RTK 在工程测量的应用通视 xff0c 而且精度分布不均匀 xff0c 且在外业不
  • 浅谈栈帧

    一 什么是栈帧 xff1f 什么是栈帧 xff0c 首先引用百度百科的经典解释 xff1a 栈帧也叫过程活动记录 xff0c 是编译器用来实现过程 函数调用的一种数据结构 实际上 xff0c 可以简单理解为 xff1a 栈帧就是存储在用户栈
  • madVR+potplay 基本设置

    ctrl 43 j 调出 madvr 的OSD菜单 如下图 xff1a 如何设置 madVR 10bit 输出 xff1a 1 确保视频源是10bit 源 2 显示器设置 如下 xff1a 3 渲染设置如下 xff1a 设置完成 xff0c
  • 4.jetson更换python版本

    问题与背景 jetson自带的python版本是3 6 9 xff0c 太老旧了 xff0c 希望更换python版本 尝试替换成python3 7的版本 但是在未替换之前 xff0c 已经装了pip3了 xff0c 是否pip3会与pyt
  • char数组和指针的区别

    一个简单的字符分割函数引发的思考 char SegStr1 const char pSrc int n int nLen 61 strlen pSrc char ptrSrc 256 61 0 char pSeg 61 ptrSrc for
  • 舒尔补理论Schur Compliment

    在做slam的时候经常遇到的一个概念就是schur complement xff0c 了解这个概念 xff0c 对于理解slam的优化过程也会有很大的帮助 xff1b 首先给出的是舒尔补的定义 xff1a 舒尔补的由来其实就是将一个矩阵变成
  • 用CubeSLAM跑自己的数据集

    针对CubeSLAM本博客内容如下 xff0c 主要是阅读论文和代码的一些结果总结 xff0c 还有一部分总结未完成 xff0c 同样使用或者对语义slam感兴趣有经验的欢迎交流 xff0c 该博客后面也会不段更新cubeslam在自己的数
  • mipi接口的摄像头驱动并发布话题

    情况 需要跑ORBSLAM 之前一直使用USB接口的相机 打开摄像头一般使用的是ROS下的usb cam node进行驱动 采集图像并发布成topic的形式 或者使用opencv的videoCapture进行图像的捕捉 因为某些原因需要将u
  • 正确使用StereoRectify

    双目矫正的使用 cv fisheye StereoRectify 函数 主要用于对双目图像做出矫正 计算出用于立体矫正的参数 具体的使用方法如下 void cv fisheye stereoRectify InputArray K1 Inp

随机推荐

  • Eigen问题解决:eigen_assert_exception’ is not a member of ‘Eigen’

    很意外地遇到一个Eigen相关的错误 xff1a usr local include eigen3 Eigen src Core products Parallelizer h 162 40 error eigen assert excep
  • 2020年大学生电子设计竞赛,又来了!

    不知不觉 xff0c 又临近5月份 xff0c 疫情下的各个比赛活动都受到了影响 xff0c 今年是偶数年 xff0c 暑期应该是各个省份的电子设计竞赛比赛之时 还有三四个月 xff0c 有想参加的比赛的同学应该可以提前准备了 关于比赛的帖
  • Kalibr源码学习(一): 重投影误差

    Kalibr源码学习 一 重投影误差 给自己挖一个大坑 从标定结果来学习Kalibr的标定源码 这里基本以KB模型为例 也就是标定时 kalibr的模型设定为 model pinhole equi 这里以重投影误差开始 希望能坚持 重投影误
  • OpenCV入门: Mat数据类型及其转换,访问

    1 总结 先贴上我总结的Opencv的数据类型 主要是针对不同Mat类型进行新建 修改和访问时使用 更详细的数据访问见下文 2 CV 8UC3解说 新建一个CV 8UC3型的cv Mat 其中U代表了unsigned char型的数据 其表
  • Opencv单目标定flag的设定

    1 flag中的标签顺序 xff1a 在代码中的对应如下 xff1a enum CALIB USE INTRINSIC GUESS 61 1 lt lt 0 CALIB RECOMPUTE EXTRINSIC 61 1 lt lt 1 CA
  • 队列的基础知识及实现方法

    队列 在网上又看到关于队列的知识点 xff0c 有很多 xff0c 但都比较琐碎 xff0c 有的还有些错误 xff0c 为方便自己理解 xff0c 特整理出一篇 xff0c 顺便也加强记忆 xff1b 当然 xff0c 也附上我参考的博客
  • sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

    应该是之前的误操作 导致sudo不能正常的使用 每次输入sudp 都会提醒 sudo xff1a usr bin sudo 必须属于用户 ID 0 的用户 并且设置 setuid 位 这是因为我之前修改了usr的权限 将usr整个文件夹的权
  • VS2015 调试代码时写入位置时发生访问冲突

    前一段时间写一个工程 xff0c 调用自己写的一个库 xff0c 编译成功 xff0c 执行时发生了访问冲突 xff1b 当时觉得很好奇 xff0c 这个库不是第一次调用 xff0c 之前调用过很多次都没有问题 xff0c 偏偏这次出现了访
  • GIT代码管理: git remote add

    这里主要以 如何将一份已经写好的代码提交到两个git远端 为例 xff0c 更好地理解git remote add这句 xff1b 首先要明白一句代码的意思 xff0c 以github最经常的提示为例 xff1a 在这张图面里git ini
  • 强化学习PPO算法的思路流程

    首先可以肯定的是PPO算法是基于actor critic框架的 xff0c 但是它又含有强烈的Policy Gradient的风格 本文仅介绍PPO算法的应用流程 通常PPO算法的实现中有三个network xff0c 一个critic n
  • ubuntu 查看usb设备

    原文地址 xff1a https zhidao baidu com question 1823163553720250108 html 感谢原作者分享 查看 USB 设备 使用的是哪个串口 ls l dev ttyUSB 查看 USB 设备
  • 惯导姿态角的解释和固定的变换公式

    psi tr jk 61 atan2 2 q 2 q 3 43 q 1 q 4 1 2 q 3 q 3 2 q 4 q 4 theta tr jk 61 asin 2 q 1 q 3 q 2 q 4 gamma tr jk 61 atan2
  • 这是我的C语言入门笔记。

    c语言入门 C语言一经出现就以其功能丰富 表达能力强 灵活方便 应用面广等特点迅速在全世界普及和推广 C语言不但执行效率高而且可移植性好 xff0c 可以用来开发应用软件 驱动 操作系统等 C语言也是其它众多高级语言的鼻祖语言 xff0c
  • matlab randn函数产生高斯随机噪声

    randn N 1 就是产生服从方差为1 xff0c 均值为0 xff08 即N 0 1 xff09 的Gaussian分布的NX1随机 噪音矩阵 xff0c 根据Gaussian概率密度函数的特性 xff0c 产生均值为5 xff0c 标
  • socket 发送结构体数据

    Socket中的send函数可以发送字符串 xff0c 但不能直接发送结构体 xff0c 因此在发送端先把结构体转成字符串 xff0c 然后用send发送 xff0c 在接收端recv字符串 xff0c 再转换成原先的结构体 xff0c 这
  • printf()函数详解

    感谢博主的分享 xff1a https me csdn net blog K346K346 1 printf 简介 printf 是C语言标准库函数 xff0c 用于将格式化后的字符串输出到标准输出 标准输出 xff0c 即标准输出文件 x
  • 导航系统中常用坐标系

    转自 xff1a 阿元老师UJN的博客 http blog sina com cn xywatersky 1 地心惯性坐标系 xff08 简称i系 xff09 OXiYiZi xff1a 原点在地球中心 xff0c 它不参与地球自转 xff
  • mavlink模块中接收offboard模式下的mavlink消息流

  • 本地SVN服务器的搭建(WINDOWS环境)

    1 下载安装 VISUALSVN SERVER 1 1下载地址 xff1a https www visualsvn com server download 1 2下载完成后 xff0c 双击安装 2 下载安装 TortoiseSVN 1 1
  • 微信第三方平台全网发布流程

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net weixin 35829542 art