微信平台开放后倒是挺火的,许多第三方应用都想试下,毕竟可以利用微信
建立起来的关系链来拓展自己的应用还是挺不错的,可以节约很多在社交方
面的开销,我最近由于实习需要也在研究这个东西,不过发现网上的相关资
料还是挺少的,这里把我的整个研究情况给出来,希望可以共同学习。
一、微信SDK中会用到主要类的类图
上面这张类图中显示的是与微信通信过程中的请求类和响应类,第三方应用通过他们
附带的message字段来携带消息传输给微信进程。其中BaseResp有个内部类是ErrCode,
它里面定义了几个常量字段,当我们向微信发送请求后它会作为返回字段
返回到我们的应用中来,我们可以根据这个做相应的处理,在后面的时序图中将会提
到。接下来就是SDK中的message对象了。
上面这个类图主要是消息对象,里面有一个字段来引用媒体对象,这些媒体对象就
是我们所能传给微信的对象。有了消息对象和媒体对象,接下来要给出的就是将消
息对象送出去的通信类了。
上面的IWXAPI就是所说的通信类,所有与微信进行通信的工作都是他在做,而他的
生成是由下面的工厂类来完成。旁边的IWXAPIEventHandler接口是需要第三方应用
来实现的,如果我们想处理微信的请求信息或是我们向他发请求后他返回的标识字段。
二、第三方应用与微信通信的时序图
1、向微信发送消息
应用只需要进行一次注册就行了,然后在以后的使用中只需要封装消息,让通信类
发送即可。从前面的类图中可以看到,封装消息的顺序是首先生成需要发送的媒体
对象,然后将媒体对象附加到消息对象中,接着建立请求对象,最后使用通信类发
送即可。代码如下所示:
下面给出几张效果图:
程序进入后
注册后载点击发送,微信给出好友列表
选择一个好友,出现附加的消息编辑界面,可不填任何东西
点击share,可返回第三方应用,同时在好友微信中会收到所发消息
这里补充一点就是图中的框框就是微信自己定义的消息对象显示外表,非第三方应用定义,
与上一张图对比即可知道。
暂时这个就说到这,好像这个博客一篇扛不住那么多东西啊,剩下的在后面的
文章中给出,谢谢。
第三方应用接入微信平台(2)
注:本博客的原创文章欢迎转载,但是请注明转载地址,否则将追究法律责任,
谢谢合作,希望共同学习。
第一类丢失更新
A事务撤销时,把已经提交的B事务的更新数据覆盖了。这种错误可能造成很严重的问题,通过下面的账户取款转账就可以看出来:
A事务在撤销时,“不小心”将B事务已经转入账户的金额给抹去了。
第二类丢失更新
A事务覆盖B事务已经提交的数据,造成B事务所做操作丢失:
上面的例子里由于支票转账事务覆盖了取款事务对存款余额所做的更新,导致银行最后损失了100元,相反如果转账事务先提交,那么用户账户将损失100元。
A事务撤销时,把已经提交的B事务的更新数据覆盖了。这种错误可能造成很严重的问题,通过下面的账户取款转账就可以看出来:
选中工程Target-->Build Settings -->Search Paths,在head search paths中添加另一工程的路径