前言

当作为小白,来开发微信的时候,只依据官方文档来开发是很痛苦的,怎么配置,怎么编写代码文件,怎么让映射到外网访问,问题很多,比较痛苦。
下面内容来解决这些痛点,有不懂的问题,可以在下面留言评论哦。
会出一系列的【微信服务号开发】详细文章,敬请关注!

接入指南

接入微信公众平台开发,开发者需要按照如下步骤完成:

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.接入指南相关推荐

  1. 微信服务号开发的完整人性化版攻略

    前言: 本次要讲述的是一个本人完整微信服务号开发的经验分享,微信服务号的作品:请搜索微信号:zjaisino,名称:爱信诺Aisino一站式服务平台.(这里声明,这不是打广告,只是为了方便各位开花攻城 ...

  2. 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...

  3. Springmvc集成jfinal微信 微信服务号开发

    最近研究微信服务号开发,发现jfinal家封装的SDK还是不错的,于是就定下来用它了. 那么问题来了:git上有demo,那么如何集成到自己的项目中呢?研究研究呗.我们框架使用的是springmvc, ...

  4. 微信服务号开发时获取授权遇到的问题

    1.问题 (遇到的问题)微信服务号开发时获取授权遇到的问题 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint: [59FKq ...

  5. 微信服务号开发-整合微信支付

    最近的项目在对接微信支付,所以抽出一些时间,将方法总结一下: 欢迎加群交流:724225958 官方开发文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi. ...

  6. 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码

    因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...

  7. 微信服务号开发----创建个性化菜单

    官方链接http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html 1.目的:让公众号的不同用户群体看到不一样的自定义菜单 ...

  8. [转载]微信公众号开发 [01] 入门基本流程

    1.公众号的类别和注册 1.1 公众号类别 微信公众号目前有三种,订阅号.服务号.企业号,另外还有一种后来推出的和公众号带点关系的小程序.  订阅号.服务号和企业号的功能区别如下(更多详细区别戳参考链 ...

  9. 200.微信公众号开发【接入】

    第一步:申请微信公众号 https://mp.weixin.qq.com/ 注意,个人只能选择订阅号 这里需要注意,要用一个绑定了银行卡的微信号扫码才能注册. 第二步:公众号开发环境准备 需要一个微信 ...

最新文章

  1. Protocol Buffers简明教程
  2. 【杂项】SVN服务器的本地搭建和使用
  3. 如何优雅的设计 Java 异常
  4. ffmpeg 声音参数_ffmpeg转换参数和压缩输出大小的比率
  5. [图神经网络] 图神经网络GNN基础入门
  6. Leetcode(11)-盛最多水的容器
  7. java list遍历添加元素_java遍历List过程中添加和删除元素的问题
  8. 不仅是人类的shooow
  9. 物理数据库设计 - 读书笔记
  10. tomcat多实例部署相关
  11. DynamipsGUI笔记
  12. lbj学习日记 01 选择结构(c++,if,switch)
  13. mysql 二次分组_MySQL分组
  14. 网络安全现状及防范措施
  15. FPGA(一):用Verilog实现流水灯
  16. 淘宝订单同步方案 - 丢单终结者
  17. 2009年牛年九星分布图
  18. 什么是IDC?数据中心该如何选择?
  19. hover在两种情况下的两种用法
  20. 诺基亚(Nokia 5110)5110屏驱动(STM32)

热门文章

  1. 培训笔记——2019年性能测试
  2. 21天Jmeter打卡Day8 get/delete/put之间的请求
  3. 成为高级测试人:软件测试工程师职业素养
  4. 骆驼游戏 c语言,语言骆驼教案
  5. php foreach 单箭头,PHP Foreach循环具有单个元素
  6. oracle 删除函数对象不存在_Python 函数式编程指北,不只是面向对象哦
  7. python里的class_Python中的Class的讨论
  8. 0501 0503 模块区别_金川区西门子控制器模块CPU313C哪里有
  9. TAUCS库的编译(vs2010)
  10. De 30: Decoupling Linear Systems with Constant Coefficients