记录Yii2框架开发微信公众号遇到的问题及解决方法
微信公众号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决?
以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在安全方面不如Yii2,后面在用Yii2的时候发现了一个有趣的事情。
以前在用Yii框架做微信方面的开发的时候,开发模式需要添加对应的接口。
这里一定要注意点的点是在做接口验证的时候是使用GET请求,这个毫无疑问没有任何问题,但是在验证完之后,进行接口上面的交互的时候就有问题了,使用的POST的请求。
如果是以前的Yii的话,如果没有做严格的post请求的csrf验证的话,应该都是正常的。
但是使用Yii2之后就会有问题,如下
'request' => [ 'cookieValidationKey' => 'xxxxxx', 'csrfParam' => 'xxxxxx', ],
这里的配置,我记得官网的例子或者是在使用Yii2创建项目之后就会添加这一部分,这个会导致在所有的Conroller写的action,post请求接收的时候系统会默认做csrf安全验证,导致在做微信开发的时候,这块post的请求也失效了,当时在action中加了log日志,很奇怪为什么action的方法也不执行。
解决办法如下
在对应的Controller中添加
public $enableCsrfValidation = false;
这个是将请求的csrf验证做了关闭,也就是说所有请求到这个Controller的都不会做csrf的验证。这块的安全看来还是要通过其他方式避免一下,针对微信端的请求做处理,以实现安全的防护。
当然到这里说的也就只有程序上的问题,如果是真实的微信公众号的问题,那就只能找找微信客服解决了。
PS:
现在的客服全都机器的,问一句根本不知道你想要啥,说实话还是喜欢跟人工客服打交道,人跟人交流不能退缩到原始,见面就只是哼哼,时代的进步不代表要减少沟通。
总结
以上所述是小编给大家介绍的记录Yii2框架开发微信公众号遇到的问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
使用YII2框架实现微信公众号中表单提交功能
刚接触微信,要做一个在手机上的表单提交功能. 需求有这些: 只能在数据库中存在的手机号看到表单. 表单可以重复提交. 第一次进入表单需要验证 分享出去的页面,别人进入后也需要验证. 因为每个手机在同一个公众号当中的openid是唯一性的.所以在手机查看这个表单页面的时候,就将这个openid存到数据库中,方便下次提交可以验证. 下面是我的代码.使用的是YII2框架. Controller //获得回调函数 public function actionCallback($code,$state){
-
记录Yii2框架开发微信公众号遇到的问题及解决方法
微信公众号开发,提示"该公众号暂时无法提供服务,请稍后再试",如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在安全方面不如Yii2,后面在用Yii2的时候发现了一个有趣的事情. 以前在用Yii框架做微信方面的开发的时候,开发模式需要添加对应的接口. 这里一定要注意点的点是在做接口验证的时候是使用GET请求,这个毫无疑问没有任何问题,但是在验证完之后,进行接口上面的交互的时候就有问题了,使用的POST的请求. 如果是以前的Yii的话,如果没有做严格的p
-
详解NodeJs开发微信公众号
古话说: 万事开头难, 回头细想想还真是这样,在没有开始做微信公众号开发之前我以为它很复杂,但是学过之后只想说原来just so so~ 这里是我的项目的github地址: https://github.com/muzishuiji/wechat 下面我就把我的学习过程做一下总结,希望可以帮助到有需要的人儿.粗鄙之见,恐有不足,欢迎指教(PS: 在阅读下文之前,你应该对NodeJs和koa框架有一定的了解,会编写简单的项目,如果不是,建议你暂放这篇文章,来这里看看)! 我把我们这次的学习之旅比做
-
Yii Framework框架开发微信公众平台示例
本文实例讲述了Yii Framework框架开发微信公众平台.分享给大家供大家参考,具体如下: 1. 先到微信公众平台注册帐号 http://mp.weixin.qq.com 2. 下载demo 微信公众平台提供了一个十分"朴素"的demo,说明如何调用消息接口的.代码真的很朴素,具体内容可到官网下载. 3. 按照Yii的规则,做一个extension. 这里命名为 weixin,目录结构如下: ▾ extensions/ ▾ weixin/ Weixi
-
php版微信公众号接口实现发红包的方法
本文实例讲述了php版微信公众号接口实现发红包的方法.分享给大家供大家参考,具体如下: 最近接到一个任务,需要用微信来给用户自动发红包.要完成这个任务需要这么已经一些物料 微信商户号,已申请微信支付 微信商户号主体下面的微信公众号 先看一下效果图 只需要完成后面几步就可以了. 在微信公众号服务器上面调用红包代码 /* **微信红包功能 */ public function sendredpack(){ $re_openid = $this->_pg('re_openid'); $inputObj
-
使用Nodejs开发微信公众号后台服务实例
摘要: 微信,庞大的用户基数,极强的用户粘性,在近两年吸引了无数的开发者注意力. Nodejs,近两年发展非常快的开发工具,尤其适合构建移动后台.本文就以笔者自己开发的实例,来描述如何基于Nodejs开发属于自己的微信公众号.在这个实例中,主要使用到了express, wechat, mongodb, monk等模块. 前期准备: 1.申请微信公众号,前往 https://mp.weixin.qq.com/ 申请,这里不做过多阐述. 2. 购买服务器, 这里推荐Amazon的EC2,首次用户可
-
java开发微信公众号支付
最近做了微信公众号支付的开发,由于是第一次做也摸索了几天的时间,也只是达到了实现功能的水平,并没有太多考虑到性能问题,所以这篇文章比较适合初学者. 微信公众号支付的总体其实很简单,大致就分为三步.第一步需要获取用户授权:第二步调用统一下单接口获取预支付id:第三步H5调起微信支付的内置的js.下面介绍具体每一步的开发流程. 一 首先要明确微信公众号支付属于网页版支付,所以相较于app的直接调取微信支付要多一步微信授权.也就是需要获取用户的openid.微信公众号使用的交易类型是JSAPI,
-
C#开发微信公众号接口开发
具体实现方式不多说了,请看下文 一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号密码.作为微信接口开发人员我们知道网页授权可以用作微信网页用作安全登录,带参数二维码的使用用作记录用户来源,模板消息用作购物消费等消息的通知,但是很少看到有综合利用这些高级接口做出体验比较好的公众账号,这里分享一些我开发的用户绑定和验证码的一些心得.所需要的接口有基础
-
Java开发微信公众号接收和被动回复普通消息
上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本消息 2.图片消息 3.语音消息 4.视频消息 5.小视频消息 6.地理位置消息 7.链接消息(被动回复的消息) 被动回复的普通消息包括: 1.回复文本消息 2.回复图片消息 3.回复语音消息 4.回复视频消息 5.回复音乐消息 6.回复图文消息 其实接收消息和被动回复消息这两个动作是不分家的,这本
-
使用NodeJs 开发微信公众号(三)微信事件交互实例
微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么样与微信交互的.这些功能的入口就是你在测试公众号里面填写的URL(以下用/login/wechat代替). 事件交互 扫码关注微信公众号后,微信会调用你的接口/login/wechat,并且附带一段xml信息,首先你需要获取一些签名,通过加密.排序比对是否与你填写的TOKEN一致,如果一致则进行xm
随机推荐
- Java解析XML的四种方法详解
- vue使用stompjs实现mqtt消息推送通知
- 在vista下使用加载项扩展IE7的功能
- asp.net母版页如何使用
- 微信开发之网页授权获取用户信息(二)
- MySQL索引背后的之使用策略及优化(高性能索引策略)
- Use Word to Search for Files
- JSP和JSTL获取服务器参数示例
- jQuery学习笔记之控制页面实现代码
- JavaScript使用cookie记录临时访客信息的方法
- PHP实现的进度条效果详解
- C#动态执行字符串(动态创建代码)的实例代码
- C#实现将千分位字符串转换成数字的方法
- Window XP用户安装科讯关于权限问题必看教程
- Docker 限制容器可用的CPU的方式
- 小程序实现人脸识别功能(百度ai)
- layui select获取自定义属性方法
- MyBatis异常-Property 'configLocation' not specified, using default MyBatis Configuration
- 图文详解python安装Scrapy框架步骤
- django 快速启动数据库客户端程序的方法示例