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 Encoding.UTF8.GetString(System.Security.Cryptography.SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(str)))
 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

 

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

上一篇:android:listview实现qq,微信好友列表(头像,昵称,个性签名)


下一篇:凡信2.0beta发布-超仿微信的开源项目 (更新了朋友圈和钱包)