最近在弄微信公众号开发,在微信api接入验证这块遇到了几个问题,记录一下踩坑之路。

一、这是官方文档的接入讲解
这儿前面第一步就不说了,配置自己的服务器,我这儿没有服务器,用的是ngrok内网穿透(问题也不知道是不是这个产生的原因,下面会讲)。
这儿第二步就是微信接口验证了,看官方文档说的那几个发来的参数的确是get过来的啊
但是我这样写

        //1.得到微信发过来的timestamp,nonce,token,signature变量$timestamp=$_GET['timestamp'];$nonce=$_GET['nonce'];$token='weixin';$signature=$_GET['signature'];$echostr=$_GET['echostr'];//2.对其进行字典序排序并合并后加密$array=array($timestamp,$nonce,$token);sort($array);$string=sha1(implode('', $array));//3.再与signature关键字进行比较if($string==$signature){echo $echostr;exit;}else {}

微信验证确实是能成功,但是访问就会一直出现这样的错误,

让我的微信关注事件的推送消息一直出不来,我写了一个用户关注公众号后会发送 “欢迎关注测试公众号” 得消息和用户发文本消息之后,公众号会回复相同的文本消息给用户的逻辑,都会出现问题,搞得我焦头烂额,不知咋办。

但是当我,把get的请求数据用request来接收后就解决了这两个问题,现在还不知道为什么,知道原因的大佬还请讲一下原因。

        $signature = $request->param('signature');$timestamp = $request->param('timestamp');$nonce = $request->param('nonce');$echostr = $request->param('echostr');

二、改成request来获取数据之后访问界面其实还是有错误,会出现这样的提示

这个错误其实是正常的,至少现在还并没有影响我的功能这可能对很多我们这样刚接触微信开发的新手来说可能会不知道,在这儿提一下。你去打印这个$postArr,会显示它是一个空的字符串,导致后面你把它转化为 $postObj对象的时候会返回一个boolean型数据false,那就自然会报错说访问一个非对象的属性MsgType。

三、这儿还有一个要注意的,大家都知道的获取微信推送过来的post数据php7以上不能用$GLOBALS[‘HTTP_RAW_POST_DATA’],而要用file_get_contents(‘php://input’)的方式来获取数据。

      //获取微信推送过来的post数据(xml格式)//$postArr=$GLOBALS['HTTP_RAW_POST_DATA']; php7以上不能用$postArr = file_get_contents('php://input');

四、感谢 simonsfan博主分享的这个问题方案
这是一个大概率会犯的5星级错误,这个没注意会导致你回复用户消息不成功,出现 “该公众号提供的服务出现故障,请稍后重试” 的问题
这儿以回复文本消息为例,官方给的XML格式数据为

<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName> <FromUserName>< ![CDATA[fromUser] ]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType>< ![CDATA[text] ]></MsgType> <Content>< ![CDATA[你好] ]></Content> </xml>

可看见里面是包含有非常多的空格的,此处一定要注意数据里面不能有空格,官方也并没有说明这个问题。

暂时遇到这些问题,写来记录一下,也算帮助更多踩坑者避坑,最近在搞微信开发,如果你们还遇到更多的问题欢迎交流探讨啊。

微信api接入验证的坑!!!相关推荐

  1. 亲历H5移动端游戏微信支付接入及那些坑(一)——支付方式与坑

    最近项目进入中后期,开始接入支付.要求是使用微信支付,呵呵,好笑的是不知老板从哪里听来的,居然和我说只要是熟手,接个微信支付两小时搞定,我只能再次呵呵.先不说支付处理逻辑,而且公司本来也没现成的接入模 ...

  2. iOS-通俗易懂的微信支付接入和爬坑指南,十分钟轻松搞完

     现在基本所有的App都会接入支付宝支付以及微信支付,也有很多第三方提供给你 SDK帮你接入,但是这种涉及到支付的东西还是自己服务器搞来的好一些,其实搞懂了 逻辑非常的简单,下面直接给大家说说下基本流 ...

  3. 亲历H5移动端游戏微信支付接入及那些坑(二)——获取Openid和授权

    第一篇中将一些坑说明,那么这篇开始正式进入接入步骤.具体的参数说明,我不会列出,毕竟微信官方文档都有,我想大家都看的懂,而且这接口也有可能微信会变动,所以不列出来,也是不想引起大家的误解,接入步骤只起 ...

  4. 微信公众平台开发,API接入与推送事件(1)

    博客好久没有更新了,今天说说微信开发.微信开发的好多初学者都会又这样的迷惑,微信开发到底是什么?其实微信开发本质我和我们的网站开发没有太大的区别.我们常说的微信开发也就是公众号开,微信公众号分为三个类 ...

  5. 微信公众号开发小坑:确认访问的微信是否为已关注公众号,秘钥使用全局access_token不能使用局部变量access_token

    环境说明: 1.项目功能:年会抽奖活动开发,子功能:获取客户的相对公众号的唯一oppenid,然后确认是否关注本公众号,关注则获取客户信息后发抽奖券保存,否则先关注微信公众号: 2.java环境:SS ...

  6. 微信小游戏接入遇到的坑

    微信小游戏接入遇到的坑 1.微信web开发工具必须安装到C盘,才能被egret wing自动调取. 2.exml文件不能放在src文件夹,必现放在resource文件夹 3.egret Launche ...

  7. ASP.NET WEBAPI实现微信接入验证

    本主题所有内容以软认知服务为技术基础 关于微软人脸识别,请参阅 本节内容请先参阅微软认知服务人脸API接口列表 ##ASP.NET WEBAPI实现微信接入验证 首先你需要一个微信公众号,很重要的是你 ...

  8. C#开发微信门户及应用(32)--微信支付接入和API封装使用

    C#开发微信门户及应用(32)--微信支付接入和API封装使用 在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去, ...

  9. 京东api接入的几个坑(宙斯) 转载

    ===== [ 京东api接入的几个坑(宙斯) 原创 2014年10月30日 17:43:51 8719 写这篇文章为了发下牢骚,鄙视下京东api上的不足, 怀念下下午的2个小时..... http: ...

最新文章

  1. TOP (100) PERCENT
  2. 【ThinkPHP系列篇】Thinkphp框架的CURD操作(三)
  3. MyCat实战--读写分离/数据分片/mycat集群/haproxy负载均衡
  4. 解决开机POST提示Strike tne F1 key to continue,F2 to run the setup utility
  5. docker maven 打包jar_maven 打包 spring boot 生成docker 镜像
  6. RecognizerIntent(语音识别)
  7. python到底是啥_Python语言中的__init__到底是干什么的?
  8. 从华为“流程与IT管理部”看IT部门定位
  9. 【Tensorflow、Keras】关于Reshape层小结(部分问题未解决)
  10. Ubuntu安装FreeSWITCH亲测
  11. 日常计算机使用的需求和解决方案(一)
  12. 科目二 侧方位停车 流程记录 LTS
  13. mysql drop_MySQL DROP TABLE语句语法
  14. 爬虫案例——模拟登录QQ空间
  15. 《银河英雄传说》杨威利经典语录2
  16. 合成大西瓜魔改和上线,最全教程!
  17. Stroke – 开源鼠标手势软件[Windows]
  18. 码元、波特、速率、带宽(附例题)
  19. vmware开启虚拟机时虚拟机黑屏的解决办法
  20. php安全新闻早八点-Microdoor-第三季

热门文章

  1. FFMPEG监控拉流,向流媒体服务器推流
  2. 计算机游戏性能测评,游戏性能测试
  3. STM32 W5500以太网通讯
  4. cookie、seesionStorage、localStoreg的区别
  5. chdir改变当前目录
  6. JS引入方式有哪些?
  7. Java中WeakHashMap的应用场景
  8. BT下载不死!Magnet(磁力链接)开创网络BT2.0时代!!
  9. DeepFunc:一种深度学习框架,可根据蛋白质序列和相互作用准确预测蛋白质功能
  10. VisualSFM+MeshLab 三维重建全过程记录