作者文章

fwq

FWQ
小程序
使用web api开发微信公众号调用图灵机器人接口的方法
被动响应消息(返回XML) 微信要求我们返回xml数据,且格式是规定好的,具体请看 微信公众平台开发者文档。 响应的实体类,我们之前已经写好了,因为要求是XML格式。我们在此使用微软提供的System.Xml.Serialization.XmlSerializer来将我们的数据序列化为XML。所以我们在类上边标记了XmlRoot特性,在枚举的字段上边标记了XmlEnum特性,NewsMsg中在文章列表上标记了XmlArray和XmlArrayItem特性。而后反序列化出来的便是微信要求的格式了。 序列化方法如下: public string ResponseXML(object value, Type type){     StringWriter sw = new StringWriter();     XmlSerializerNamespaces ns = new XmlSerializerNamespaces();     ns.Add("", "");  //去除命名空间     XmlSerializer serializer = new XmlSerializer(type);     serializer.Serialize(sw, value, ns);    return sw.ToString(); } 登录后复制 注意:此处必须去除XML的命名空间,不然微信不识别 完整方法奉上: public HttpResponseMessage Post(){    var requestContent = Request.Content.ReadAsStreamAsync().Result;    //从正文参数中加载微信的请求参数     XmlDocument xmlDoc = new XmlDocument();     xmlDoc.Load(requestContent);     logger.DebugFormat("WX请求XML内容:{0}", xmlDoc.InnerText);    string msgTypeStr = xmlDoc.SelectSingleNode("xml/MsgType").InnerText;    string userName = xmlDoc.SelectSingleNode("xml/FromUserName").InnerText;    string efhName = xmlDoc.SelectSingleNode("xml/ToUserName").InnerText;    string responseContent;     MsgType msgType;         //获取消息类型,若未定义,则返回。     if (!Enum.TryParse(msgTypeStr, true, out msgType))     {                    responseContent = MsgService.Instance.ResponseXML(new TextMsg             {                 FromUserName = efhName,                 MsgType = MsgType.Text,                 Content = "俺还小,不知道你在说啥子(⊙_⊙)?",…
2024-11-25 阅读全文 →
FWQ
小程序
5 分钟实现微信支付接入教程
其实在一个网站或者 app 服务中接入支付并不是什么难事,只要你不害怕去做,认真去了解整个支付的交互流程,实现起来真的是最多半个小时的事情。本文是在使用 ping++ 集成支付功能的基础之上,实现微信支付,大概只需要五分钟。 今早收到微信通知,昨天申请的微信支付的接入申请已经通过,顾早上的时候就顺便把微信支付给接入了。由于之前我就使用 Ping++ 接入了支付宝的即时到账服务,所以在这个基础上增加一个微信支付的接入,想想就是分分钟的事情。 配置 Ping++ 后台 待你申请的微信支付通过之后,你会拿到四个非常关键的信息。 配置正确之后,需要简单地修改后端发起支付的代码,因为支付宝和微信支付在 Ping++ 的系统中是有细微的差别的,具体是 extra 这个参数的区别:使用支付宝即时到账的时候,在 extra 部分需要传入  success_url 作为同步跳转需要,而微信支付则需要在 extra 字段传入对于的 product_id ,这部分的代码可以这样: switch ( $channel ) {    case 'alipay_pc_direct' :        $extra['success_url'] = url('/payment/done');          break;    case 'wx_pub_qr':       …
2024-11-25 阅读全文 →
FWQ
CMS教程
帝国CMS自定义列表SQL调用方法是什么
自定义列表sql调用方法是什么? 本文实例讲述了帝国CMS自定义列表SQL调用方法。分享给大家供大家参考。具体方法如下: 帝国CMS自定义列表可以用来实现特定的信息列表。 自定义列表使用方法: 用户进入后台->模板管理->自定义列表->(右上角)增加自定义列表 1. 列表名称是后台管理员看到的列表名称。 2. 标题名称是标题,在模板中可以用[!–pagetitle–]这个全局标签显示出来,方便多个自定义列表共用同一个列表模板 3. 文件存放目录是存放目录,存放目录支持’_’,’-‘等符号 4. 文件扩展名是扩展名,建议用html 5. 统计记录:(如:select count(*) as total from phome_ecms_news where classid=1 and checked=1) 注:这句SQL的意思是查找统计位于数据表phome_ecms_news 新闻数据表的栏目id=1和审核过的信息总数 6. 查询记录:(如:select…
2024-11-25 阅读全文 →
FWQ
小程序
小程序开发制作tabs选项卡的实例教程
这篇文章主要介绍了微信小程序 tabs选项卡效果的实现的相关资料,微信小程序内部组件没有tabs 选项卡的功能,自己实现个类似的,需要的朋友可以参考下 微信小程序 tabs选项卡效果 前言: 最近微信应用号是炒的如火如荼,热门满满,但是也可以发现关键词出来,各类网站出现的还都是微信的官方文档解释。正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了。很多组件微信内部已经封装完了,正好发现没有tab选项卡效果,这两天正好研究了下。思路如下: 1.首先点击的时候需要两个,一个存储当前点击样式类,一个是导航默认的样式类 2.选项卡内容列表同样也需要两个变量,一个存储当前显示块,一个存储的是其它隐藏的默认块 3.使用三目运算通过点击获取导航,根据索引判断是否添加当前类【备注,这里我将点击绑定在父级导航栏,通过target得到点击触发的事件对象】 请结合如下效果图:  接下来直接查看源码: demo.wxml: <view>  <view>   <view>tab-hd01</view>   <view>tab-hd01</view>   <view>tab-hd01</view>   <view>tab-hd01</view>  </view>  <view>   <view>tab-bd01</view>   <view>tab-bd02</view>   <view>tab-bd03</view>   <view>tab-bd04</view>  </view>  </view> 登录后复制…
2024-11-25 阅读全文 →
FWQ
小程序
小程序实现类似于苹果AssistiveTouch功能(附代码)
本篇文章给大家带来的内容是关于小程序实现类似于苹果assistivetouch功能(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、首先我先介绍一下,我们要做一个什么样的项目功能 项目功能就是一个音频点击播放,当点击为播放的状态时,一个音频的动图出现,而且是可以跟随着手指的滑动而滑动,而且,在滑动动图的时候,当前下的页面是不可以跟随着我的滑动而上下滚动,当停止滑动的时候,音频动图停靠在手机的左侧或者右侧,而当前下的页面是可以上下滚动的,功能介绍到此为止,下面我们说一下思路。     二、我们做这个功能,第二步就是要想思路 思路就是,利用微信中的滑动事件,外加控制样式,来完成这个功能。 三、这是项目的ui图,废话不多说,直接撸代码。 项目样图 四、index.wxml、index.wxss、index.js页面代码 *index.wxml页面* <!-- 搜索 --> <view class='home_srh'> <view class='srh_box' bindtap='srhBox'> <image class='srh_box_img' src='../../img/home_search.png'></image> <view class='srh_box_text'>开心奶奶</view> </view> </view> <!-- 音频分类…
2024-11-25 阅读全文 →
FWQ
小程序
30个小程序开发中常见问题和解决方法(总结)
许多人都开发过微信小程序,在开发路上踩坑的人不占少数,在项目实施时总会遇到一些问题。在小程序开发时需要注意哪些问题才可以避免走弯路呢?本文整理了30条常见问题和解决方法,让开发者尽可能的绕开弯路。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 30个小程序开发中常见问题和解决方法 1、小程序名称不得与公众平台已有的订阅号、服务号重复。如提示重名,请更换名称进行设置。 2、选用模板消息时,你可用该标题的模板搭配不同的关键词使用,配置提交后关键词种类和顺序将不能修改。 3、小程序名称在帐号信息设置时完成,请谨慎设置,一旦设置暂不支持修改。 4、更换名称进行设置。如果企业商标,组织名称等名称被侵权,可通过公众平台侵权投诉流程发起投诉,取回名称使用权。 5、小程序名称可以由中文、数字、英文。长度在3-20个字符之间,一个中文字等于2个字符。 6、原本个人开发者无法申请微信小程序;微信仅支持企业、政府、媒体、其他组织申请。在之后的更新中开放了个人开发者。 7、如果你不是特殊组织,你还是要花300元进行认证。 即使你对公帐号已经验证,你也需要缴纳300**元**(支持微信支付)进行验证,这样才能够打开审核开关,发布小程序。 微信支付需要微信认证后才能使用。 8、服务器配置每月只有3次修改机会,省着点用,小心没机会。 没事别乱动下面的配置,一定确定了再动,并且一次性写完整,不然你改个小标点都会浪费你的一次机会。 9、你的域名、备案、https要准备好,不然做不了。(服务器域名需进过ICP备案、新备案域名需24小时候才能配置。域名格式只支持雅文大小写字母、数字及“-”,不支持IP地址及端口号) 10、小程序头像、介绍每月只能修改5次,服务范围每月只能修改1次。小程序二维码在第一个版本上线后才能获得。 11、一个主体可以注册30个,一个绑定身份的开发者只能创建5个微信小程序。 对于员工来说,请不要随便借给你的老板你的微信来注册微信小程序,因为你这样就没有机会了。 对于老板来说,请不要随便借给你的员工微信来注册微信小程序,因为你可能要不回来。 12、找不到模板关键词的时候,可以进行申请添加。每月可以提交5次新关键词,通过后会被共享。(堆自家关键词的好机会呀!!) 13、一个小程序账号只有一个管理员(可修改),可以绑定10位开发者。 14、重点注意: 开发版本:使用开发者工具,可将代码上传到开发版本中。开发版本只保留每人最新的一份上传的代码。点击提交审核,可将代码提交审核。开发版本可删除,不影响线上版本和审核中版本的代码。 审核中版本:只能有一份代码处于审核中。有审核结果后可以发布到线上,也可直接重新提交审核,覆盖原审核版本。 线上版本:线上所有用户使用的代码版本,该版本代码在新版本代码发布后被覆盖更新。 15、数据分析只统计已发布线上版本使用数值,同时提供实时统计数据。 16、小程序AppSecret只有管理员才能查看,平台不会明文保存AppSecret。 17、开发者工具目前提供windows 64…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序版翻牌小游戏的实现
这篇文章主要为大家详细介绍了微信小程序版翻牌小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信小程序翻牌游戏的具体代码,供大家参考,具体内容如下 一、新建一个quick start项目看看结构 在微信开发工具点击添加项目,选择 无appid,勾上”在当前目录中创建quick start 项目”。 可以看到一共有两个目录 pages和utils,和根目录下的3个app文件。pages存放的是小程序的页面,每个也面都有自己独立的文件夹。 一个页面由4文件构成,js文件是程序逻辑;wxss是微信定义的样式文件,语法跟css一样,支持的样式要少一些;wxml文件用来定义小程序的界面,作用类似于html,但是只能用微信自定义的一些标签,而且页面元素不能直接用js操作,只能通过绑定数据来修改;json是页面的配置文件一般用不着。根目录下的app.js,app.json,app.wxml作用和pages下面的作用类似,只不过pages下面的是页面级的,根目录下的是成个应用级的>。utils下面定义了一个转换时间格式工具函数,然后通过module.exports将函数暴露出去,再在logs.js中通过require引入。 二、改造index页面 知道了小程序的结构就可以动手开始做了,首先把index页面改造一下,把用户头像上的点击事件去掉,然后再新增两个按钮,用来跳转到游戏主界面和游戏成绩界面。 1.界面,bindtap相当于html的onclick <!--index.wxml-->  <view>   <view>   <text></text>   <image></image>   <text>{{userInfo.nickName}}</text>   <text>你好</text>   </view>   <view>   <text>{{motto}}</text>   </view>   <view>   <text>查看排名</text>   </view> …
2024-11-25 阅读全文 →
FWQ
CMS教程
帝国cms刷新失败原因是什么
帝国cms刷新失败的原因有多种,主要包括:服务器配置问题(如内存不足、超时)数据库问题(如连接失败、表不存在)php配置问题(如php版本过低、扩展未安装)代码问题(如逻辑错误、模板调用错误)其他原因(如网络问题、防火墙拦截、病毒) 帝国CMS刷新失败原因 帝国CMS刷新失败的原因有多种,常见原因包括: 1. 服务器配置问题 服务器内存不足:当刷新任务耗费大量内存时,可能会导致内存溢出,从而导致刷新失败。 服务器超时:刷新任务的执行时间过长,导致服务器设置的超时限制。 文件权限问题:刷新需要写入文件系统,如果文件权限设置不正确,会导致刷新失败。 2. 数据库问题 数据库连接失败:刷新需要连接数据库,如果连接失败,会导致刷新失败。 数据库表不存在:如果需要刷新的表不存在,会导致刷新失败。 数据库数据不完整:如果数据库数据不完整或损坏,会导致刷新失败。 3. PHP配置问题 PHP版本过低:帝国CMS要求PHP版本5.4或以上。如果PHP版本过低,会导致刷新失败。 扩展未安装:刷新需要PHP扩展,例如i,如果扩展未安装,会导致刷新失败。 安全模式启用:PHP的安全模式启用可能会限制刷新的权限,从而导致刷新失败。 4. 代码问题 代码逻辑错误:刷新代码逻辑错误会导致刷新失败。 模板调用错误:刷新过程中调用模板文件错误会导致刷新失败。 5. 其他原因 :如果服务器网络不稳定或与外部资源连接失败,会导致刷新失败。 防火墙拦截:如果服务器防火墙拦截了刷新任务的请求,会导致刷新失败。 病毒或恶意软件:病毒或恶意软件可能会干扰刷新过程,导致刷新失败。 以上就是刷新失败原因是什么的详细内容,更多请关注米云其它相关文章!
2024-11-25 阅读全文 →
FWQ
CMS教程
Dede网站怎么修改模板路径
dede网站怎么修改模板路径? 相信大家用Dede架构网站的有很多吧,很多时候我们是直接复制一个templetsdefault文件夹修改掉名字来达到修改模版路径的目的,但是如果自己做的模板,往往很多地方考虑的不周到,因为不是所有功能都用得到。访问一些不存在模板的功能,有时候会暴露模板的真实路径 推荐学习: 1,批量修改模版文件 方法,使用批量修改工具。比如你模版目录是templets hot.net,那么你需要批量替换{dede:global.cfg_templets_skin/}和$cfg_templets_skin; ?>为/templets/default或者其他安全路径。PS,批量修改工具网上有很多,我用的服务器那个很好用(绝非AD)。 2,模板放进数据库 用dede程序自带的自定义标记功能来防止模板被下载也不错。简单来说就是把真正的模板放到数据库里面,html模板只是一个壳子没有内容。 具体操作步骤:进dede后台,新建一个自定义标记,标记名称为xahot。至于内容你可以把模板文件的内容全复制进去。然后把模板里的内容清空,写上自定义标记代码{dede:mytag ismake=’yes’/} 好了,现在即使模板被下载,泄漏的也只是这句自定义标记而已。 3,使用网站的伪静态(url重写)功能来重置链接 A,服务器支持.htaccess(linux)文件的在根目录建一个.htaccess,按以下方法修改, 比如我的模板文件放在/templest/xahot.net/这个目录 现在我要设置一个规则,只要访问模板目录下的任何文件,都显示主页内容。 改一下.htaccess文件: RewriteEngine On RewriteBase / ErrorDocument 404 / RewriteRule templest/xa / 登录后复制 注意最后那条规则,意思是只要访问的地址里面包含“templets/xa”,就会显示主页的内容。 可以看到我的模板目录名没写全,只要以xa开头就行了,这样既保护了模板,又不会暴露模板的路径。 B,IIS类网站方法httpd.ini写法(具体httpd.ini放置不多讲,可以自己搜索下) [ISAPI_Rewrite] #3600 = 1 hour CacheClockRate 3600…
2024-11-25 阅读全文 →
FWQ
CMS教程
浅析WordPress插件怎么去除更新提示
插件怎么去除更新提示?下面本篇文章给大家整理分享去除wordpress插件更新提示的简单方法,希望对大家有所帮助! 注:本文提供的方法是去除某个插件特定版本的更新提示,而不是完全去除WordPress的插件更新提示功能。 相信使用WordPress的朋友都安装了很多插件,插件更新也是很频繁的一件事。有些时候我们对插件做了些更改以适应自己的需求,更改后的插件已经完全满足了需求,有些时候插件新版本只是添加了一些语言包或只做了些小的修改,而有些时候是作者无聊没事往插件里面添加自己的博百优外链,所以我们不想去更新这些插件,但是WordPress总是提示插件有更新,看着也不爽啊,那咋办? 针对某个插件,用文本编辑器打开该插件目录下的主PHP文件(至于哪个是主的,自己找吧),文件头部会出现类似以下的WordPress插件标准注释: /* Plugin Name: Login to view all Plugin URI: https://www.ludou.org/wordpress-plugin-login-to-view-all Description: Login to view all Version: 1.0 Author: Ludou Author URI: https://www.ludou.org/ */ 登录后复制 Version: 1.0 就是该插件的版本号,现在该插件在官方服务器上的版本已经升级至2.0,WordPress程序会自动获取该插件的版本号和官方服务器上的版本号,发现1.0与2.0不同,就会提示你该插件已经更新。要去除这个更新提示,我们要做的就是伪造最新的版本号,实际上插件并没有更新,插件的最新版本号可以从该插件的官方首页上查到,如: 该插件的最新版本号 Version:2.0 ,我们把刚才那段插件注释中的版本号改成最新版本号 2.0 就可以了,这样WordPress就不会再提示你升级该插件至 2.0,至于该插件以后升级至 3.0 还是会继续提示的: /* Plugin Name: Login to view all Plugin URI: https://www.ludou.org/wordpress-plugin-login-to-view-all Description: Login to view all…
2024-11-25 阅读全文 →