背景

最近开发微信公众号相关接口,在这里记录下微信公众号相关各项功能的实现。

先决条件

1、一台可部署web服务的服务器或者云平台(本地可以搞个花生壳域名)。

2、一个可以正常使用的微信公众账号,开始的时候使用它的测试号。

3、Visual Studio 2019

开发步骤

采用Web API项目作为微信公众号后台服务。

1、成为微信公众号开发者

这一步很简单,只要在微信公众号后台的开发者中心同意协议即可,同意之后页面如下:

2、服务器配置

登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码。

3、回调代码实现

[HttpGet][ActionName("CallBack")]public HttpResponseMessage WetChatVerify(HttpRequestMessage content){string echostr = (from kvp in content.GetQueryNameValuePairs()where kvp.Key == "echostr"select kvp.Value).FirstOrDefault();var postModel = GetPostModel(content);if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)){var result = new StringContent(echostr, UTF8Encoding.UTF8, "application/x-www-form-urlencoded");var response = new HttpResponseMessage { Content = result };return response; //返回随机字符串则表示验证通过}else{var result = new StringContent("failed:" + postModel.Signature + "," + Senparc.Weixin.MP.CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。", UTF8Encoding.UTF8, "application/x-www-form-urlencoded");var response = new HttpResponseMessage { Content = result };return response;}}

这里我们使用Senparc.Weixin SDK。

这样在我们填入我们服务器端API地址后,就能够顺利搞定服务器配置,绑定微信公众号后台了。

总结

成为开发者后,用户每次向公众号发送消息、或者产生自定义菜单、或产生微信支付订单等情况时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应,如回复消息。

Web API实现微信公众平台开发-服务器验证相关推荐

  1. Web API实现微信公众平台开发-接收数据Post

    介绍 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上.在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在 ...

  2. 微信公众号接入web服务器,asp.net Web API 接入微信公众平台验证服务器,接收微信发送的POST请求...

    验证签名,接入微信公众平台:不能直接返回String,直接返回String微信服务器不接受. // GET: api/checkSignature/5 public HttpResponseMessa ...

  3. 微信公众平台开发(5)--验证消息的确来自微信服务器

    点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 前言 2. 构建项目 2.1 构建SpringBoot项目 2.2 编写配置文件 2.3 编写启动类 3 ...

  4. 基于java的微信公众平台开发(一)--账号申请与服务器的搭建

    2019独角兽企业重金招聘Python工程师标准>>> 微信公众号开发文档:https://mp.weixin.qq.com/wiki 微信公众平台接口调试工具:https://mp ...

  5. 微信公众平台开发入门教程(1)-百度云服务器和微信公众服务器注册申请

    第一篇 申请服务器资源 创建百度云应用 申请账号 我们使用百度云空间作为服务器资源,并且申请PHP环境+MySQL云数据库作为程序运行环境. 申请地址:http://developer.baidu.c ...

  6. Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能

    在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities ...

  7. 微信公众平台开发:JS API支付

    本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请 ...

  8. 微信公众平台开发(3)--成为开发者并购置服务器环境

    点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 前言 2. 成为开发者 3. 服务器 4. 微信对服务器的要求 5. 内网穿透 6. 小结 1. 前言 ...

  9. 微信不会把关注取消事件推送给服务器,微信公众平台开发关注及取消关注事件的方法...

    微信公众平台开发关注及取消关注事件的方法,微信,公众,平台,开发,关注,及,取消,事件,的 微信公众平台开发关注及取消关注事件的方法 易采站长站,站长之家为您整理了微信公众平台开发关注及取消关注事件的 ...

最新文章

  1. “九”答不可 | 量子保密,完美无缺?
  2. MyBatis学习总结(五)——实现关联表查询
  3. python判断英文
  4. C++中的 :: 用法
  5. 为什么有时优盘是只读模式_JS专题之严格模式
  6. vue中实现国际化--语言切换(转载)
  7. select和其元素options
  8. C++ 优先级队列(priority_queue)
  9. 机器学习算法——神经网络6(SOM网络)
  10. c语言课程设计报告万年历,c语言课程设计报告-万年历系统.doc
  11. 西门子em235模块的功能_与其研究人工智能不如研究可编程控制器之德国西门子PLCS7200...
  12. 计算机网络教程第五版|微课版 - 第四章 网络层 - 重点概念【补充】
  13. scrapy爬取《坏蛋是怎样练成的4》
  14. 小象学院 零基础Python入门 案例四 52周存钱挑战v_4.0
  15. php获取扫描枪数据,条码扫描枪的读取技巧
  16. Excel 根据序号分组
  17. hivesql失败告警发送到企业微信
  18. 黑客丛林之旅--全攻略学习(详细)
  19. Nvidia Jetson Nano刷机保姆级教程
  20. 国产软件曝光美国51区真相 UFO?天坑?荒漠神秘圆圈?

热门文章

  1. android通过代码设置铃声_第六十四回:Android中UI控件之SeekBar
  2. ReactDom.render和React.render的区别
  3. 【模拟】【codeforces】599B Spongebob and Joke
  4. Codeforces Round #323 (Div. 1) B. Once Again... 暴力
  5. centos php7 apcu,centos php5.4 升级 php7
  6. 如何提高gps精度_如何在锻炼应用程序中提高GPS跟踪精度
  7. c#写字板实现加粗功能_Windows 7中写字板和绘画中的新功能
  8. 看着手机会让您晕眩吗? 禁用动画
  9. 219. 单页应用 会话管理(session、cookie、jwt)
  10. 1. ReactJS基础(开发环境搭建)