asp.net mvc 5 微信接入VB版 - 接入认证

本文详细介绍了如何使用VB语言实现微信接入认证的过程,包括模型建立、代码翻译及路由设定等关键步骤。

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

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

Public Class WeChatRequestModel
    ''' <summary>
    ''' 加密签名
    ''' </summary>
    Public Property signature$
    ''' <summary>
    ''' 时间戳
    ''' </summary>
    Public Property timestamp$
    ''' <summary>
    ''' 随机数
    ''' </summary>
    Public Property nonce$
    ''' <summary>
    ''' 用于传回的随机字符串
    ''' </summary>
    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 <HttpGet> 8 Public Sub Authenticate(data As WeChatRequestModel) 9 If CheckSignature(data) AndAlso Not String.IsNullOrEmpty(data.echostr) Then 10 Response.Write(data.echostr) 11 Response.End() 12 End If 13 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 Sub
End Module

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

你的域名/Home/Authenticate

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值