最近为一个aspcms网站添加微信分享带图片,描述的功能。
由于官方提供的代码里没有提供asp版本的源码,所以需要自己研究。
根据官网提供的代码,参考php版本的源码风格,我的源码文件目录为:
代码如下:
我们先来看access_token.asp的文件
<%response.end%>{"access_token":"your access_token","expire_time":2018/12/26 11:56:51}
注意到了没有前边加了<%response.end%>就是为了非法访问获取这些数据,而后边数据类似json格式,主要缓存access_token和过期时间。
同理jsapi_ticket.asp
<%response.end%>{"ticket":"your ticket","expire_time":2018/12/26 11:56:52}
核心类jssdk.asp,由于asp类貌似不能像php那样向构造函数传入参数,所以写在私有属性里
<!--#include file="sha1.asp" -->
<%
Session.codepage=65001 '将系统默认的gb2312编码转换成utf-8
Class JSSDK
Private appId
Private appSecret
Private access_token_file
Private jsapi_ticket_file
‘这里初始化类
Private Sub Class_Initialize
appId = "your appid" '注册你的appid
appSecret = "your appsecret" '注册你的appSecret
access_token_file = "access_token.asp" '缓存access_token文件
jsapi_ticket_file = "jsapi_ticket.asp" '缓存jsapi_ticket文件
End Sub
'把标准时间转换为UNIX时间戳
public Function ToUnixTime(strTime, intTimeZone)
If IsEmpty(strTime) or Not IsDate(strTime) Then strTime = Now
If IsEmpty(intTimeZone) or Not isNumeric(intTimeZone) Then intTimeZone = 0
ToUnixTime = DateAdd("h",-intTimeZone,strTime)
ToUnixTime = DateDiff("s","1970-01-01 00:00:00", ToUnixTime)
End Function
'返回wx.conf所需数据
Public Function getSignPackage(url)
dim nonceStr,jsapiTicket,nowtime,jsstr,returnStr
nonceStr = createNonceStr(6)
jsapiTicket = getJsApiTicket
nowtime = ToUnixTime(now(),0)
jsstr = "jsapi_ticket="&jsapiTicket&"&noncestr="&nonceStr&"×tamp="&nowtime&"&url="&url '拼接signature字符串
signature = SHA1(jsstr) '加密字符串
returnStr = "{""appId"": """&appId&""",""nonceStr"":"""&nonceStr&""",""timestamp"":"""&nowtime&""",""url"":"""&url&""",""signature"":"""&sig