文章说明:是公众号使用自己服务器的处理的其中一篇关注二维码信息处理

1、流程

1.1 需知

   全局返回码:这个必须要哦。不然调试的时候接口出的错误怎么处理呢。

  (闲话:博客的随笔只能添加也给超链呀,‍。不过找到办法了,麻烦了点)

  设置公众号的处理服务器(这里指的是你自己的服务器)

    服务器接收需要域名哦。不能用ip

    

1.2 获取基本信息

  appid:开发者ID

  secret:开发者密码(AppSecret)

  token:自己设置的Token

  EncodingAESKey:解密的时候需要用到的

  access_token:接口调用凭证,有效期为2小时,也就是7200秒。

    获取方式:根据appid和secret获取的临时token。调用方式如 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}

  expires_time:调用凭证有效期。诺,就上面是7200秒

    获取方式:诺,上面这个链接返回的信息

 1.3 搭建

  -----------------前端begin--------------------------------------------------------------------------------------------------

  一、先获取access_token。保存下,7200秒后刷新,代码在别的文章中贴入

  二、生成关注的二维码。使用https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}

  三、qrcode/create 返回的信息,

    错误信息:{"errcode":40001,"errmsg":"invalid credential, access_token is inv..}

    正确信息:{”ticket“:"gQHZ7zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbO9xLzAyZZJpZUji3YNhdV8xcnBiN2h2MVkAAgSBiUdfAwRYAgAA"} //一大串

  四、拿到ticket后使用链接拼接参数直接得到图片。 https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=一大串。

  五、页面<img src="四中的链接">得到图片,就可以扫描关注公众号了。

  -----------------前端end--------------------------------------------------------------------------------------------------

  -----------------后端begin--------------------------------------------------------------------------------------------------

  前言:微信公众号返回的信息是用post方式返回xml

     写这玩意,postman的这种接口工具还是得有吧。

  一、本帝是用ashx接收的。这玩意必须得每一步加日志,不然贼坑。代码别的文章贴

  二、开始解说代码。获取请求类型HttpContext.Current.Request.HttpMethod,做个初步筛选。

    加个日志,log+="\r\n请求类型:post";log+="\r\n请求时间:"+datetime.now.tostring()

  三、获取下传输类型(这个地方不做类型筛选也行,做了筛选感觉安全点,哈哈)

    log += "传输类型:" + context.Request.ContentType;

    //微信用的传输类型是text/xml postman工具用的是application/xml

    (闲话:这里贼坑哥哥我一点时间,giao,还好我写上日志测)

  四、读取数据

    Stream stream = context.Request.InputStream读取就不说了

    log += "读到密文了:" +postdata;

    (密文的格式xml:两个节点。ToUserName和Encrypt

      ToUserName:自个的appid

      Encrypt:这个当然是密文啦)

  五、密文解析。在后面的这个链接中 我是密文示例链接 搜索示例下载。可以下载官方解密示例(包括 PHP、Java、C++、Python、C#)

    解密示例:要用到token(自己设置的那个)、appid、EncodingAESKey(这个老哥终于有用处了)

    调用c#示例(其他语言示例我不知道)中的WXBizMsgCrypt。

    WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sAppID);

    int ret = wxcpt.DecryptMsg(密文, ref sMsg);

    sMsg就是解密后的明文啦。(明文不是铭文,王者中毒的可以回过神来了)

    加个日志;log+="/r/n明文:"+sMsg;

  六、得到明文后,还是xml嘛——>解析成类嘛——>类的结构参照后面链接,或者xml的明文结构。得到,看下链接中的文档中关注/取消关注事件,我是事件链接

    Event参数。判断是关注的,还是未关注。然后就是业务处理

  七、我是信息返回文档链接 。信息返回。如果不想返回任何信息的话,直接HttpContext.Current.Response.Write("");

    有信息的话。

    注意事项:①先拼接xml,最好拼接,拼接,因为快速便捷。避免了xml的转换自带头信息,xml头信息处理了也行。

          ②回复的ToUserName和FromUserName和接收的ToUserName、FromUserName不一样。翻译下就是:ToUserName(接收者)、FromUserName(发送者)

          接收的ToUserName:自个的appid

          接收的FromUserName:用户的openid

          回复的ToUserName:要回复给谁的,用户的openid

          回复的FromUserName:自个的appid

  -----------------后端end--------------------------------------------------------------------------------------------------

作者:博客园-兮去

C#微信公众号关注二维码生成、密文方式的更多相关文章

  1. 通过微信公众号ID生成公众号的二维码

    username为公众号id http://open.weixin.qq.com/qr/code/?username=wyjiaolian

  2. NodeJs 开发微信公众号(二)测试环境部署

    由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的.加上用了mui框架(纯css界面)和自己积累的代码,很快地开发出了界面来.接着是后台开发.卤煮选的是n ...

  3. VopSdk一个高逼格微信公众号开发SDK(源码下载)

    看之前回复很多说明大家很有热情&文章被误删掉了,不想让有的朋友错失这个高逼格的东西,现在重新发布,这次就直接放出源码,文章最末下载地址. 看之前回复很多说明大家很有热情&文章被误删掉了 ...

  4. spa(单页应用)中,使用history模式时,微信长按识别二维码在ios下失效的问题

    spa(单页应用,vue)中,使用history模式时,微信长按识别二维码在ios下失效的问题. 触发条件: spa单页应用: 路由模式 history 从其他页面跳转到带有微信二维码识别的页面(不是 ...

  5. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  6. springboot微信支付,支付二维码生成

    https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 微信扫码支付开发者文档,里面会有支付流程的教程 接口链接 URL地址:htt ...

  7. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  8. Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能

    现在扫描二维码已经很普遍,微信扫一扫即可,但是如果二维码是在自己的手机上呢?那就要用到微信里的一个功能了,手指长按二维码,会弹出自动识别的选项,点确定就可以看到二维码的内容了.那么怎么通过前端实现这个 ...

  9. 微信小程序获取二维码(直接上代码)https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

    应为是直接返回二进制数据所有与其他接口些许差别,希望能帮助现在的你! 谢谢!!!    /** * 37.微信二维码生成 */ public String getWeiXinCourseMap() { ...

  10. 微信长按识别二维码,在 vue 项目中的实现

    微信长按识别二维码是 QQ 浏览器的内置功能,该功能的基础一定要使用 img 标签引入图片,其他方式的二维码无法识别. 在 vue 中使用 QrcodeVue 插件 demo1 在 template ...

随机推荐

  1. 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  2. day40-网络编程02

    Java网络编程02 4.TCP网络通信编程 基本介绍 基于客户端--服务端的网络通信 底层使用的是TCP/IP协议 应用场景举例:客户端发送数据,服务端接收并显示控制台 基于Scoket的TCP编程 ...

  3. Java套接字实现应用程序对数据库的访问

    最近在完成软件体系结构上机实验时,遇到一个有点点小难度的选做题,题目信息如下: 利用套接字技术实现应用程序中对数据库的访问.应用程序只是利用套接字连接向服务器发送一个查询的条件,而服务器负责对数据库的 ...

  4. Spring 后置处理器【1】

    Spring 后置处理器[1] 简单介绍 一句话:bean 在初始化前或初始化后的瞬间,我自己添加一些业务逻辑 bean 后置处理器类的内容 简单代码 package com.hspedu.sprin ...

  5. Kibana使用仪表盘汇总数据(Dashboard)

    仪表板可用于集中管理和分享可视化控件集合.构建一个仪表板用以包含您在本教程中已保存的可视化控件,方法如下: 1.在侧边导航栏点击 Dashboard . 2.点击 Add 显示已保存的可视化控件列表. ...

  6. 苹果手机安装郑好办手机app后给绿城通公交卡充值的步骤

    1.苹果手机,需要带有NFC功能 苹果XS手机该功能默认是开启的,不用额外的其他操作 苹果11该功能需要设置开启才行.步骤:设置--通用--NFC,然后开启 2,公交卡 如下这种的公交卡可以充值: 如 ...

  7. Docker容器获取宿主机信息

    最近在做产品授权的东西,开始宿主机为Window,程序获取机器硬件信息相对简单些,后来部署时发现各种各样的的环境问题,所有后来改用dokcer部署,docker方式获取宿主机信息时花了些时间,特此记录 ...

  8. NSIS检测到窗口最小化闪烁提示

    #检测到窗口为最小化时闪烁提示 !include nsDialogs.nsh #编写:水晶石 Name "IsIconic Example" OutFile "IsIco ...

  9. PHP全栈开发(三):CentOS 7 中 PHP 环境搭建及检测

    简单回顾一下我们在(一).(二)中所做的工作. 首先我们在(一)中设置了CentOS 7的网络. 其实这些工作在CentOS 6中都是很容易的,因为有鸟哥的Linux私房菜这样好的指导. 但是这些操作 ...

  10. POJ2533 Longest Ordered Subsequence (线性DP)

    设dp[i]表示以i结尾的最长上升子序列的长度. dp[i]=max(dp[i],dp[j]+1). 1 #include <map> 2 #include <set> 3 # ...