一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Backend

微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能。微信增加了点击菜单后调起扫一扫(支持二维码/一维码)、发图片、发地理位置的能力,需开发实现。原有自定义菜单开发权限的公众号,均可获得以上能力。 在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单上开发扫一扫、发图片、发地理位置等功能。原有点击和跳转事件的开发,请参考微信公众平台开发(58)自定义菜单。 本文分为以下二个部分: 扫一扫、发图片、发地理位置介绍 生成扫一扫、发图片、发地理位置功能菜单 开发扫一扫、发图片、发地理位置响应程序 使用场景   一、菜单介绍 1. 扫码推送事件 scancode_push 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。 2. 扫码推送事件,且弹出“消息接收中”提示框 scancode_waitmsg 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。 3. 弹出系统拍照发图 pic_sysphoto 用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。 4. 弹出拍照或者相册发图 pic_photo_or_album 用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。 5. 弹出微信相册发图器 pic_weixin 用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。 6. 弹出地理位置选择器 location_select 用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。 以上新增能力,均仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。   接口调用请求说明 http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN  按钮请求示例如下

  参数说明   参数 是否必须 说明 button 是 一级菜单数组,个数应为1~3个 sub_button 否 二级菜单数组,个数应为1~5个 type 是 菜单的响应动作类型 name 是 菜单标题,不超过16个字节,子菜单不超过40个字节 key click等点击类型必须 菜单KEY值,用于消息接口推送,不超过128字节 url view类型必须 网页链接,用户点击菜单可打开链接,不超过256字节     二、生成菜单 菜单具体的生成方法,与之前是一样的,先生成access token,再将菜单post内容提交给微信服务器,具体代码及方法可以参考 微信公众平台开发(58)自定义菜单。 生成后的效果如下如示:   三、响应菜单点击 响应菜单点击,则需要在接口文件中添加新的EventKey事件的响应,并回复相应的内容。 相关代码如下

各项类型推送给后台的xml详解如下 scancode_waitmsg,回应该事件给用户,用户可收到消息

scancode_push,回应该事件给用户,用户不能收到消息

pic_weixin ,下面是一次推送3张相片时的数据

回应上述消息,用户收不到,但微信会继续推送3个图片消息给接口

上述多个图片消息,后台收到都能进行单独回应,用户可以收到响应消息。 […]

龙生   06 Dec 2015
View Details

ASP.NET设置Session过期时间(一)

在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。 具体修改方法如下,在web.config中进行如下配置 1 2 3 <system.web>     <sessionState mode="InProc" timeout="30"/> </system.web> 在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。 from:http://www.cnblogs.com/sjrhero/archive/2010/10/15/1852449.html

龙生   30 Nov 2015
View Details

SVN的标准目录结构:trunk、branches、tags

我们在一些著名开源项目的版本库中,通常可以看到trunk, branches, tags等三个目录。由于SVN固有的特点,目录在SVN中并没有特别的意义,但是这三个目录却在大多数开源项目中存在,这是因为这三个目录反映了软件开发的通常模式。 trunk是主分支,是日常开发进行的地方。 branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。 tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。 比如一个项目有main.cpp, common.h两个文件,假设目前在开发的是最新的3.0版本,而且1.0/2.0版本也在进行维护,那么项目树将类似如下样子: project | +-- trunk +     | +     +—-- main.cpp  (3.0版本的最新文件) +     +—-- common.h + +-- branches +     | +     +-- r1.0 +     +     | +     +     +—- main.cpp (1.x版本的最新文件) +     +     +—- common.h +     + +     +-- r2.0 +           | +           +—- main.cpp (2.x版本的最新文件) +           +—- common.h + +-- tags   (此目录只读) | +-- r1.0 +     | +     +—- main.cpp (1.0版本的发布文件) +     +—- common.h + +-- r1.1 +     | +     +—- main.cpp (1.1版本的发布文件) +     +—- common.h + +-- r1.2 +     | […]

龙生   25 Nov 2015
View Details

Asp.Net完美隐藏服务器信息

首先在Global.asax.cs里增加: protected void Application_PreSendRequestHeaders(object sender, EventArgs e) { HttpContext.Current.Response.Headers.Set("Server", "w3cnet.com"); HttpContext.Current.Response.Headers.Remove("X-AspNet-Version"); HttpContext.Current.Response.Cookies.Remove(".ASPXAUTH"); } 然后web.config的system.webServer节点下增加: <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> 再看看响应头,或用站长工具查看,完美隐藏。 参考资料: http://www.yn-s.com/news/Details/93

龙生   25 Nov 2015
View Details

@using (Html.BeginForm())参数示例

1、指定表单提交方式和路径等

2、指定表单提交为数据方式

注意, 有时候要加{id=1}不然在点击超过第一页的索引时form后面会自动加上当前页的索引,如果此时再搜索则可能会出来“超出索引值”的错误提示 @using (Html.BeginForm("Index", null, new { id = 1 }, FormMethod.Get)) 3、下面的操作可以防止提交链接后面自带参数

即,RouteValues的id=""   from:http://www.cnblogs.com/firstcsharp/archive/2013/08/05/3238321.html

龙生   23 Nov 2015
View Details

6 款国外开源web oa办公系统

国外的开源产品较多,而且大多提供免费的社区版本,oa办公系统也不例外。 1、eGroupware eGroupware是一个多用户,在以PHP为基础的API上的定制集为基础开发的,以WEB为基础的工作件套装。目前可用的模板包括:电子邮件,通讯录,日程表,记事簿(备注,任务,电话),内容管理,论坛,书签,维客等。   如果使用Debian/Ubuntu来搭建eGroupware,推荐使用rpm/deb安装包方式进行安装。eGroupware中文支持良好。 eGroupware下载 eGroupware v1.8.002下载 界面预览 软件大小:14.85MB 软件类别:国外软件 | 协同办公 软件语言:多国语言 运行环境:PHP/Mysql, 软件授权:开源软件 更新时间:2011-8-16 9:15:08 相关链接:Home Page eGroupware演示:http://www.egroupware.org/demo 2、GForge GForge是一个基于Web的协同开发平台。它提供一组帮助你的团队进行协同开发的工具,如论坛,邮件列表等。用于创建和控制访问源代码管理库(如CVS,Subversion)的工具。GForge将自动创建一个源代码库并依据项目的角色设置进行访问控制。其它工具还包括:管理文件发布,文档管理,新闻公告,缺陷跟踪,任务管理等。   GForge提供免费的社区版,功能比较全面,而且简体中文语言包汉化完整。 GForge下载 GForge v5.7.1下载 界面预览 软件大小:12.63MB 软件类别:国外软件 | 企业政府 软件语言:多国语言 运行环境:PHP/Mysql, 软件授权:开源软件 更新时间:2011-4-29 13:56:49 相关链接:Home Page GForge演示地址:http://gforge.com/gf/my/ 3、Feng Office Feng Office的前身是opengoo,这是一个历史悠久的在线办公系统,作为后继者的fengoffice,功能自然不含糊。 Feng Office作为一套基于网络的项目协作系统,通过“笔记”、“文档”、“任务”等模块,解决了项目管理过程中的人员管理、成果管理及项目协作的问题;同时,由于其开源的性质,可以免费获得,其友好的用户界面和操作方式,便于学习和部署。   Feng Office下载 Feng Office v1.7.5下载 界面预览 软件大小:8.26MB 软件类别:国外软件 | 协同办公 软件语言:多国语言 运行环境:PHP/Mysql, 软件授权:开源软件 更新时间:2011-6-16 9:31:38 相关链接:Home Page Feng Office演示地址:http://fengoffice.com/web/demo/ 4、Group-Office Group-Office是一个基于Web的办公套件。它采用模块化设计,可扩展性强。主要功能有:用户管理、模块管理、email客户端、文件管理、日历、项目管理、网站管理以及客户关系管理等,可以与PDA和Outlook同步。   Group-Office提供开源、免费的社区版本,提供上图中以中文显示的功能,包括:E-mail,日程表,任务,通讯录、记事本、文件。 Group-Office下载 Group Office v3.7.34下载 界面预览 软件大小:11.55MB 软件类别:国外软件 | 协同办公 软件语言:多国语言 运行环境:PHP/Mysql, 软件授权:开源软件 更新时间:2011-10-19 9:32:16 相关链接:Home Page Group-Office演示地址:http://www.group-office.com/Pricing+and+Sign+up 注册后方可使用在线演示的功能。 5、PHProjekt PHProjekt是一个模块化的协同办公系统用于共享信息和文档。它包括的组件有:团队日历、TimeCard系统、项目管理、请求跟踪、文档管理、通讯录管理、Email客户端、论坛、聊天,记事本、共享书签、待办事项目列表、投票系统等。PHProjekt支持多种协议如ldap,xml/soap和webdav并已经被翻译成36种语言。此外它支持7种数据库包括MySQL、Postgres、Interbase、Oracle、Informix和MS-SQL。 PHProjekt下载 PHProjekt v6.06下载 界面预览 […]

龙生   06 Nov 2015
View Details

Sql Server 常用系统存储过程大全

— 来源于网络 — 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回。 xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全配置 xp_logininfo --*返回有关Windows 认证登录的信息。 xp_msver --*返回有关Microsoft SQL Server 的版本信息 xp_enumgroups    --返回Windows用户组列表或在指定域中的全局组列表。 xp_sendmail  --将电子邮件发送给指定的收件人(后续版本将删除该功能)。 xp_readmail --阅读SQL Mail收件箱中的邮件(后续版本将删除该功能)。 xp_deletemail --删除Microsoft SQL Server 收件箱中的邮件(后续版本将删除该功能)。 xp_startmail --通过该过程启动SQL Mail将返回两条消息,主要用于故障排除。 xp_stopmail --停止SQL 邮件客户端会话(后续版本将删除该功能)。 xp_grantlogin  --授予Windows 组或用户对SQL Server 的访问权限(后续版本将删除该功能)。 xp_revokelogin   --撤消Windows 组或用户对SQL Server 的访问权限(后续版本将删除该功能)。 xp_logevent --将用户定义消息记入SQL Server 日志文件和Windows 事件查看器。 xp_sprintf --设置一系列字符和值的格式并将其存储到字符串输出参数中。每个格式参数都用相应的参数替换。 xp_sqlmaint --使用包含sqlmaint 开关的字符串调用sqlmaint 实用工具(后续版本将删除该功能)。 xp_sscanf      --将数据从字符串读入每个格式参数所指定的参数位置。   sp_ActiveDirectory_Obj --控制数据库在Windows活动目录中的注册。 sp_ActiveDirectory_SCP  --控制已连接实例的数据库在Windows活动目录中的注册。 sp_add_agent_parameter --将新参数及其值添加到代理配置文件中。 sp_add_agent_profile --为复制代理创建新的配置文件。 sp_add_alert --创建一个警报。 sp_add_category --将指定的作业、警报或操作员类别添加到服务器中。 sp_add_job --*添加由SQLServerAgent 服务执行的新作业。 sp_add_jobschedule --*创建作业计划。 sp_add_jobserver --在指定的服务器中,以指定的作业为目标。 sp_add_jobstep --*在作业中添加一个步骤(操作)。 sp_add_log_shipping_alert_job  --检查是否已在此服务器上创建了警报作业,无则创建。 sp_add_log_shipping_primary_database --设置日志传送配置(包括备份作业、本地监视记录及远程监视记录)的主数据库。 […]

龙生   06 Nov 2015
View Details

ASP.NET中JSON的序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式。在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间、集合、字典的处理。     一、JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。 JSON是“名值对”的集合。结构由大括号'{}’,中括号'[]’,逗号’,’,冒号’:’,双引号’“”’组成,包含的数据类型有Object,Number,Boolean,String,Array, NULL等。 JSON具有以下的形式: 对象(Object)是一个无序的“名值对”集合,一个对象以”{”开始,”}”结束。每个“名”后跟着一个”:”,多个“名值对”由逗号分隔。如:

数组(Array)是值的有序集合,一个数组以“[”开始,以“]”结束,值之间使用“,”分隔。如:

字符串(String)是由双引号包围的任意数量的Unicode字符的集合,使用反斜线转义。       二、对JSON数据进行序列化和反序列化 可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例。DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NET Framework 4在System.Runtime.Serialization中。 利用DataContractJsonSerializer序列化和反序列化的代码:

    序列化Demo: 简单对象Person:

序列化为JSON字符串:

输出结果:

反序列化Demo:

运行结果: ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.也可以使用JSON.NET. […]

龙生   06 Nov 2015
View Details

字符串和字节数组转换

using System; using System.Collections.Generic; using System.Text; namespace NET.MST.Fourth.StringByte { class StringByte { static void Main(string[] args) { String s = "我是字符串,I am string"; //字节数组转换到字符串 Byte[] utf8 = StringToByte(s, Encoding.UTF8); Byte[] gb2312 = StringToByte(s, Encoding.GetEncoding("GB2312")); Byte[] unicode = StringToByte(s, Encoding.Unicode); Console.WriteLine(utf8.Length); Console.WriteLine(gb2312.Length); Console.WriteLine(unicode.Length); //转换回字符串 Console.WriteLine(ByteToString(utf8, Encoding.UTF8)); Console.WriteLine(ByteToString(gb2312, Encoding.GetEncoding("GB2312"))); Console.WriteLine(ByteToString(unicode, Encoding.Unicode)); Console.Read(); } static Byte[] StringToByte(String s, Encoding encoding) { return encoding.GetBytes(s); } static String ByteToString(Byte[] b, Encoding encoding) { return encoding.GetString(b); } } } from:http://www.cnblogs.com/brainmao/archive/2011/05/29/2062385.html

龙生   06 Nov 2015
View Details

在ASP.NET中下载Text文件,而不是在浏览器中打开它

介绍 让用户从我们的网站上下载各种类型的文件是一个比较常用的功能,这篇文章就是告诉您如何创建一个.txt文件并让用户下载。 使用代码 虽然在示例里,我先创建了一个text文件,但是你不一定也要这么做,因为这个文件可能在你的网站里已经存在了。如果是这样的话,你只需要使用FileStream去读取它就可以了。 首先,我们将这个text文件读取到一个byte数组中,然后使用Response对象将文件写到客户端就可以了。 Response.AddHeader("Content-disposition", "attachment; filename=" + sGenName); Response.ContentType = "application/octet-stream"; Response.BinaryWrite(btFile); Response.End(); 这段代码是完成这个功能的主要代码。第一句在输出中添加了一个Header,告诉浏览器我们发送给它的是一个附件类型的文件。然后我们设置输出的ContentType是"application/octet-stream",即告诉浏览器要下载这个文件,而不是在浏览器中显示它。 下面是一个MIME类型的列表。 ".asf" = "video/x-ms-asf" ".avi" = "video/avi" ".doc" = "application/msword" ".zip" = "application/zip" ".xls" = "application/vnd.ms-excel" ".gif" = "image/gif" ".jpg"= "image/jpeg" ".wav" = "audio/wav" ".mp3" = "audio/mpeg3" ".mpg" "mpeg" = "video/mpeg" ".rtf" = "application/rtf" ".htm", "html" = "text/html" ".asp" = "text/asp" '所有其它的文件 = "application/octet-stream" 下面是一个完整的如何下载文本文件的示例代码 C# protected void Button1_Click(object sender, EventArgs e) { string sFileName = System.IO.Path.GetRandomFileName(); string sGenName = "Friendly.txt"; //YOu could omit these lines here as you may not want […]

龙生   06 Nov 2015
View Details
1 201 202 203 280