微信公众号的那些坑
2016-12-09 本文已影响64人
hey_沙子
最近这段时间做了一个公众号的项目,从一点不会,到现在整个项目打通了,这其中当然经历了不少坑。下面我就和大家分享一下我遇到的那些坑:
微信公众号服务器配置提交url失败
开发者验证signature时,token、timestamp、nonce这三个参数大家并不陌生吧,但还有一个参数大家可不能忽视,那就是 echostr,首次验证一定要明文输出echostr,并exit ,不然在服务器配置的地方很有可能提交url不成功
public function valid(){
$echoStr = Yii::$app->request->get('echostr');
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
微信公众平台接收不到消息
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA
变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。
此时我们可以试试
$postStr = file_get_contents('php://input');
用户关注公众号得到openid存到cookie获取不到
只能关注后得到openid存到数据库里,这样以后就可以查库了。开始我傻傻的在这里存cookie,发现怎么也拿不到cookie值。后来才知道关注是推送xml到服务器,不是直接访问服务器,放cookie里是不管用的,除非在回复消息里面带着用户信息
微信分享提示:{“errMsg”:“config: invalid url domain”}
登录公众平台,点击右上角的公众号进入公众号设置,里面有个功能设置,把你要分享的域名填写到“JS接口安全域名”保存。注意:填写的是字符串格式
例如域名为:http://www.abc.com
你应该写成www.abc.com
还有一种可能是你公众号的配置里面没有写你需要分享的域名
微信分享到朋友圈获取不到自定义信息和分享成功后不回调
如果有哪里不对,希望大家提出以免误导其他人