【微信服务号开发】01.接入指南
前言
当作为小白,来开发微信的时候,只依据官方文档来开发是很痛苦的,怎么配置,怎么编写代码文件,怎么让映射到外网访问,问题很多,比较痛苦。
下面内容来解决这些痛点,有不懂的问题,可以在下面留言评论哦。
会出一系列的【微信服务号开发】详细文章,敬请关注!
接入指南
接入微信公众平台开发,开发者需要按照如下步骤完成:
1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑
详细实现
第一步:填写服务器配置
登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。
同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档。
第二步:微信开发测试号登陆地址
- 登录测试号
http://mp.weixin.qq.com/debug...
http://stark.ngrok.wdevelop.c...
stark
第三步: 填写接口配置信息
填写 URL
此处填写一个外网可以访问的接口,必须是80端口,就是url后面不能跟其他自定义端口。
当我们点击底下提交按钮的时候,微信会像这接口发送一个get请求
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
填写 token
token 随便填写,但是要和代码中的token保持一致
第四步 验证的URL接口php代码实现
我们创建一个wx.php 文件,最后把这个文件外网映射出去,可以让微信访问。
- 注意 :
$token = 'stark'; //这的token 和 上面填写的保持一致
- wx.php 文件实现
<?php
function checkSignature()
{$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = 'stark'; //这的token 和 上面填写的保持一致$tmpArr = array($token,$timestamp, $nonce);// 1)将token、timestamp、nonce三个参数进行字典序排序sort($tmpArr, SORT_STRING);// 2)将三个参数字符串拼接成一个字符串进行sha1加密$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );// 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信if( $signature == $tmpStr ){//成功后输出一个随机字符串echo $_GET['echostr'];return true;}else{echo 'faild';return false;}}checkSignature();
第五步:让上面的文件外网映射
使用ngrok
下面提供ngrok服务文件
加入qq群号码:205366897 下载ngrok服务
把下载的ngrok文件解压,进入文件里面
安装shift 右键 会出现 在此处打开命令行(就是打开了cmd 一定要在 在cmd 里面执行 不能使用 git bash)
在打开的窗口里面输入 :
ngrok -config=ngrok.cfg -subdomain stark 80
如果出现这个错误,说明这个子域名 被别人占用
如果出现这个图片,证明 开启成功
其中 stark 是子域名,只能唯一,你要改成自己定义的,如果别人使用了这个域名你就不能使用了
这样就把本地的80端口映射到外网
映射之前,必须在本地启动一个80端口
我们使用xampp 工具做本地的web服务器启动,自己去下载。
第六步:最后填写好配置
第七步:最后点击接口配置的提交按钮
如果显示配置失败,证明这个接口配置失败
如果出现以下配置,证明配置成功
【微信服务号开发】01.接入指南相关推荐
- 微信服务号开发的完整人性化版攻略
前言: 本次要讲述的是一个本人完整微信服务号开发的经验分享,微信服务号的作品:请搜索微信号:zjaisino,名称:爱信诺Aisino一站式服务平台.(这里声明,这不是打广告,只是为了方便各位开花攻城 ...
- 微信服务号开发-获取用户位置信息
微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...
- Springmvc集成jfinal微信 微信服务号开发
最近研究微信服务号开发,发现jfinal家封装的SDK还是不错的,于是就定下来用它了. 那么问题来了:git上有demo,那么如何集成到自己的项目中呢?研究研究呗.我们框架使用的是springmvc, ...
- 微信服务号开发时获取授权遇到的问题
1.问题 (遇到的问题)微信服务号开发时获取授权遇到的问题 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint: [59FKq ...
- 微信服务号开发-整合微信支付
最近的项目在对接微信支付,所以抽出一些时间,将方法总结一下: 欢迎加群交流:724225958 官方开发文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi. ...
- 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码
因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...
- 微信服务号开发----创建个性化菜单
官方链接http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html 1.目的:让公众号的不同用户群体看到不一样的自定义菜单 ...
- [转载]微信公众号开发 [01] 入门基本流程
1.公众号的类别和注册 1.1 公众号类别 微信公众号目前有三种,订阅号.服务号.企业号,另外还有一种后来推出的和公众号带点关系的小程序. 订阅号.服务号和企业号的功能区别如下(更多详细区别戳参考链 ...
- 200.微信公众号开发【接入】
第一步:申请微信公众号 https://mp.weixin.qq.com/ 注意,个人只能选择订阅号 这里需要注意,要用一个绑定了银行卡的微信号扫码才能注册. 第二步:公众号开发环境准备 需要一个微信 ...
最新文章
- Protocol Buffers简明教程
- 【杂项】SVN服务器的本地搭建和使用
- 如何优雅的设计 Java 异常
- ffmpeg 声音参数_ffmpeg转换参数和压缩输出大小的比率
- [图神经网络] 图神经网络GNN基础入门
- Leetcode(11)-盛最多水的容器
- java list遍历添加元素_java遍历List过程中添加和删除元素的问题
- 不仅是人类的shooow
- 物理数据库设计 - 读书笔记
- tomcat多实例部署相关
- DynamipsGUI笔记
- lbj学习日记 01 选择结构(c++,if,switch)
- mysql 二次分组_MySQL分组
- 网络安全现状及防范措施
- FPGA(一):用Verilog实现流水灯
- 淘宝订单同步方案 - 丢单终结者
- 2009年牛年九星分布图
- 什么是IDC?数据中心该如何选择?
- hover在两种情况下的两种用法
- 诺基亚(Nokia 5110)5110屏驱动(STM32)
热门文章
- 培训笔记——2019年性能测试
- 21天Jmeter打卡Day8 get/delete/put之间的请求
- 成为高级测试人:软件测试工程师职业素养
- 骆驼游戏 c语言,语言骆驼教案
- php foreach 单箭头,PHP Foreach循环具有单个元素
- oracle 删除函数对象不存在_Python 函数式编程指北,不只是面向对象哦
- python里的class_Python中的Class的讨论
- 0501 0503 模块区别_金川区西门子控制器模块CPU313C哪里有
- TAUCS库的编译(vs2010)
- De 30: Decoupling Linear Systems with Constant Coefficients