微信公众平台开发之核心类微信模型(一)

写在前面:一下内容主要阐释了,获取access_token的过程,如果已经会了,可以略过。

之前我上了两个类,一个是消息类,一个是微信的类,用于处理微信的消息和获取一些完成api开发的重要参数的类。

不过随着工作的展开,这些类,我又进行了一些更新。针对之前不完善以及不完美的地方进行更新。

还是基于ci框架的微信类。

分开一步一步来说。首先是获取基础的access_token,值得注意的是这个不是通过sns,三方网页获得的token,而是基础的。就是有调用次数限制的access_token

继续阅读“微信公众平台开发之核心类微信模型(一)”

微信公众平台消息响应(ci框架)

一下是微信统一接口代码

 

 

不哭泣

也不知道什么时候就不怎么爱哭了,对一个从小到大经常哭的我而言。

可能是在若干年前,眼泪已经消耗了太多,现在懂得他的珍惜了吧。

这让我想起以前的一个故事。

故事的结局没有谁对谁错,老婆很好,次已足够。

某一个雨天,掉落一地的树叶,你撑起伞走过来,这样的一条小路,顿时鲜亮了起来,倘若没有你的出现,我平静的生活哪会这般斑斓。

对于应该记忆或者忘记的过去,有它存在的价值。我要做的不是将它拿出来痛哭一场,而是努力用它照亮现实的路。

尝尽世间白苦,这话不对,我要品尝的是苦中略带委屈的甜味。

对我的微词我不怕,但这样的决绝和老死不相往来的性格,不似记忆中的你我,品尝过欢乐,也会有悲伤。

旁若无人搬的怨忌和所谓的惩罚,只会让人神伤,我们为的是活的满足,精神上显露出的贫瘠与我们相识的初衷相去甚远。心结开了,才会在那个不经意的灵魂相遇处莞尔。

关于程序中文件上传的css和js

首先来说css

我们通常看到的upload是这样。

这样的是很单调的,样式。

后来的美化样式是这样的。

下面是html代码,基本思路就是用一个层覆盖了。

QQ截图20151026153257

同时使用了这样的,js。

 

 

 

关于osx中的path变量 composer的安装

今天在安装所谓的最优雅的框架laravel的时候,被环境变量搞死了。

简单的说下composer的安装

在你的目录下随意安装。我放在家目录下面。也就是cd之后的目录

然后会提醒你使用php composer.phar

下来就是为了方便起见,我门能喝官网上一样直接食用composer来进行操作,就要如此

然后你就可以正常使用了。

接下来就是安装 laravel了

再就是使用laravel这个命令,我们就要写path变量

请把zhangsan自觉换成你自己的名字。

然后还要一步让他生效

在echo path看看。就知道了是否添加成功,这样就可以使用laravel这个命令了。

 

  business listing

json_encode函数的中文注意

在程序开发过程中,我们经常会使用json数据

那么其实中文的时候有时候会出现字符的问题。

尤其在做js交互的时候,经常会和json打交道。就像之前我写的那个联动菜单。

解决中文编码问题的方式在php5.4中

这样的参数来解决,如果是5.4以下的,网络上提供了这样的方法。

来解决。

关于文档的一些看法

关于文档的一些看法

手头上的项目,无论大小,想做的好,最好有一些文档来支持。文档又分为技术类的文档和设计类的文档。

当我在做文档的时候,我尝试着把两者合并起来发现其结果是不好的。而从技术的角度去出发写出来的东西总会让人觉得让团队的其他人看不明白,所以我认为最好还是分开处理。

 

技术文档

规定相关的简单api,无论用什么语言,你要告诉程序开发人,我要这样的一个接口来实现功能。

我们以一个商城类的网站作为说明

 

数据模型拥有的基础属性。

Class Base {

Function index(){ }  //列表,首页

Function edit(){}  //编辑操作

Function new(){}  //新建操作

Function save(){}   //新建保存

Function update() {} //编辑保存

function delete() {}  //删除操作

Function …..//延伸操作,暂不考虑

}

 

具体拓展

//会员中心

Class member_base extends base{}  //继承

Class member_index extends member_base{}  //会员中心首页

Class member_order extends member_base{}  //会员中心订单类

Class member_good extends member_base{}  //会员中心商品类

Class member_profile extends member_base{}  //会员中心个人信息类

………以此类推

 

同样道理我们也可以继续做管理中心的一些规定设计,其实这个规定是给技术总监去看的,具体实现由他来把控,但是这些方法不要出现纰漏,也不要出现增加,如果需要讨论,可以听取意见对该方案进行修改。方案一旦确定就不允许超出。规定数据的边界。哪些是边界,到这里结束,不必要多走一步。框出一个范围,在第一个版本v1的时候,不去尝试考虑其他的设计。

 

设计文档

相比技术文档的艰涩难懂,设计类文档要开放很多。主要是针对需求进行整理。由此我们可以得出,设计类文档要做在技术文档之前。考虑的一个标胶全面的设计文档,我们就可以用来写技术的相关接口和大致规定以及边界。

 

理解需求

你要做一个什么样的项目,他的需求是什么,左后需要做到的目标如何,还以商城为例。

  1. 管理中心

a) 管理审核用户

i. 会员等级

ii. 会员操作(审核)

iii. ……

b) 管理审核订单

i. ……

c) 管理审核商品

i. 商品属性描述(分类,名称,价格,单位……)

ii. 商品操作(审核,删除,)

d) 系统设置

i. 杂七杂八的时间,

ii. 数据库简单管理

iii. ……

e) 新闻管理

i. 新闻属性(分类,名称……)

ii. 删除

iii. 推荐

  1. 会员中心

a) 订单管理

b) 资金管理

c) 个人信息

d) 商家服务

  1. 商家中心

a) 商品管理

b) 资金管理

c) 订单管理

d) 个人信息

e) 商家服务

  1. 前台页面

a) 首页

b) 商品列表

c) 商品详情页

d) 新闻,通用列表

e) 新闻,通用详情

f) 会员中心页面

g) 商家中心页面

 

  1. 以此类推

 

在规定这个文档的时候,我们要对属性有一个清楚的认识。商品的属性,直接影响数据库的设计。还有就是订单的状态和商品的状态。我的建议把属性,和流程状态单独做出流程图来详细处理,描述,当然所有的一切你都有必要和技术总监进行沟通,让他能够很好地理解你的想法。从而在其设计数据库的时候能够比较到位的处理。避免中心思想发生变化。沟通和理解是必须的,否则这个V1文档即使出来了,也没有很强的作用。更多的参与,会解决交付的困难。

 

我的理解,文档涵盖以下几个方面

  1. 需求文档(产品雏形理解需求)
  2. 设计文档(概要)—-设计文档(v1版本详实记录)
  3. 技术文档(概要)
  4. 项目综合文档。(给投资人看的。过程,结果,准备。)通常到第四个文档出来的时候,就是这个项目究竟做不做的关键了。
  5. 用户体验文档
  6. FAQ文档
  7. 时间规划文档
  8. 设备以及资金投入

 

这些东西在说的时候很容易,但是真正去实施和交付,其实还是比较庞大的工程。做任何一个项目,都是方方面面的成功才能做好。前期安排的妥当,后面就容易把控产品的品质。

 

需要技术总监提供,详实的技术设计文档,包含数据库设计,方法实现。

需要市场营销总监提供,预期市场推广方案,和资金投入,以及v1版本的用户体验

需要产品设计总监提供,原型线框图和界面设计文档

需要用户体验小组,提供技术的问题,和faq的维护提交

最后需要产品经理,追踪产品进度,把控总体方向,协调各部门修改,想vc汇报产品开发进程,推进v2版本的加速进行。

 

 

就先到这里吧,我太懒了,要全写完太多了,改日吧。

 

select表单的美化

这两天做程序的时候碰到了,关于select表单的美化,思前想后觉得伪造是比较好的方法。

在不使用jquery别人写好的插件的时候。这是个想法。

原理:先通过select表单,把相关的div和ul li伪造成表单的样式,select表单隐藏,通过js操作伪造的div对select表单进行控制。最后达到正常的表单提交的方法。

html在这里

当然你也可以使用先伪造表单在通过<input  type=”hidden” value=”” />中的value值来进行提交,过程略显得简单。

不过,需要注意的是,伪造表单中ul li的li中的可以自定义一个属性值,比如data来存放select option 的value值。然后把这个value值发送给input的value中。

穿越灵魂

听一首歌曲,看一部电影,读一部小说,

如果能感觉惬意,就能带给我精神上的愉悦。

我也会感到莫名的高兴。这种心情是发自内心的,更是穿越灵魂的。

斯,诚不欺我。

 

诉说

当back to December的音乐响起,T.S的歌响彻在脑海的时候,

静静的听,你会理解那其中的故事的玄妙。如果你能感受到,你也是一个有故事的人。

 

解散

当我再次听到《勇气百分百》的时候,已经是霓虹的红白歌会集锦中了。

奇怪?这不正是儿时我在家中每天6点等待的乱太郎么?

翻阅简介,而你又发现“光GENJI”这个八九十年代穿着旱冰鞋唱歌的团队代表了那个时代的潮流,而最后的演出结束后,他们也将正式解散,却将五双旱冰鞋永远的留在了舞台中间。我也仿若置身于现场,却感受到了灵魂的能量。

 

心愿

“当我刺向你的时候,我已经知道你的心脏是空的了。而现在我的心愿已经完成,而我也将笑着离开。”——立华奏

Key社的催泪弹,如果说出我爱你,你的心愿将完成,而你也将永远的离开。我究竟要怎么选择,当《一番的宝物》的音乐响起,当奏消失,灵魂怎能不触动?

 

不见黄娥不死心,伟大的爱情,其实只需要一瞬间就证明了永恒。

 

时间在变,时代在变,光怪陆离的物质社会也在变,但是,穿越灵魂的感知不会变,人类对于灵魂的追求,对美的感受不会变,对于精神的追求也不会变。

 

在追求视听享受的同时,且行且珍惜,不为别的,只为那诚不欺我的灵魂。

redis 消息队列的php使用(windows)

因为项目需要,对大量消息进行处理。

现在就用到redis这个。目前在windows下安装测试一下,只是简单介绍客户端的用法,以及redis的常用方法。

首先我们需要在你的php中配置这个redis模块。

由于我用的wamp的测试环境,先用phpinfo看看php的版本,修改ini文件。

下载php-redis模块。

http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/

通过phpinfo查看自己的版本,选择对应的redis.dll,放到ext里面

php.ini

然后重启你的wamp

查看你的扩展,应该就有了。

然后去官网下载redis的windows版本。

https://github.com/MSOpenTech/redis

下载后放到一个位置,我下载的是2.6的版本

F:\redis\redis-2.6\bin\release

在这里面看到,有一个cli,有一个server

先开启服务器的redis-server.exe,在开启cli的redis-cli.exe

保持命令窗口不变,保证之前的php配置没有问题

然后测试redis的php使用

 

如果有结果,就说明ok了。。。要明确你的redis必须安装在服务器上保持进程常开。

如果要写从redis取数据,用php来写的话必须用死循环,类似

先到这里吧。