zoukankan      html  css  js  c++  java
  • asp.net mvc 5 微信接入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之类的东西写上就行了。

  • 相关阅读:
    团队的展示以及规划
    基于上次数独基础优化,并添加GUI界面
    利用程序随机构造N个已解答的数独棋盘
    本学期高级软件工程课程的实践项目的自我目标
    本学期高级软件工程课程的实践项目的自我目标
    案列分析
    编程作业
    构建之法
    软工一
    小黄衫获奖感言
  • 原文地址:https://www.cnblogs.com/Nukepayload2/p/aspnet_mvc5_wechat_conn_vb.html
Copyright © 2011-2022 走看看