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

本文共 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

你可能感兴趣的文章
[错误]集合已修改;可能无法执行枚举操作
查看>>
环境配置
查看>>
关于dom事件
查看>>
Qt 对文件的操作
查看>>
opengl中对glOrtho()函数的理解
查看>>
金山词霸 每日一句
查看>>
冒泡排序
查看>>
人工神经网络入门(4) —— AFORGE.NET简介
查看>>
Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)...
查看>>
java使用valueOf的方法反转字符串输出
查看>>
数据库的连接查询比较
查看>>
linux 用户管理
查看>>
视图的touch事件的传播控制
查看>>
hdu 1505 City Game (hdu1506加强版)
查看>>
leetcode -day31 Subsets I II
查看>>
WIN7下怎样装Oracle 10g
查看>>
Expected one result (or null) to be returned by selectOne(), but found 2
查看>>
ROS-单目摄像头标定
查看>>
Delphi 自带的 Base64 编解码函数
查看>>
Java 使用Jedis连接Redis数据库(-)
查看>>