asp.net mvc 微信开发随笔(1)

2019-03-02 01:08|来源: 网路

这几天一直在看基于微信平台的系统开发,虽然微信并不复杂,但没有搞过,还是有点摸不着北的。

不过还好,经过这三天的调试,基本上搞定了token验证、access_token的获取、发送json自定义菜单、接收手机微信端发来的消息,以及回复消息到手机微信端。以后会详细整理一下,今天只做个简单的记录。

首先说明一下我用的是asp.net mvc 3,其实正式开发是打算用mvc 4的,但因为我对mvc 3 比较熟一些,mvc 4 的书刚买回来,还没来得及细看,所以先用mvc 3 做做实验。

 

第一步  微信接入

这个简单,只要在微信后台提交网站上用于验证的网址,并返回约定的echostr就可以了。在mvc中其实就是在action里接收signature、nonce、timestamp和echostr,接着加密验证一下。

 

第二步 获取access_token

这是为自定义菜单做准备。向微信提交数据后会返回一个json格式的access_token,只有两个小时有效喔~ 提交数据时用到了WebClient,解析json时我用的是JavaScriptSerializer的Deserialize方法,网上也有其它方法,不过太复杂了,我看不懂。Deserialize的官方介绍是这样子的:“JavaScriptSerializer.Deserialize<T> 方法 (String)  将指定的 JSON 字符串转换为 T 类型的对象。”这正是我需要的,一行代码就把获取到的json解析成自定义的类型了。

 

第三步 自定义菜单

首先准备json格式的菜单,这里我用了JavaScriptSerializer的Serialize方法,也简单,一行代码把自定义的菜单对象转成json。然后是WebClient提交吧,记得是utf8编码。

 

第四步 获得用户消息

微信用户提交的消息是xml格式,这个比json要好弄多了,因为有linq to xml。

 

第五步 向用户回复消息

跟第四步差不多。

 

今天就先写到这里,今天是圣诞节,祝各位圣诞快乐!!

分享我的微信截图:

 

 


转自:http://www.cnblogs.com/bihai/p/3491432

相关问答

更多

如何在Python中将标签集转换为属性元组(“多热”编码)?(How to convert set of tags to belongness tuple (“multi-hot” encoding) in Python easy?)

你可以通过列表理解来达到它,添加条件是否标签在标签中,如果是,则插入1否则为0。 multihot = [1 if tag in tags else 0 for tag in taglist] You can reach it with list comprehension, adding condition whether tag is in tags, if yes, insert 1 else 0. multihot = [1 if tag in tags else 0 for tag

自己附加两个ng-repeat(attach two ng-repeat themselves)

有两种方法可以做到这一点。 首先是服务器端:有一个请求返回正确的数据集。 我将专注于客户端,因为它是客户端问题。 我建议你创建一个包含用户和值的列表: var tabuser = JSON.parse(localStorage.getItem("myid")); console.log(tabuser); var urls = []; $scope.data = []; for(i = 0; i < tabuser.length; i++){

初学者Android:开发者页面上的片段示例中的R文件会生成意外结果(Beginner Android: R file in Fragment example on Developer page generates unexpected results)

在Android项目中,每次构建项目时,R类都会自动更新或生成。 默认情况下,当您保存更改或按ctrl + s时,eclipse会自动构建或编译代码。 因此,您的资源R的任何更改都会更新。 当你指定新的id,布局,drawable,菜单,字符串,样式等时,android会在你的R类中添加一个引用静态整数。 例: public static final class id { public static final int image=0x7f070001; public stati

Rails 3 undefined方法nil:NilClass has_many:在尝试创建时通过(Rails 3 undefined method nil:NilClass has_many :through when attempting create)

不完全是我想要的,但使这个解决方案。 使用以下内容能够相应地保存。 仍然无法找出为什么我无法从URL中拉出患者 - 例如app.dev/patients/2 - 其中患者信息正在拉id 2 ...但现在我能够使用什么来保存约会我怀疑是一种相当粗糙的方法。 在表单中,我添加了一个隐藏字段,用于提取相应的patient_id 在Appointments控制器中,添加到attr_accessible:patient_id 在appointmentments_controller中 def create

Composer - 将供应商文件从开发复制到生产是可以的吗?(Composer - copy vendor files from dev to production is OK?)

考虑到为自动加载等生成的所有路径都是相对的,将整个项目移动到另一条路径甚至不同的计算机应该可以正常工作。 Moving the whole project around to another path or even different computer should work fine, given that all paths generated for autoloading etc are relative.

相关文章

更多

最近更新

更多