- 公众号关键词回复出现bug!
微信公众号本来简单的开发,但是今天我遇到这个问题很奇怪,下面我将贴出我的代码及错误: [图片] 关键词回复报错提示:该公众号提供的服务出现故障,请稍后再试。 而我公众号开发里面配置是能够连通的,如下图: [图片] 这说明我的程序是能够接入微信的,另外,我程序代码里打印log,也是可以打印出XML的,如下贴出代码: [代码]public[代码] [代码]function[代码] [代码]responseMsg(){[代码] [代码] [代码][代码]//get post data, May be due to the different environments[代码][代码] [代码][代码]$postStr[代码] [代码]= [代码][代码]$GLOBALS[代码][代码][[代码][代码]"HTTP_RAW_POST_DATA"[代码][代码]];[代码][代码] [代码] [代码] [代码][代码]if[代码] [代码](![代码][代码]empty[代码][代码]([代码][代码]$postStr[代码][代码])){[代码][代码] [代码][代码]/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,[代码][代码] [代码][代码]the best way is to check the validity of xml by yourself */[代码][代码] [代码][代码]libxml_disable_entity_loader(true);[代码][代码] [代码][代码]$postObj[代码] [代码]= simplexml_load_string([代码][代码]$postStr[代码][代码], [代码][代码]'SimpleXMLElement'[代码][代码], LIBXML_NOCDATA);[代码][代码] [代码][代码]$this[代码][代码]->postObj = [代码][代码]$postObj[代码][代码];[代码][代码] [代码][代码]$fromUsername[代码] [代码]= [代码][代码]$postObj[代码][代码]->FromUserName;[代码][代码] [代码][代码]$toUsername[代码] [代码]= [代码][代码]$postObj[代码][代码]->ToUserName;[代码][代码] [代码][代码]$keyword[代码] [代码]= trim([代码][代码]$postObj[代码][代码]->Content);[代码][代码] [代码][代码]$time[代码] [代码]= time();[代码][代码] [代码][代码]$textTpl[代码] [代码]= "<xml>[代码][代码] [代码][代码]<ToUserName><![CDATA[%s]]></ToUserName>[代码][代码] [代码][代码]<FromUserName><![CDATA[%s]]></FromUserName>[代码][代码] [代码][代码]<CreateTime>%s</CreateTime>[代码][代码] [代码][代码]<MsgType><![CDATA[%s]]></MsgType>[代码][代码] [代码][代码]<Content><![CDATA[%s]]></Content>[代码][代码] [代码][代码]<FuncFlag>0</FuncFlag>[代码][代码] [代码][代码]</xml>";[代码][代码] [代码][代码]if[代码][代码]([代码][代码]$postObj[代码][代码]->MsgType==[代码][代码]'event'[代码][代码]){[代码][代码] [代码][代码]switch[代码] [代码]([代码][代码]$postObj[代码][代码]->Event){[代码][代码] [代码][代码]case[代码] [代码]'CLICK'[代码][代码]:[代码][代码] [代码] [代码] [代码][代码]break[代码][代码];[代码][代码] [代码][代码]case[代码] [代码]'subscribe'[代码][代码]:[代码][代码] [代码][代码]//获取用户信息,并存入数据库[代码][代码] [代码][代码]$openid[代码] [代码]= [代码][代码]$fromUsername[代码][代码];[代码][代码] [代码][代码]//查询是否已有账号[代码][代码] [代码][代码]$islive[代码] [代码]= syDB([代码][代码]'member'[代码][代码])->find([代码][代码]array[代码][代码]([代码][代码]'openid'[代码][代码]=>[代码][代码]$openid[代码][代码]));[代码][代码] [代码][代码]if[代码][代码](![代码][代码]$islive[代码][代码]){[代码][代码] [代码][代码]$access_token[代码] [代码]= [代码][代码]$this[代码][代码]->getAccessToken();[代码][代码] [代码][代码]$url[代码] [代码]= [代码][代码]'https://api.weixin.qq.com/cgi-bin/user/info?access_token='[代码][代码].[代码][代码]$access_token[代码][代码].[代码][代码]'&openid='[代码][代码].[代码][代码]$openid[代码][代码].[代码][代码]'&lang=zh_CN'[代码][代码];[代码][代码] [代码][代码]$user[代码] [代码]= [代码][代码]file_get_contents[代码][代码]([代码][代码]$url[代码][代码]);[代码][代码] [代码][代码]$user[代码] [代码]= json_decode([代码][代码]$user[代码][代码],true);[代码][代码] [代码][代码]//$this->file_url = $user['headimgurl'];[代码][代码] [代码] [代码] [代码][代码]$n[代码][代码]=syDB([代码][代码]'member'[代码][代码])->create([代码][代码]array[代码][代码]([代码][代码]'user'[代码][代码]=>[代码][代码]$user[代码][代码][[代码][代码]'nickname'[代码][代码]],[代码][代码]'pass'[代码][代码]=>[代码][代码]''[代码][代码],[代码][代码]'email'[代码][代码]=>[代码][代码]''[代码][代码],[代码][代码]'regtime'[代码][代码]=>[代码][代码]$time[代码][代码]));[代码][代码] [代码][代码]if[代码][代码]([代码][代码]$n[代码][代码]){[代码][代码] [代码] [代码] [代码][代码]syDB([代码][代码]'member_field'[代码][代码])->create([代码][代码]array[代码][代码]([代码][代码]'aid'[代码][代码]=>[代码][代码]$n[代码][代码],[代码][代码]'sex'[代码][代码]=>[代码][代码]$user[代码][代码][[代码][代码]'sex'[代码][代码]],[代码][代码]'openid'[代码][代码]=>[代码][代码]$user[代码][代码][[代码][代码]'openid'[代码][代码]],[代码][代码]'touxiang'[代码][代码]=>[代码][代码]$user[代码][代码][[代码][代码]'headimgurl'[代码][代码]]));[代码][代码] [代码][代码]}[代码][代码] [代码] [代码] [代码] [代码] [代码][代码]}[代码][代码] [代码][代码]break[代码][代码];[代码][代码] [代码] [代码] [代码] [代码] [代码][代码]}[代码][代码] [代码] [代码] [代码] [代码] [代码] [代码] [代码] [代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]//write_log($keyword);[代码][代码] [代码][代码]if[代码][代码]([代码][代码]$keyword[代码][代码]){[代码][代码] [代码][代码]$data[代码] [代码]= syDB([代码][代码]'keywords'[代码][代码])->find([代码][代码]" keywords like '%"[代码][代码].[代码][代码]$keyword[代码][代码].[代码][代码]"%' and isshow=1"[代码][代码]);[代码][代码] [代码][代码]if[代码][代码]([代码][代码]$data[代码][代码]){[代码][代码] [代码][代码]if[代码][代码]([代码][代码]$data[代码][代码][[代码][代码]'body'[代码][代码]]!=[代码][代码]''[代码][代码]){[代码][代码] [代码][代码]$contentStr[代码][代码]=[代码][代码]$data[代码][代码][[代码][代码]'body'[代码][代码]];[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]$contentStr[代码][代码]=[代码][代码]"不知道你说什么,能否换一句?"[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]$contentStr[代码][代码]=[代码][代码]"不知道你说什么,能否换一句?"[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码] [代码] [代码][代码]$msgType[代码] [代码]= [代码][代码]"text"[代码][代码];[代码][代码] [代码][代码]$resultStr[代码] [代码]= sprintf([代码][代码]$textTpl[代码][代码], [代码][代码]$fromUsername[代码][代码], [代码][代码]$toUsername[代码][代码], [代码][代码]$time[代码][代码], [代码][代码]$msgType[代码][代码], [代码][代码]$contentStr[代码][代码]);[代码][代码] [代码][代码]//write_log($resultStr);[代码][代码] [代码][代码]echo[代码] [代码]$resultStr[代码][代码];[代码][代码] [代码][代码]exit[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码] [代码] [代码][代码]}[代码][代码] [代码] [代码] [代码] [代码] [代码][代码]}[代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]echo[代码] [代码]""[代码][代码];[代码][代码] [代码][代码]exit[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码]最后的 write_log($resultStr); 能够打印如下信息: [代码]'<[代码][代码]xml[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]ToUserName[代码][代码]>[代码][代码]<![CDATA[ob5HO54Nkpt-HZm2kxrfh3nazVVU]]>[代码][代码]</[代码][代码]ToUserName[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]FromUserName[代码][代码]>[代码][代码]<![CDATA[gh_05c06c82d54f]]>[代码][代码]</[代码][代码]FromUserName[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]CreateTime[代码][代码]>1554911946</[代码][代码]CreateTime[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]MsgType[代码][代码]>[代码][代码]<![CDATA[text]]>[代码][代码]</[代码][代码]MsgType[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]Content[代码][代码]>[代码][代码]<![CDATA[不知道你说什么,能否换一句?]]>[代码][代码]</[代码][代码]Content[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]FuncFlag[代码][代码]>0</[代码][代码]FuncFlag[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]xml[代码][代码]>'[代码] 我搞了一晚上没有解决这是什么原因。。。请求社区大神给我解答一下。。。谢谢。。。
2019-04-11 - 关于小程序web-view内页表单无法提交图片及文件的问题
最近做一个小程序,论文查重的,业务需求是上传文件到服务器,然后服务器提交到某个机构进行查重。 我的设计思路是: 由于小程序好像没有组件能够直接上传文件,那我就考虑用web-view来做网页input上传文件。 小程序获取个人openid及类别id,加在链接尾部传至到web-view页面内,上传文件到服务器,然后再做页面跳转回小程序。 设想其实挺美好的,连小程序开发工具都很配合,它并没有提示不能上传 [图片] 但是,真机测试的时候,到这个点击上传文档按钮的时候,提示图库及拍照(内心已觉得好像不太对,真的不能上传文件吗????o(╥﹏╥)o),我点击图库,然后直接退出小程序,嗯,也不能上传图片,而且再次点击顶部的小程序栏还不能再次打开,过了一会,我清空了手机上的小程序数据,然后再次扫码才能进入小程序。。。不知道这个是不是bug?有没有类似经验的大神能够帮忙下。谢谢。 ps:我自己的测试手机是phone7plus 注:web-view业务必须是配置业务域名,个人的小程序不行,必须要公司认证的。
2018-07-01