博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net mvc 5 微信接入VB版 - 接入认证
阅读量:5750 次
发布时间:2019-06-18

本文共 1833 字,大约阅读时间需要 6 分钟。

微信接入官方文档是php的,网上被抄好几遍的代码是c#的,就是没vb的。今天我把这个坑填了,做vb版的接入认证。

首先是照着开发文档把微信接入的模型写好。在Models文件夹新建一个Model

Public Class WeChatRequestModel    '''     ''' 加密签名    '''     Public Property signature$    '''     ''' 时间戳    '''     Public Property timestamp$    '''     ''' 随机数    '''     Public Property nonce$    '''     ''' 用于传回的随机字符串    '''     Public Property echostr$End Class

 模型建立完成之后,新建个Controller。

微信认证是把nonce,Token,timestamp排序,然后算SHA1与signature比较。Token作为一个字符串常量,根据申请时填写的Token编写。

Const Token = "你申请的Token"

 

剩下的代码就是把那个php代码翻译一下,注意不要用过时的成员比如FormsAuthentication,免得以后迁移到asp.net core要重写代码:

1     Private Function SHA1$(str$) 2         Return BitConverter.ToString(System.Security.Cryptography.SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(str))).Replace("-", "")  3     End Function 4     Private Function CheckSignature(data As WeChatRequestModel) As Boolean 5         Return data.signature = SHA1(String.Join("", Aggregate s In {data.nonce, Token, data.timestamp} Order By s Into ToArray)).ToLower() 6     End Function 7     
8 Public Sub Authenticate(data As WeChatRequestModel) 9 If CheckSignature(data) AndAlso Not String.IsNullOrEmpty(data.echostr) Then10 Response.Write(data.echostr)11 Response.End()12 End If13 End Sub

 编辑路由设定, 把模板里面带的用不上的主页路由去掉,换成微信接入认证的

Public Module RouteConfig    Public Sub RegisterRoutes(routes As RouteCollection)        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")        routes.MapRoute(            name:="Authenticate",            url:="{controller}/{action}/{id}",            defaults:=New With {.controller = "Home", .action = "Authenticate", .id = UrlParameter.Optional}        )    End SubEnd Module

这样修改后,只要填写Url的时候写上

你的域名/Home/Authenticate

然后把Token之类的东西写上就行了。

转载于:https://www.cnblogs.com/Nukepayload2/p/aspnet_mvc5_wechat_conn_vb.html

你可能感兴趣的文章
死机续集
查看>>
startActivityForResult与onActivityResult
查看>>
frame之间访问
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
io、os(从终端、文件、字符串读取的小例子)
查看>>
monkey测试之获取系统应用对应的包名
查看>>
七牛云彭垚:智能平台的创新和发展
查看>>
随便写写
查看>>
nginx日志分割
查看>>
VIM之魅(下篇)
查看>>
4003.Cacti监控Windows 2003服务器系统关键性能指标
查看>>
随机抽取数字的脚本
查看>>
selenium之 定位以及切换frame(iframe)
查看>>
NULL0路由的作用(概述)
查看>>
win7下wubi安装ubuntu11.10 报错: Invalid tag data.
查看>>
tomcat部署web服务(一)
查看>>
JAVA基本数据类型转换
查看>>
Oracle 11g for Windows 简体中文版的安装过程
查看>>
yum源和mysql.php
查看>>